获取kk脚本
bash
curl -sfL https://get-kk.kubesphere.io | sh -
会在当前目录生成 kk 可执行程序
查看支持的k8s版本
bash
./kk version --show-supported-k8s
会列出此kk版本所支持的k8s版本
创建清单文件(默认版本1.23)
本次我部署1.28.8
bash
./kk create config --with-kubesphere
创建指定版本的配置清单:
./kk create config -f k8s-v1288.yaml --with-kubernetes v1.28.8
清单内容:
yaml
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec:
hosts:
- {name: master, address: 172.28.112.169, internalAddress: 172.28.112.169, user: root, password: "你的密码"}
- {name: node-1, address: 172.28.112.170, internalAddress: 172.28.112.170, user: root, password: "你的密码"}
- {name: node-2, address: 172.28.112.182, internalAddress: 172.28.112.180, user: root, password: "你的密码"}
roleGroups:
etcd:
- master
control-plane:
- master
worker:
- node-1
- node-2
controlPlaneEndpoint:
## Internal loadbalancer for apiservers
# internalLoadbalancer: haproxy
domain: lb.kubesphere.local
address: ""
port: 6443
kubernetes:
version: v1.28.8
clusterName: cluster.local
autoRenewCerts: true
containerManager: containerd
etcd:
type: external # 默认为kubekey,我本次使用现有的外部etcd
external:
endpoints:
- https://172.28.112.169:2379
caFile: /etc/etcd/ssl/ca.crt
certFile: /etc/etcd/ssl/client.crt
keyFile: /etc/etcd/ssl/client.key
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: []
创建指定版本清单文件
bash
export KKZONE=cn # 在部署阶段拉取国内的镜像
./kk create cluster -f k8s-v1288.yaml
bash
# 清理集群
./kk delete cluster -f k8s-v1288.yaml