需求描述
kubelet的默认工作目录(存储目录)是/var/lib/kubelet,会存放volume文件(包括emptyDir volume)、plugin文件等,默认挂载在系统盘。
而系统盘一般都不会太大,因此最好把kubelet工作目录更改到数据盘。
本文中,我们会把docker的工作目录从/var/lib/kubelet改到/data/kubelet,其中/data目录挂载了数据盘。
《ansible+kubeadm部署K8S高可用集群》一文中,我们安装完成了K8S高可用集群。表面看一切正常,跑测试pod也没有问题。
但是在《K8S中安装Milvus》时,就出现了问题。
1 | helm install milvus-operator \ |
报错:
1 | Warning FailedMount 82s (x13 over 11m) kubelet MountVolume.SetUp failed for volume "cert" : secret "milvus-operator-webhook-cert" not found |
从报错看,像是cert-manager的问题。
当前有十台主机,主机IP为192.168.56.101-110,用户为voidking,具有sudo权限。
现在想要用这十台主机搭建一个K8S集群,版本1.22.15,其中3台作为master,7台作为worker。
参考文档:
最简单的方法,我们可以使用kubeadm逐个主机进行安装配置,参考《kubeadm安装部署K8S集群——CentOS篇》。
但是挨个安装效率太低了,所以我们希望能够批量安装,使用 ansible+kubeadm 。有一个kubeadm-ansible项目,可以使用ansible+kubeadm实现批量安装,但是已经废弃了(两年没有更新,issue也没人处理)。
因此,需要自行实现ansible+kubeadm的批量安装方式。
此外,因为要3台master配置高可用,所以还要安装keepalived+haproxy。
整体操作流程:
为方便描述,下文中使用主机IP的最后一段作为该主机的简称,例如:192.168.56.101简称为101。