1.本地存储动态 PVC
# 在所有节点安装 iSCSI 协议客户端(OpenEBS 需要该协议提供存储支持)
yum install iscsi-initiator-utils -y
# 设置开机启动
systemctl enable --now iscsid
# 启动服务
systemctl start iscsid
# 查看服务状态
systemctl status iscsid# 安装 OpenEBS
kubectl apply -f https://openebs.github.io/charts/openebs-operator.yaml# 查看状态(下载镜像可能需要一些时间)
kubectl get all -n openebs# 在主节点创建本地 storage class
kubectl apply -f default-storage-class.yaml
2.安装
# 安装资源
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.1/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.1/cluster-configuration.yaml# 检查安装日志
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 get svc/ks-console -n kubesphere-system# 默认端口是 30880,如果是云服务商,或开启了防火墙,记得要开放该端口# 登录控制台访问,账号密码:admin/P@88w0rd
3.示例
[root@k8s-master kubesphere]# ll
total 76
-rw-r--r-- 1 root root 10070 Jul 26 07:14 cluster-configuration.yaml
-rw-r--r-- 1 root root 1049 Jul 26 07:14 default-storage-class.yaml
-rw-r--r-- 1 root root 7631 Jul 26 07:14 kubesphere-delete.sh
-rw-r--r-- 1 root root 386 Jul 26 07:14 kubesphere-ingress.yaml
-rw-r--r-- 1 root root 4553 Jul 26 07:14 kubesphere-installer.yaml
-rw-r--r-- 1 root root 38283 Jul 26 07:14 openebs-operator.yaml
[root@k8s-master kubesphere]# kubectl apply -f openebs-operator.yaml
namespace/openebs created
serviceaccount/openebs-maya-operator created
clusterrole.rbac.authorization.k8s.io/openebs-maya-operator created
clusterrolebinding.rbac.authorization.k8s.io/openebs-maya-operator created
customresourcedefinition.apiextensions.k8s.io/blockdevices.openebs.io created
customresourcedefinition.apiextensions.k8s.io/blockdeviceclaims.openebs.io created
configmap/openebs-ndm-config created
daemonset.apps/openebs-ndm created
deployment.apps/openebs-ndm-operator created
deployment.apps/openebs-ndm-cluster-exporter created
service/openebs-ndm-cluster-exporter-service created
daemonset.apps/openebs-ndm-node-exporter created
service/openebs-ndm-node-exporter-service created
deployment.apps/openebs-localpv-provisioner created
storageclass.storage.k8s.io/openebs-hostpath created
storageclass.storage.k8s.io/openebs-device created[root@k8s-master kubesphere]# kubectl apply -f default-storage-class.yaml
storageclass.storage.k8s.io/local created[root@k8s-master kubesphere]# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
local (default) openebs.io/local Delete WaitForFirstConsumer false 17m
openebs-device openebs.io/local Delete WaitForFirstConsumer false 19m
openebs-hostpath openebs.io/local Delete WaitForFirstConsumer false 19m[root@k8s-master kubesphere]# kubectl apply -f kubesphere-installer.yaml
customresourcedefinition.apiextensions.k8s.io/clusterconfigurations.installer.kubesphere.io created
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[root@k8s-master kubesphere]# kubectl get po -n kubesphere-system
NAME READY STATUS RESTARTS AGE
ks-installer-7489cf4b66-wj4rc 1/1 Running 0 16m
openldap-0 0/1 Pending 0 3s[root@k8s-master kubesphere]# kubectl apply -f cluster-configuration.yaml
clusterconfiguration.installer.kubesphere.io/ks-installer created
查看日志:
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
yml附件: