首页 > 其他分享 >如何基于 k8s做私有化部署

如何基于 k8s做私有化部署

时间:2023-12-18 12:58:51浏览次数:46  
标签:set pv 部署 私有化 -- k8s

公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。

随着国内数字化转型的加速和国产化进程推动,软件系统的私有化部署已经成为非常热门的话题,因为私有化部署赋予了企业更大的灵活和控制权,使其可以根据自身需求和安全要求定制和管理软件系统。下面分享下我们的基于k8S私有化部署经验。

私有化交付的目标
  • 要支持系统快速部署至客户机房

  • 支持版本在线升级

  • 支持动态扩容

  • 能快速集成系统监控告警

  • 支持在线运维

  • 可快速移植

以上目标,目前最合适的就是k8s,原因如下

  • 如果基于jar部署,系统快速部署和动态扩容就无法满足,pass。
  • docker-compose在快速部署、快速迁移可以满足,但是其他方面是满足不了,比如动态扩容,以及图形化的在线运维等。

因此基于k8s做私有化交付是最合适的方案,当然如果项目规模比较小,就几个服务也没有动态扩容等需求,那么也没必要引入k8s,如果项目规模较大,使用k8s进行私有化部署是不错的解决方案。

基于k8s私有化部署如何做?

以上我们确认了使用k8s做私有化部署,但是还有一些细节问题,需要考虑

  • 在公司内部一般使用gitlab+Jenkins做服务部署,在客户现场,这种方式一般不可行,因为一般不允许在客户现场访问公司的代码仓库

  • 镜像仓库要能支持公网访问,这样才可以在客户机房下载到镜像

  • 一个服务就有很多yaml文件,如果几十个服务的yaml文件怎么管理,如何快速部署或者升级

  • 中间件要支持快速部署,有些中间件不能部署在k8s,所以需要支持自动化脚本快速部署。

  • 系统配置如何管理,每个服务都依赖数据库、消息等中间件,这些地址怎么管理起来

基于问题,我们的解决方案如下:

在公司内部构建镜像时,直接推送至公网镜像仓库Harbar,在客户机房直接拉取部署,而部署服务使用Helm进行部署,Helm是一个 k8s的包管理工具,他可以把一组服务yaml文件管理起来,并且支持部署和更新,非常方便。比如有一个文件系统,包括DeploymentServicegateway vspv pvc等文件,如果用Helm管理起来,如下图

上面文件,可以认为是模板,其中有一个配置文件,values.yaml,所有的可变都在这里面维护,在

要部署这个文件系统,执行以下命令即可完成。

helm install fss myrepo/fss  \
--set pv.log.type=storageClass \
--set pv.log.pvc.storageName=gfs-storage \
--set pv.log.pvc.storage=5Gi \
--set pv.file.type=storageClass \
--set pv.file.pvc.storageName=gfs-storage \
--set pv.file.pvc.storage=1Gi \
--set istioGateway.schema=http \
--set istioGateway.hosts={test-user.com} \
--set istioGateway.ucenterHost=test-order.com \
--set apollo.cluster=test\
--set sv.fssManager.replicaCount=1 \
--set sv.fssRest.replicaCount=1

中间件部署,对部署在k8s外部的中间件,可以使用Ansiable编写自动化脚本,进行快速部署,几分钟就可以部署一个高可用集群。

系统参数配置,一般使用NacosApollo 进行管理配置,但是由于服务过多,配置起来工作量相对较大,而且很多都是重复工作。
比如数据库地址kafka地址es地址都是相同的,那么如何避免做重复工作,比如可以写一个shell脚本把公共的参数提取出来,然后进行修改替换,或者写一个运维部署平台,把相关公共参数进行图形化配置,并对接配置中心,进行发布替换。

系统监控告警,目前可使用deepFlowkube-prometheus夜莺等解决方案

在线运维平台,可以使用RancherKuberSphere,这两个都是目前非常热门图形化运维平台

快速移植,k8s设计之初就考虑到移植性的问题,所以与底层基础设施无关联性,所以不管是在公有云、私有云、混合云都是可以进行部署的,而且现在各大云厂商,都有 k8s 的商用解决方案,让我们部署起来更加快速,也不用考虑集群的稳定性,比如阿里的ACK、华为的CCE、腾讯云的TKE等。

总结

以上我们介绍私有化部署的难点,并引申出了私有化部署整体解决方案,后续还会更新更多私有化部署相关文章,比如存储怎么挂载、域名怎么管理、监控告警怎么配置等,请持续关注。

标签:set,pv,部署,私有化,--,k8s
From: https://www.cnblogs.com/waldron/p/17910907.html

相关文章

  • Docker部署Node.js应用简单实践
    前言本文将从零至一,介绍如何在云服务器上通过Docker容器运行一个简单的Node应用。本文假设读者已经掌握基本的Linux,Docker,Node,Express知识。基本步骤本地写好nodejs应用,放到github。云服务器安装docker,配置国内镜像加速。拉取一个node镜像。从github拉取项目代码。编写Dockerfil......
  • 部署 Wiznote 个人笔记系统
    一、Wiznote介绍项目地址:https://github.com/WizTeam/WizQTClientWiznote介绍WizNote**(为知笔记)**是一种云服务,您可以使用它来保存您的笔记或与您的同事共享文档。我们拥有所有平台应用程序,现在您可以在您的PC或服务器上托管WizNoteServer,甚至可以将数据保存在AWS或A......
  • "the tx doesn't have the correct nonce":使用hardhat调用ganache上部署的合约遇到的
    完整的报错==================>查询存证请求存证请求内容,datahash:0xaad2171441bd73b773e9a9e062753909360bdfcabbddbe93c6c58b13c5c0feaa,创建人:0xF7A1938Fecc594aaF126d46fd173cE74A659ad9A,附加信息:0x66656974757a6920616920646f756368757a69,已投票:0n,共需投票:2n==......
  • sealer 自定义 k8s 镜像并部署高可用集群
    sealer可以自定义k8s镜像,想把一些dashboard或者helm包管理器打入k8s镜像,可以直用sealer来自定义。sealer部署的k8s高可用集群自带负载均衡。sealer的集群高可用使用了轻量级的负载均衡lvscare。相比其它负载均衡,lvscare非常小仅有几百行代码,而且lvscare只做ipv......
  • helm v3 部署 ingress-nginx
    1、部署helmv3略...()2、添加源并更新[root@master1ingress]#helmrepoaddingress-nginxhttps://kubernetes.github.io/ingress-nginx[root@master1ingress]#helmrepoupdate3、拉取镜像[root@master1ingress]#helmpullingress-nginx/ingress-nginx4、解压并修改......
  • istioctl 部署 istio
    istio架构:1、下载istio安装包[root@master1~]#curl-Lhttps://istio.io/downloadIstio|ISTIO_VERSION=1.8.2TARGET_ARCH=x86_64sh-2、移动istioctl到/usr/bin目录下[root@master1~]#cpistio-1.8.2/bin/istioctl/usr/bin3、查看istio可用配置列表[root@master1......
  • kubekey 部署内置 haproxy k8s 高可用集群
    内置haproxy高可用架构:1、下载脚本[root@master1~]#curl-sfLhttps://get-kk.kubesphere.io|VERSION=v2.0.0sh-如果访问Github和Googleapis受限先执行以下命令再执行上面的命令exportKKZONE=cn2、给脚本赋予执行权限[root@master1~]#chmod+xkk3、创建包含默认配......
  • sealos 离线部署 k8s 高可用集群
    sealos简介sealos特性与优势:通过内核ipvs对apiserver进行负载均衡,并且带apiserver健康检测,并不依赖haproxy和keepalived。支持离线安装,工具与资源包(二进制程序配置文件镜像yaml文件等)分离,这样不同版本替换不同离线包即可证书延期使用简单支持自定义配置内核负......
  • docker-compose 部署 harbor 镜像仓库
    1、安装docker(这个就不写了,可以看)略......2、安装docker-compose[root@master2~]#curl-L"https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose[root@master2~]#chmod+x/usr/loc......
  • 部署 helm3 包管理器
    1、下载helm3的安装包wgethttps://get.helm.sh/helm-v3.0.0-linux-amd64.tar.gz2、解压并赋予权限[root@node2~]#tar-zxfhelm-v3.7.1-linux-amd64.tar.gz[root@node2~]#chmod+xlinux-amd64/helm3、复制linux-amd64文件夹下的helm脚本到/usr/bin/路径下[root@node......