使用官方kk脚本部署KubeSphere
参考:
KubeSphere文档
https://www.kubesphere.io/zh/docs/v3.3/installing-on-linux/on-premises/install-kubesphere-on-vmware-vsphere/
节点分布
1 2 3 4 5 6
| 172.16.11.11 master1a 172.16.11.12 node1a 172.16.11.13 node2a 172.16.11.21 master1b 172.16.11.22 node1b 172.16.11.23 node2b
|
部署KubeSphere
修改配置文件
从 GitHub Release Page 下载 KubeKey 或直接使用以下命令。(可以通过VERSION指定KubeKey)
1 2
| curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh - chmod +x kk
|
指定kubernetes和kubesphere版本,不指定 KubeSphere 版本,则会安装最新版本的 KubeSphere,我没有指定kubernetes版本,20230514默认为v1.23.10
1
| ./kk create config --with-kubernetes --with-kubesphere v3.3.2
|
默认文件 config-sample.yaml 创建后,根据您的环境修改该文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| apiVersion: kubekey.kubesphere.io/v1alpha2 kind: Cluster metadata: name: sample spec: hosts: - {name: master1a, address: 172.16.11.11, internalAddress: 172.16.11.11, user: root, password: "password"} - {name: node1a, address: 172.16.11.12, internalAddress: 172.16.11.12, user: root, password: "password"} - {name: node2a, address: 172.16.11.13, internalAddress: 172.16.11.13, user: root, password: "password"} - {name: master1b, address: 172.16.11.21, internalAddress: 172.16.11.21, user: root, password: "password"} - {name: node1b, address: 172.16.11.22, internalAddress: 172.16.11.22, user: root, password: "password"} - {name: node2b, address: 172.16.11.23, internalAddress: 172.16.11.23, user: root, password: "password"} roleGroups: etcd: - master1a - master1b control-plane: - master1a - master1b worker: - node1a - node2a - node1b - node2b controlPlaneEndpoint: ## Internal loadbalancer for apiservers # internalLoadbalancer: haproxy
domain: vip.cluster.local #vip address address: "172.16.10.1" port: 6443 kubernetes: version: --with-kubesphere clusterName: cluster.local autoRenewCerts: true containerManager: 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: []
#··· # 其它配置可以在安装后之后根据需要进行修改(官方说的)
|
其实后面有个KubeSphere的应用商店的配置,默认是false,如果需要使用改true
即使这里没有修改,部署完成后也是可以手动添加应用商店,后面会提到.
1 2 3
| openpitrix: store: enabled: false
|
持久化存储配置
官方:
如本文开头的前提条件所说,对于生产环境,我们建议您准备持久性存储,可参考以下说明进行配置。若搭建开发和测试环境,您可以跳过这小节,直接使用默认集成的 OpenEBS 的 LocalPV 存储。
继续编辑上述config-sample.yaml文件,找到[addons]字段,这里支持定义任何持久化存储的插件或客户端,如 NFS Client、Ceph、GlusterFS、CSI,根据您自己的持久化存储服务类型,并参考 持久化存储服务 中对应的示例 YAML 文件进行设置。
参考文档:https://www.kubesphere.io/zh/docs/v3.3/installing-on-linux/persistent-storage-configurations/understand-persistent-storage/
本次部署,没有部署kubesphere的持久性存储,只对后面Nginx的配置文件和证书做了持久性存储.
执行创建集群
使用上面自定义的配置文件创建集群:
1
| ./kk create cluster -f config-sample.yaml
|
根据表格的系统依赖的前提条件检查,如果相关依赖都显示 √,则可以输入 yes 继续执行安装。
建议安装全部的相关依赖
验证安装结果
此时可以看到安装日志自动输出,或者可以再打开一个 SSH 手动检查安装日志,然后等待安装成功。
1
| kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
|
有时候这个安装日志不一定输出官方的安装结果
使用kubectl查看控制面板状态ks-console
1 2 3 4 5 6 7
| [root@master1a ~]# kubectl -n kubesphere-system get service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE ks-apiserver ClusterIP 10.233.13.35 <none> 80/TCP 18d ks-console NodePort 10.233.29.48 <none> 80:30880/TCP 18d ks-controller-manager ClusterIP 10.233.54.17 <none> 443/TCP 18d minio ClusterIP 10.233.29.49 <none> 9000/TCP 13d redis ClusterIP 10.233.51.65 <none> 6379/TCP 18d
|
通过30880端口访问
kubesphere部署完成