扁平化企业网源码win8风格精简化源码asp带后台企业网站,互联网保险发展趋势,舆情分析师招聘,中国蔬菜网网站建设电话随着国内数字化转型的加速和国产化进程推动#xff0c;软件系统的私有化部署已经成为非常热门的话题#xff0c;因为私有化部署赋予了企业更大的灵活和控制权#xff0c;使其可以根据自身需求和安全要求定制和管理软件系统。下面分享下我们的基于k8S私有化部署经验。
私有化…随着国内数字化转型的加速和国产化进程推动软件系统的私有化部署已经成为非常热门的话题因为私有化部署赋予了企业更大的灵活和控制权使其可以根据自身需求和安全要求定制和管理软件系统。下面分享下我们的基于k8S私有化部署经验。
私有化交付的目标 要支持系统快速部署至客户机房 支持版本在线升级 支持动态扩容 能快速集成系统监控告警 支持在线运维 可快速移植
因此基于k8s做私有化交付是最合适的方案当然如果项目规模比较小就几个服务也没有动态扩容等需求那么也没必要引入k8s如果项目规模较大使用k8s进行私有化部署是不错的解决方案。
基于k8s私有化部署如何做
以上我们确认了使用k8s做私有化部署但是还有一些细节问题需要考虑 在公司内部一般使用gitlabJenkins做服务部署在客户现场这种方式一般不可行因为一般不允许在客户现场访问公司的代码仓库 镜像仓库要能支持公网访问这样才可以在客户机房下载到镜像 一个服务就有很多yaml文件如果几十个服务的yaml文件怎么管理如何快速部署或者升级 中间件要支持快速部署有些中间件不能部署在k8s所以需要支持自动化脚本快速部署。 系统配置如何管理每个服务都依赖数据库、消息等中间件这些地址怎么管理起来
基于问题我们的解决方案如下 在公司内部构建镜像时直接推送至公网镜像仓库Harbar在客户机房直接拉取部署而部署服务使用Helm进行部署Helm是一个 k8s的包管理工具他可以把一组服务yaml文件管理起来并且支持部署和更新非常方便。比如有一个文件系统包括Deployment、Service、gateway vs、pv pvc等文件如果用Helm管理起来,如下图 上面文件大部分是模板而引用的是values.yaml定义的参数同时这个参数可以在系统部署时指定如下要部署文件系统执行以下命令即可完成
helm install fss myrepo/fss \
--set pv.log.typestorageClass \
--set pv.log.pvc.storageNamegfs-storage \
--set pv.log.pvc.storage5Gi \
--set pv.file.typestorageClass \
--set pv.file.pvc.storageNamegfs-storage \
--set pv.file.pvc.storage1Gi \
--set istioGateway.schemahttp \
--set istioGateway.hosts{test-user.com} \
--set istioGateway.ucenterHosttest-order.com \
--set apollo.clustertest\
--set sv.fssManager.replicaCount1 \
--set sv.fssRest.replicaCount1
中间件部署对部署在k8s外部的中间件可以使用Ansiable编写自动化脚本进行快速部署几分钟就可以部署一个高可用集群。 系统参数配置一般使用Nacos进行管理配置但是由于服务过多配置起来工作量相对较大而且很多都是重复工作。比如数据库地址、kafka地址、es地址都是相同的那么如何避免做重复工作比如可以写一个shell脚本把公共的参数提取出来然后进行修改替换或者开发一个运维部署平台把相关公共参数进行图形化配置并对接配置中心进行发布替换。
系统监控告警目前可使用deepFlow、kube-prometheus、夜莺等解决方案
在线运维平台可以使用Rancher或KuberSphere这两个都是目前非常热门图形化运维平台
快速移植k8s设计之初就考虑到移植性的问题所以与底层基础设施无关联性所以不管是在公有云、私有云、混合云都是可以进行部署的而且现在各大云厂商都有 k8s 的商用解决方案让我们部署起来更加快速也不用考虑集群的稳定性比如阿里的ACK、华为的CCE、腾讯云的TKE等。