赞
踩
前面有一篇文章介绍了使用Harbor手动搭建私有容器镜像仓库,步骤繁琐复杂,今天介绍使用Helm工具一键部署,感受Helm的便捷和自动化,通过修改values.yaml文件来提供更丰富的自定义部署配置。
为了达到一键部署即可使用的目的,我先描述一下部署Harbor之前的准备工作
为了能把Harbor应用发布到Kubernetes集群外,这里需要先部署一个Ingress-controller
目前有两个选择ingress-nginx和Cilium组件的ingress-controller
使用Helm部署ingress-nginx
验证ingress-nginx的资源
Cilium组件的部署和启用ingress的操作见文章在K8S上部署Cilium组件,看这一篇干货就够了
不管使用哪一种ingress-controller,ingress对外发布应用的SVC都是LoadBalancer类型的SVC,都需要配置EXTERNAL-IP,这里有一个工具可以提供地址分配的功能,他就是MetalLB,所以接下来我们部署MetalLB,配置LoadBalancer SVC的IPAddressPool
部署MetalLB需要三个文件
metallb-native.yaml是MetalLB的资源清单文件,包含MetalLB的namespace、controller、speaker等资源
metallb-ipaddresspool.yaml是地址池文件,定义地址池
metallb-l2advertisment.yaml是2层通告定义文件,应用地址池,通过接口
部署MetalLB时,先部署metallb-native.yaml文件,提供CRD
部署ipaddresspool和L2advertisement
验证MetalLB的资源部署成功
此时再看ingress的SVC的EXTERNAL-IP就自动分配上IP地址了
为了方便为Harbor提供持久卷支持,我们也有多种选择
通过kubernetes-csi/csi-driver-nfs与nfs-subdir-external-provisioner提供NFS-CSI存储类
部署nfs-subdir-external-provisioner的过程(需要提供额外的NFS-Server)
$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
$ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \ --set nfs.server=x.x.x.x \ --set nfs.path=/exported/path
部署成功后Kubernetes集群内生成nfs-client存储类,提供PV的自动创建
通过helm部署openebs
验证OpenEBS资源
OpenEBS提供openebs-hostpath存储类
这个文件里需要用到上面提供的ingress和存储类,两种资源都有两种选择,这个截图里使用里Cilium的Ingress,OpenEBS的openebs-hostpath存储类,其他选择也是可以成功部署。
OpenEBS自动配置PV,自动绑定PVC
镜像下载较慢,使用了手动下载镜像
***欢迎关注作者的公众号,公众号每天分享运维干货文章***
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。