1、操作系统信息
Master1 物理机,CentOS Linux release 7.9.2009 (Core),8C/32G
Master2 物理机,CentOS Linux release 7.9.2009 (Core),8C/32G
Worker1 物理机,CentOS Linux release 7.9.2009 (Core),8C/32G
Worker2 物理机,CentOS Linux release 7.9.2009 (Core),8C/32G
Worker3 物理机,CentOS Linux release 7.9.2009 (Core),8C/32G
2、Kubernetes 版本信息
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --output=yaml|json to get the full version.
Client Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.5", GitCommit:"890a139214b4de1f01543d15003b5bda71aae9c7", GitTreeState:"clean", BuildDate:"2023-05-17T14:14:46Z", GoVersion:"go1.19.9", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"26", GitVersion:"v1.26.5", GitCommit:"890a139214b4de1f01543d15003b5bda71aae9c7", GitTreeState:"clean", BuildDate:"2023-05-17T14:08:49Z", GoVersion:"go1.19.9", Compiler:"gc", Platform:"linux/amd64"}
3、容器运行时
Version: 0.1.0
RuntimeName: containerd
RuntimeVersion: v1.6.4
RuntimeApiVersion: v1
4、KubeKey 版本信息
kk version: &version.Info{Major:"3", Minor:"0", GitVersion:"v3.0.13", GitCommit:"ac75d3ef3c22e6a9d999dcea201234d6651b3e72", GitTreeState:"clean", BuildDate:"2023-10-30T11:15:14Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"}
备注:
- HA 高可用集群在线安装
- 通过物理机 Linux 服务器使用 kk 进行安装
- 未安装 KubeSphere
5、问题
主要是想咨询一个需求问题,公司目前想在新部署一套新的 K8s 环境时安装一个第三方的 CNI 插件,而不是默认 kk 配置文件自带的 calico,也不是官网说明的 Flannel 等热门的那几个 CNI,而是比较特殊的第三方 CNI,如何集群化新部署时屏蔽掉 CNI 的安装,实现集群部署完后通过手动安装的方式配置特殊的 CNI 插件?
当前使用 config-sample.yaml 脱敏版配置:
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: master1, address: 192.168.1.1, internalAddress: 192.168.1.1, user: root, password: "123456789"}
- {name: master2, address: 192.168.1.2, internalAddress: 192.168.1.2, user: root, password: "123456789"}
- {name: worker1, address: 192.168.1.3, internalAddress: 192.168.1.3, user: root, password: "123456789"}
- {name: worker2, address: 192.168.1.4, internalAddress: 192.168.1.4, user: root, password: "123456789"}
- {name: worker3, address: 192.168.1.5, internalAddress: 192.168.1.5, user: root, password: "123456789"}
roleGroups:
etcd:
- master1
- master2
control-plane:
- master1
- master2
worker:
- worker1
- worker2
- worker3
controlPlaneEndpoint:
## Internal loadbalancer for apiservers
internalLoadbalancer: haproxy
domain: www.example.com
address: ""
port: 6443
kubernetes:
version: 1.26.5
clusterName: cluster.local
autoRenewCerts: true
containerManager: containerd
etcd:
type: kubekey
network:
plugin: calico
kubePodsCIDR: 10.233.64.0/18
kubeServiceCIDR: 10.233.0.0/18
## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
multusCNI:
enabled: false
registry:
privateRegistry: ""
namespaceOverride: ""
registryMirrors: []
insecureRegistries: []
addons: []
需求:需要将 config-sample.yaml 修改成什么样才能实现不自动安装任何 CNI 来初始化 K8s 集群然后通过手动安装方式进行部署 CNI ?