k8s集群生产环境工作方式概要
客户新增
在windows服务器上,添加客户代码,还原数据库,添加数据库作业等操作,维持原方案
k8s集群操作在Jenkins中自动化执行,耗时约1分钟
1 2 3 4 5 6
| 1. 在jenkins中填写客户的定制化参数,如:客户名称,客户域名,客户代码,数据库连接信息,工智道版本等,自动生成参数文件 2. jenkins执行脚本,生成部署需要的k8s资源文件以及所有服务的配置文件 3. jenkins在k8s的主节点创建客户的目录 4. jenkins将生成的参数文件、k8s资源文件以及所有服务的配置文件推送到k8s集群的主节点上客户的目录 5. 下载工智道版本对应的apk文件 6. 创建资源:命名空间、存储卷、ingress、service、deployment等,完成部署。
|
需要填写的参数:
任务构建流程:
客户升级
在windows服务器上进行数据库升级,执行sql脚本等操作,维持原方案
k8s集群操作在Jenkins中自动化执行,耗时约1分钟
1 2 3 4 5 6 7
| 1. Jenkins从k8s集群的master节点的客户目录拉取参数文件 2. Jenkins自动执行脚本,根据需要升级到的版本,修改参数文件 3. Jenkins重新生成k8s资源文件和配置文件 4. 删除客户原有资源 5. jenkins将生成的参数文件、k8s资源文件以及所有服务的配置文件推送到k8s集群的主节点上客户的目录 6. 下载工智道版本对应的apk文件 7. 创建新资源,完成升级
|
需要填写的参数:
任务构建流程:
日常fix
日常fix只需要更新镜像,无需数据库操作,不停机更新
1 2
| 更新: 选择客户,选择需要更新的服务,如nginx、工智道、积木等,一条命令完成
|
1 2
| 回滚: 如果更新后的版本出现问题,可以一键回滚到上个版本,选择客户,选择需要回滚的服务,如nginx、工智道、积木等,一条命令完成
|
需要填写的参数:
客户扩容
弹性伸缩
1 2 3 4 5 6 7 8
| kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags] [options]
|
手动配置
水平扩容
1 2 3 4 5
| kubectl -n gzd-base get deployment nginx-deployment -o=jsonpath='{.spec.replicas}'
kubectl scale deployment inroad --replicas=2
|
垂直扩容
1 2 3 4 5
| kubectl get pods -l app=nginx -o=jsonpath='{range .items[*]}{.metadata.name}: {.spec.containers[*].resources}{"\n"}{end}'
kubectl set resources deployment nginx-deployment nginx-container --requests=cpu=500m,memory=256Mi --limits=cpu=1,memory=512Mi
|