From cf2324a2635adebc2efbfd99af560c2687bfd710 Mon Sep 17 00:00:00 2001 From: Maxence Yang Date: Tue, 15 Oct 2024 10:36:53 +0800 Subject: [PATCH 1/3] update deployment.yml and ingress.yml for k8s v1.31 --- README.md | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index e6fc3b9..741fc5f 100644 --- a/README.md +++ b/README.md @@ -460,7 +460,7 @@ kubectl edit deployments my-deployment 接著我們會看到我們的 Yaml 檔 ```yaml -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: annotations: @@ -541,7 +541,7 @@ kubectl rollout history deployment my-deployment 看到我們目前更改過的版本 ``` -deployment.extensions/my-deployment +deployment.apps/my-deployment REVISION CHANGE-CAUSE 1 2 @@ -574,7 +574,7 @@ kubectl rollout undo deploy my-deployment --to-revision=2 `deployment.yaml` ```yaml -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: blue-nginx @@ -593,7 +593,7 @@ spec: --- -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: purple-nginx @@ -670,24 +670,32 @@ purple-service NodePort 10.107.21.77 80:32086/TCP 60s `ingress.yaml` ```yaml -apiVersion: extensions/v1beta1 +apiVersion: networking.k8s.io/v1 kind: Ingress metadata: - name: web + name: reverse-proxy-ingress spec: rules: - host: blue.demo.com http: paths: - - backend: - serviceName: blue-service - servicePort: 80 + - path: / + pathType: Prefix + backend: + service: + name: blue-service + port: + number: 80 - host: purple.demo.com http: paths: - - backend: - serviceName: purple-service - servicePort: 80 + - path: / + pathType: Prefix + backend: + service: + name: purple-service + port: + number: 80 ``` 我們一樣透過 `kubectl create -f ingress.yaml` 來建立我們的 ingress 物件。並使用 `kubectl get ingress` 來查看我們的 ingress 狀況: @@ -825,7 +833,7 @@ helm create helm-demo `deployment.yaml` ```yaml -apiVersion: extensions/v1beta1 +apiVersion: apps/v1 kind: Deployment metadata: name: blue-nginx @@ -863,7 +871,7 @@ spec: `ingress.yaml` ```yaml -apiVersion: extensions/v1beta1 +apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: web @@ -947,7 +955,7 @@ spec: ```yaml {{- if .Values.ingress.enabled -}} {{- $fullName := include "value-helm-demo.fullname" . -}} -apiVersion: extensions/v1beta1 +apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: {{ $fullName }} From bc3a948cde40c7103439bc6105e934aaa4977b29 Mon Sep 17 00:00:00 2001 From: Maxence Yang Date: Tue, 15 Oct 2024 10:42:01 +0800 Subject: [PATCH 2/3] removed unsupported command for helm --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 741fc5f..f91ea59 100644 --- a/README.md +++ b/README.md @@ -736,12 +736,6 @@ echo 192.168.99.100 purple.demo.com >> /etc/hosts brew install kubernetes-helm ``` -下載完後,我們記得要 Helm 把 Cluster 配置初始化 - -``` -helm init -``` - 接下來讓我們安裝 Wordpress 的 [Chart](https://github.com/helm/charts/tree/master/stable/wordpress),我們可以直接透過指令 ``` From a6e9a0b7b3cc484fb20f11f3ebc536a3d5ace83d Mon Sep 17 00:00:00 2001 From: Maxence Yang Date: Tue, 15 Oct 2024 11:47:31 +0800 Subject: [PATCH 3/3] update helm yml for v3 --- README.md | 63 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/README.md b/README.md index f91ea59..54e363a 100644 --- a/README.md +++ b/README.md @@ -889,6 +889,8 @@ replicaCount: 2 image: repository: hcwxd/blue-whale +containerPort: 3000 + service: type: NodePort port: 80 @@ -898,7 +900,12 @@ ingress: hosts: - host: blue.demo.com - paths: [/] + paths: + - path: / + pathType: Exact + +autoscaling: + enabled: true ``` 把參數提取出來後,我們就來依樣畫葫蘆地把 `template` 中其他三個 `yaml` 檔寫成可以接受參數的方式: @@ -909,19 +916,21 @@ ingress: apiVersion: apps/v1 kind: Deployment metadata: - name: { { include "value-helm-demo.fullname" . } } + name: {{ include "value-helm-demo.fullname" . }} spec: - replicas: { { .Values.replicaCount } } + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} selector: matchLabels: - app: { { include "value-helm-demo.fullname" . } } + app: {{ include "value-helm-demo.fullname" . }} template: metadata: labels: - app: { { include "value-helm-demo.fullname" . } } + app: {{ include "value-helm-demo.fullname" . }} spec: containers: - - name: { { .Chart.Name } } + - name: {{ .Chart.Name }} image: '{{ .Values.image.repository }}' ports: - containerPort: 3000 @@ -933,15 +942,15 @@ spec: apiVersion: v1 kind: Service metadata: - name: { { include "value-helm-demo.fullname" . } } + name: {{ include "value-helm-demo.fullname" . }} spec: - type: { { .Values.service.type } } + type: {{ .Values.service.type }} ports: - - port: { { .Values.service.port } } + - port: {{ .Values.service.port }} targetPort: 3000 protocol: TCP selector: - app: { { include "value-helm-demo.fullname" . } } + app: {{ include "value-helm-demo.fullname" . }} ``` `ingress.yaml` @@ -955,23 +964,35 @@ metadata: name: {{ $fullName }} spec: rules: - {{- range .Values.ingress.hosts }} + {{- range .Values.ingress.hosts }} - host: {{ .host | quote }} http: paths: - {{- range .paths }} - - backend: - serviceName: {{ $fullName }} - servicePort: 80 - {{- end }} - {{- end }} + {{- range .paths }} + - path: {{ .path }} + {{- with .pathType }} + pathType: {{ . }} + {{- end }} + backend: + service: + name: {{ include "helm-demo.fullname" $ }} + port: + number: {{ $.Values.service.port }} + {{- end }} + {{- end }} {{- end }} ``` -寫好後,我們就可以來一鍵部署我們的這三份檔案囉。我們可以直接在 `/helm-demo` 資料夾下輸入指令 +寫好後,我們就可以來一鍵部署我們的這三份檔案囉。我們可以直接在 `/helm-demo` 資料夾下輸入指令 `helm install .` ``` -helm install . +helm install helm-demo . +``` + +or + +``` +helm install . --generate-name ``` ``` @@ -1032,11 +1053,9 @@ replicaset.apps/gilded-peacock-helm-demo-5fc5964759 2 2 2 而其他常用的 Helm 指令還有: ``` -helm delete --purge RELEASE_NAME +helm uninstall RELEASE_NAME ``` -刪除一個 release(`--purge` 這個 flag 可以把該 `RELEASE_NAME` 釋放出來讓之後可以重複使用)。 - ``` helm upgrade RELEASE_NAME CHART_PATH ```