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"}

备注:

  1. HA 高可用集群在线安装
  2. 通过物理机 Linux 服务器使用 kk 进行安装
  3. 未安装 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 ?

xiaoliu 666 啊大佬,我测试真的解决了!!!想问下你是在哪儿看见可以设置成 None 的?我找了半天官方也没看见呐。。。

2 个月 后