¶流程架构图
简单设计了一套自动化devOps方案,其中有两个分支:
-
jenkins分支,部署在公司内部开发服务器上。用于生产环境,由jenkins搭载一套CI/CD。开发完程序代码后,提交,触发构建、检查、单元测试、质量评估。之后推送到测试服务器,提供给测试人员进行功能测试。如果有问题,反馈给开发人员;如果功能点收集完善,通知teamcity分支。
-
teamcity分支,运营和项目负责人收集到功能点后,手动触发teamcity自动构建,推送镜像到harbor。邮件通知项目实施负责人。实施负责人收集功能点、汇报信息,更新k8s服务镜像,推送服务、进行灰度发布、之后上线、若有问题、回滚…
¶系统配置
安装系统监控
1 | helm install --tls --name grafana --namespace monitoring -f grafana-settings.yaml -f grafana-dashboards.yaml grafana |
安装harbor
1 | helm install --wait --name harbor --namespace kube-system harbor/harbor --set persistence.enabled=false --set expose.type=nodePort --set externalURL="https://harbor.cplier.com" --set expose.ingress.hosts.core=harbor.cplier.com --set expose.tls.enabled=false --set proxy.httpProxy='http://harbor.cplier.com' --set proxy.httpsProxy='https://harbor.cplier.com' |
安装k9s,查看部署和服务情况
设置外部代理
nginx设置负载均衡
1 | upstream harbor { |
teamcity配置好参数后,触发构建。
在k8s集群中,编写相应的service,进行部署,写pvc、配ingress、配字典… what ever…
1 | apiVersion: apps/v1beta1 |
image
为你的镜像仓储。