介紹
Helm
類似 npm,pip,docker hub, 可以理解為是一個軟件庫,可以方便快速的為我們的集群安裝一些第三方軟件。
使用 Helm 我們可以非常方便的就搭建出來 MongoDB / MySQL 副本集群,YAML 文件別人都給我們寫好了,直接使用。官網,應用中心
安裝 Helm
安裝 文檔curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
安裝 MongoDB 示例
# 安裝 helm repo add bitnami https://charts.bitnami.com/bitnami helm install my-mongo bitnami/mongodb # 指定密碼和架構 helm install my-mongo bitnami/mongodb --set architecture="replicaset",auth.rootPassword="mongopass" # 刪除 helm ls heml delete my-mongo # 查看密碼 kubectl get secret my-mongo-mongodb -o json kubectl get secret my-mongo-mongodb -o yaml > secret.yaml # 臨時運行一個包含 mongo client 的 debian 系統 kubectl run mongodb-client --rm --tty -i --restart='Never' --image docker.io/bitnami/mongodb:4.4.10-debian-10-r20 --command -- bash # 進去 mongodb mongo --host "my-mongo-mongodb" -u root -p mongopass # 也可以轉發集群里的端口到宿主機訪問 mongodb kubectl port-forward svc/my-mongo-mongodb 27017:27018
命名空間
如果一個集群中部署了多個應用,所有應用都在一起,就不太好管理,也可以導致名字沖突等。
我們可以使用 namespace 把應用划分到不同的命名空間,跟代碼里的 namespace 是一個概念,只是為了划分空間。
# 創建命名空間 kubectl create namespace testapp # 部署應用到指定的命名空間 kubectl apply -f app.yml --namespace testapp # 查詢 kubectl get pod --namespace kube-system
可以用 kubens 快速切換 namespace
# 切換命名空間 kubens kube-system # 回到上個命名空間 kubens - # 切換集群 kubectx minikube