iT邦幫忙

2021 iThome 鐵人賽

DAY 19
0
Software Development

徵坦補! 新手可! Open-Match 配對框架系列 第 19

Day19 Helm manage Open-Match

昨天非常快速的介紹了一下 Helm,了解了基礎的安裝與使用方式後,今天我們要試著用 Helm 來重新部署並安裝我們的 Open-Match,試著感受一下,有使用 Helm 將 yaml 拆分為 template 與 value 的好處。

Install Open-Match with Helm

open-match chart

  • Add repo
helm repo add open-match https://open-match.dev/chart/stable
  • Install core with default evaluator
helm install open-match --create-namespace --namespace open-match open-match/open-match \
  --set open-match-customize.enabled=true \
  --set open-match-customize.evaluator.enabled=true \
  --set open-match-override.enabled=true \
  --set query.replicas=1 \
  --set frontend.replicas=1 \
  --set backend.replicas=1
  • 檢查 helm 安裝清單
~ helm list -n open-match

NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
open-match      open-match      1               2021-09-26 21:16:24.437724 +0800 CST    deployed        open-match-1.2.0        1.2.0
  • 檢查 pods 是否運行
~ kubectl get pods -n open-match

NAME                                       READY   STATUS    RESTARTS   AGE
open-match-backend-5bcfd664dd-pg5bx        1/1     Running   0          3m55s
open-match-evaluator-68b657c9d9-5w6qr      1/1     Running   0          3m55s
open-match-evaluator-68b657c9d9-8lrrn      1/1     Running   0          3m55s
open-match-evaluator-68b657c9d9-h9gsw      1/1     Running   0          3m55s
open-match-frontend-8478cb9d9b-cjmwx       1/1     Running   0          3m54s
open-match-query-8545bbb4d4-xzwkw          1/1     Running   0          3m54s
open-match-redis-node-0                    3/3     Running   0          3m54s
open-match-redis-node-1                    3/3     Running   0          3m42s
open-match-swaggerui-6658d4c55b-dphnl      1/1     Running   0          3m54s
open-match-synchronizer-85b5dc89d8-gwz4j   1/1     Running   0          3m54s

What's the difference

基本上當我們使用 Helm 進行安裝的時候,我們使用的是 chart ,由於已經將 yaml 的部分參數拆分成模板與values,我們首先可以感受到最大的好處是,可以在部署時直接針對部分變數做調整,讓我們看一下預設 value 檔案的內容進行比較。

  • backend templates

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: {{ include "openmatch.backend.hostName" . }}
      namespace: {{ .Release.Namespace }}
      annotations: {{- include "openmatch.chartmeta" . | nindent 4 }}
      labels:
        app: {{ template "openmatch.name" . }}
        component: backend
        release: {{ .Release.Name }}
    spec:
      replicas: {{ .Values.backend.replicas }}
    
  • values

    backend: &backend
      hostName:
      grpcPort: 50505
      httpPort: 51505
      portType: ClusterIP
      replicas: 3
      image: openmatch-backend
    

首先原本我們可能在不同環境,需要部署不一樣數量的的 pods 時,需要準備多份或異動 yaml ,現在可以透過準備抽好的 values ,方便管理不同環境的差異,這就是模板化的好處,整個部署設定檔化,一目瞭然方便管理。其次透過 Helm cli tool 提供的功能,我可以在部署的時候,以 —set 來調整模板預先抽好的變數名稱內容。

Easy to scale

同樣利用 helm 來改變我們的部署規模,將 open-match-query 調整為 2

helm upgrade open-match --namespace open-match open-match/open-match \
  --set open-match-customize.enabled=true \
  --set open-match-customize.evaluator.enabled=true \
  --set open-match-override.enabled=true \
  --set query.replicas=2 \
  --set frontend.replicas=1 \
  --set backend.replicas=1

Result

~ kubectl get pods -n open-match

NAME                                       READY   STATUS    RESTARTS   AGE
open-match-backend-5bcfd664dd-pg5bx        1/1     Running   0          35m
open-match-evaluator-68b657c9d9-5w6qr      1/1     Running   0          35m
open-match-evaluator-68b657c9d9-8lrrn      1/1     Running   0          35m
open-match-evaluator-68b657c9d9-h9gsw      1/1     Running   0          35m
open-match-frontend-8478cb9d9b-cjmwx       1/1     Running   0          35m
open-match-query-8545bbb4d4-74sfx          1/1     Running   0          26s
open-match-query-8545bbb4d4-xzwkw          1/1     Running   0          35m
open-match-redis-node-0                    3/3     Running   0          35m
open-match-redis-node-1                    3/3     Running   0          34m
open-match-swaggerui-6658d4c55b-dphnl      1/1     Running   0          35m
open-match-synchronizer-85b5dc89d8-gwz4j   1/1     Running   0          35m

異動監控

REVISION 基於我們的調整改為 2,最後異動時間也同樣顯示於資訊中

NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
open-match      open-match      2               2021-09-26 21:51:00.68284 +0800 CST     deployed        open-match-1.2.0        1.2.0

上一篇
Day18 Helm
下一篇
Day20 常用設定參數
系列文
徵坦補! 新手可! Open-Match 配對框架30

尚未有邦友留言

立即登入留言