🍓 Helm & 命名空间

## 介绍 `Helm`类似 npm,pip,docker hub, 可以理解为是一个软件库,可以方便快速的为我们的集群安装一些第三方软件。 使用 Helm 我们可以非常方便的就搭建出来 MongoDB / MySQL 副本集群,YAML 文件别人都给我们写好了,直接使用。[官网](https://helm.sh/zh/),[应用中心](https://artifacthub.io/) >s 本文档课件需配套 [视频](https://www.bilibili.com/video/BV1Tg411P7EB?p=8) 一起学习 ## 安装 Helm 安装 [文档](https://helm.sh/zh/docs/intro/install/) `curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash` ## 安装 MongoDB 示例 ```shell # 安装 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 helm 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 是一个概念,只是为了划分空间。 ```sh # 创建命名空间 kubectl create namespace testapp # 部署应用到指定的命名空间 kubectl apply -f app.yml --namespace testapp # 查询 kubectl get pod --namespace kube-system ``` 可以用 [kubens](https://github.com/ahmetb/kubectx) 快速切换 namespace ```sh # 切换命名空间 kubens kube-system # 回到上个命名空间 kubens - # 切换集群 kubectx minikube ``` ![image.png](https://cos.easydoc.net/46901064/files/kwudup5z.png) >d 觉得老师讲得不错的话,记得点赞、关注、分享鼓励下老师 你们的鼓励会让老师更加有动力继续创造更多更好的内容 你可以到 [Github issue](https://github.com/gzyunke/test-k8s/issues) 给我提问