在昨天我們簡單介紹了框架是如何產生配對後,今天我們要來部署 Open-Match 所需要的環境與核心。基於彈性拓展需求,首先需要的是 Kubernetes Cluster,Open-Match 的核心便是安裝於此,且後續我們也會把須實作的部件,以容器的方式搭載於 Kubernetes 上。
可參照官方部署說明以建置在 GCP 或 Minikube 上,或跟筆者一樣直接啟用 docker-desktop 即可。
啟動後可以確認一下,叢集是不是被建立
~ kubectl config current-context ✔ 1821 5.96G RAM 3.15 L 16:13:18
NAME
docker-desktop
讓我們使用官方提供的 yaml 進行快速安裝,裡面包含:
建立核心所需 namespace
kubectl create namespace open-match
部署核心
kubectl apply --namespace open-match \
-f https://open-match.dev/install/v1.2.0/yaml/06-open-match-override-configmap.yaml \
-f https://open-match.dev/install/v1.2.0/yaml/07-open-match-default-evaluator.yaml \
-f https://open-match.dev/install/v1.2.0/yaml/01-open-match-core.yaml
觀察部署結果
部署後我們可以看到核心包含了 backend, frontend, query, evaluator pods * 3,redis node * 2 以及 swaggerui, synchronizer pods * 1。並且依據拓展策略,部分 3個 pods 的服務會依據使用狀況縮減或增加。
~ kubectl get pod -n open-match
✔ 1820 6.03G RAM 3.26 L 16:06:14
NAME READY STATUS RESTARTS AGE
open-match-backend-5bcfd664dd-gnrt6 0/1 ContainerCreating 0 9s
open-match-backend-5bcfd664dd-qrnkl 0/1 ContainerCreating 0 9s
open-match-backend-5bcfd664dd-w2v2r 0/1 ContainerCreating 0 8s
open-match-evaluator-68b657c9d9-7v98w 1/1 Running 0 16s
open-match-evaluator-68b657c9d9-mn6jj 1/1 Running 0 17s
open-match-evaluator-68b657c9d9-vxctn 1/1 Running 0 17s
open-match-frontend-8478cb9d9b-4c6nc 0/1 ContainerCreating 0 8s
open-match-frontend-8478cb9d9b-5mr7z 0/1 ContainerCreating 0 8s
open-match-frontend-8478cb9d9b-lpdv5 0/1 ContainerCreating 0 9s
open-match-query-8545bbb4d4-cmzd5 0/1 ContainerCreating 0 8s
open-match-query-8545bbb4d4-hsnnc 0/1 ContainerCreating 0 9s
open-match-query-8545bbb4d4-m9x9h 0/1 ContainerCreating 0 8s
open-match-redis-node-0 0/3 ContainerCreating 0 7s
open-match-swaggerui-6658d4c55b-r7x8k 0/1 ContainerCreating 0 8s
open-match-synchronizer-85b5dc89d8-wqnrf 0/1 ContainerCreating 0 8s
至此若所有的 pods status 變成 Running,我們已經完成了核心部署。要注意的是如果你是參照官網部署流程,那記得 Install Core Open Match 之前要 create namespace 與 Install the Default Evaluator,否則會無法建立或 pods 卡在 ContainerCreating 狀態。