Appearance
部署分布式应用到 k8s
要管理多个 Deployment,有以下几种方式:
- 手动
kubectl apply(多个 YAML 文件) - Kustomize(原生 Kubernetes 方式)
- Helm Chart(最佳实践,支持版本管理)
推荐使用 Helm,可以把所有服务封装成一个 Helm Chart,统一管理和一键部署
1、手动 kubectl apply 多个 YAML 文件
sh
.PHONY: start
start:
kubectl apply -f depl-customer.yaml
kubectl apply -f depl-order.yaml
kubectl apply -f depl-ui.yaml
kubectl apply -f ing.yaml
.PHONY: stop
stop:
kubectl delete -f depl-customer.yaml
kubectl delete -f depl-order.yaml
kubectl delete -f depl-ui.yaml
kubectl delete -f ing.yaml
其它:登录腾讯云密钥
sh
kubectl create secret docker-registry tencent-registry-secret \
--docker-server=ccr.ccs.tencentyun.com \
--docker-username=100006371794 \
--docker-password=密码2、使用 Helm 来管理
在 Kubernetes 中,可以使用 Helm 来管理多个 Deployment,让你一键启动整个分布式应用(如订单服务、用户服务、前端服务)
目录结构(Helm 模块化设计)
sh
myapp-helm/
├── Chart.yaml
├── values.yaml
├── templates/
│ ├── customer-deployment.yaml
│ ├── order-deployment.yaml
│ ├── ui-deployment.yaml
│ ├── customer-service.yaml
│ ├── order-service.yaml
│ ├── ui-service.yaml
│ ├── ingress.yaml初始化一个空目录结构
sh
helm create myapp && rm -rf myapp/templates/*安装
sh
helm install myapp ./myapp-helm升级
sh
helm upgrade myapp ./myapp-helm删除
sh
helm uninstall myapp3、kustomize
将构建的资源应用到 Kubernetes 集群
sh
kustomize build . | kubectl apply -f - # 这个 - 告诉 kubectl:从标准输入读 YAML 内容删除资源
sh
kustomize build . | kubectl delete -f -更新镜像
sh
kustomize edit set image ccr.ccs.tencentyun.com/lucahimself/msapp-ui:2