在 Kubernetes 上安装 KubeSphere 3.3.0,Kubernetes 版本必须为:v1.19.x,v1.20.x,v1.21.x,v1.22.x 或 v1.23.x(实验性支持)。如果版本不符合要求,请参考 【Kubernetes系列】K8s由1.24.1降级为1.23.8 降级或升级为符合要求的版本。
机器满足最低硬件要求:CPU > 1 核,内存 > 2 GB。
Kubernetes 集群已配置默认 StorageClass。确认方法:
kubectl get sc
[root@master01 ~]# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
managed-nfs-storage fuseim.pri/ifs Delete Immediate false 3h6m
执行以下命令进行安装:
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.0/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.0/cluster-configuration.yaml
常见报错:
[root@master01 kubesphere]# kubectl apply -f kubesphere-installer.yaml
namespace/kubesphere-system created
serviceaccount/ks-installer created
clusterrole.rbac.authorization.k8s.io/ks-installer created
clusterrolebinding.rbac.authorization.k8s.io/ks-installer created
deployment.apps/ks-installer created
error: unable to recognize "kubesphere-installer.yaml": no matches for kind "CustomResourceDefinition" in version "apiextensions.k8s.io/v1beta1"
解决方法:
修改配置文件 kubesphere-installer.yaml,将 “apiextensions.k8s.io/v1beta1” 改为 “apiextensions.k8s.io/v1”。
检查安装日志:
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
查看 Pod 是否正常运行:
kubectl get pod --all-namespaces
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-6b77fff45-czfmp 1/1 Running 0 60m
kube-system calico-node-fsbl4 1/1 Running 0 60m
kube-system coredns-6d8c4cb4d-cpjh9 1/1 Running 0 20h
kube-system coredns-6d8c4cb4d-csc8f 1/1 Running 0 20h
kube-system etcd-master01 1/1 Running 0 20h
kube-system kube-apiserver-master01 1/1 Running 0 20h
kube-system kube-controller-manager-master01 1/1 Running 0 20h
kube-system kube-proxy-r5rtc 1/1 Running 0 20h
kube-system kube-scheduler-master01 1/1 Running 0 20h
kubesphere-system ks-installer-c9655d997-vb2pr 1/1 Running 0 8m33s
如果 Pod 运行正常,通过以下命令检查控制台的端口(默认为 30880):
kubectl get svc/ks-console -n kubesphere-system
[root@master01 ~]# kubectl get svc/ks-console -n kubesphere-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ks-console NodePort 10.10.3.219 <none> 80:30880/TCP 6h59m
确保在安全组中打开了端口 30880,并通过 NodePort (IP:30880) 使用默认帐户和密码 (admin/P@88w0rd) 访问 Web 控制台。
http://192.168.1.28:30880