1 部署kubekey
    下载 kk rpm 安装包
    https://github.com/kubesphere/kubekey/releases

    1. [root@master ~]# rpm -ivh kubekey-v2.1.1-linux-64bit.rpm
    2. Preparing... ################################# [100%]
    3. Updating / installing...
    4. 1:kubekey-0:2.1.1-1 ################################# [100%]
    5. [root@master ~]# kk version
    6. version.BuildInfo{Version:"2.1.1", GitCommit:"b19724c7", GitTreeState:"", GoVersion:"go1.17.10"}
    7. [root@master ~]#

    声明环境变量

    1. export KKZONE=cn

    2 创建集群配置文件

    1. [root@master ~]# kk create config
    2. [root@master ~]# ls -l
    3. total 9769020
    4. -rw-------. 1 root root 1405 Jul 8 2021 anaconda-ks.cfg
    5. -rw-r--r--. 1 root root 1036 Jun 6 10:59 config-sample.yaml
    6. -rw-r--r--. 1 root root 17716475 Jun 6 10:50 kubekey-v2.1.1-linux-64bit.rpm
    7. -rw-r--r--. 1 root root 9985745698 Dec 17 15:46 kubesphere-all-v3.1.0-offline-linux-amd64.tar.gz
    8. [root@master ~]# cat config-sample.yaml
    9. apiVersion: kubekey.kubesphere.io/v1alpha2
    10. kind: Cluster
    11. metadata:
    12. name: sample
    13. spec:
    14. hosts:
    15. - {name: node1, address: 172.16.0.2, internalAddress: 172.16.0.2, user: ubuntu, password: "Qcloud@123"}
    16. - {name: node2, address: 172.16.0.3, internalAddress: 172.16.0.3, user: ubuntu, password: "Qcloud@123"}
    17. roleGroups:
    18. etcd:
    19. - node1
    20. control-plane:
    21. - node1
    22. worker:
    23. - node1
    24. - node2
    25. controlPlaneEndpoint:
    26. ## Internal loadbalancer for apiservers
    27. # internalLoadbalancer: haproxy
    28. domain: lb.kubesphere.local
    29. address: ""
    30. port: 6443
    31. kubernetes:
    32. version: v1.21.5
    33. clusterName: cluster.local
    34. autoRenewCerts: true
    35. etcd:
    36. type: kubekey
    37. network:
    38. plugin: calico
    39. kubePodsCIDR: 10.233.64.0/18
    40. kubeServiceCIDR: 10.233.0.0/18
    41. ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    42. multusCNI:
    43. enabled: false
    44. registry:
    45. privateRegistry: ""
    46. namespaceOverride: ""
    47. registryMirrors: []
    48. insecureRegistries: []
    49. addons: []
    50. [root@master ~]#

    集群配置文件

    1. apiVersion: kubekey.kubesphere.io/v1alpha2
    2. kind: Cluster
    3. metadata:
    4. name: riyimei
    5. spec:
    6. hosts:
    7. - {name: master, address: 192.168.31.130, internalAddress: 192.168.31.130, user:root, password: "!Q2w3e4r"}
    8. - {name: node1, address: 192.168.31.131, internalAddress: 192.168.31.131, user:root, password: "!Q2w3e4r"}
    9. - {name: node2, address: 192.168.31.132, internalAddress: 192.168.31.132, user: root, password: "!Q2w3e4r"}
    10. roleGroups:
    11. etcd:
    12. - master
    13. control-plane:
    14. - master
    15. worker:
    16. - node1
    17. - node2
    18. controlPlaneEndpoint:
    19. ## Internal loadbalancer for apiservers
    20. # internalLoadbalancer: haproxy
    21. domain: lb.kubesphere.local
    22. address: ""
    23. port: 6443
    24. kubernetes:
    25. version: v1.21.5
    26. imageRepo: kubesphere
    27. masqueradeAll: false
    28. maxPods: 180
    29. nodeCidrMaskSize: 24
    30. proxyMode: ipvs
    31. clusterName: cluster.local
    32. autoRenewCerts: true
    33. etcd:
    34. type: kubekey
    35. network:
    36. plugin: calico
    37. kubePodsCIDR: 10.233.64.0/18
    38. kubeServiceCIDR: 10.233.0.0/18
    39. ## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
    40. multusCNI:
    41. enabled: false
    42. registry:
    43. privateRegistry: ""
    44. namespaceOverride: ""
    45. registryMirrors: []
    46. insecureRegistries: []
    47. addons: []