1.简介
以下安装基于Centos7机器
1.1效果图
1.2资源要求
2.配置基于NFS的DefaultStorageClass
2.1安装NFS服务端
2.1.1安装必要资源
# nfs服务端和使用nfs的客户端都执行安装(k8s的各个节点都安装)
yum -y install nfs-utils rpcbind
# 设置开机自启动
systemctl enable nfs
systemctl enable rpcbind
# 启动nfs
systemctl start rpcbind
systemctl start nfs
2.1.2.配置
# 配置nfs
vi /etc/exports
/usr/local/k8s/nfsdata 172.16.255.0/24(rw,no_root_squash,no_all_squash,sync)
# 启动nfs
systemctl restart nfs
2.2.创建StorageClass
基于nfs的storageclass需要下载对应的插件进行部署
2.2.1.下载资源文件
# 如果实在下载不下来,就直接进入github进行拷贝 下面这几个yaml文件
for file in class.yaml deployment.yaml rbac.yaml test-claim.yaml test-pod.yaml; \
do wget https://github.com/kubernetes-retired/external-storage/tree/master/nfs-client/deploy/$file; \
done
2.2.2.修改deployment.yaml
2.2.3.设置DefaultStorageClass
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
annotations:
storageclass.kubernetes.io/is-default-class: "true" # 此属性为设置为default StorageClass
name: managed-nfs-storage
provisioner: fuseim.pri/ifs # or choose another name, must match deployment's env PROVISIONER_NAME'
parameters:
archiveOnDelete: "false"
2.2.4.测试StorageClass
kubectl apply -f test-claim.yaml kubectl apply -f test-pod.yaml
如果创建的pvc一直处于pending状态,可按照如下方式解决(增加配置后需要等待k8s重启完成)
[问题描述](https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/issues/25)
# 解决:
# 修改apiserver的yaml文件
vim /etc/kubernetes/manifests/kube-apiserver.yaml
# 内容如下
spec:
containers:
- command:
- kube-apiserver
- --feature-gates=RemoveSelfLink=false
3.安装kubesphere
# 执行以下命令安装
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/kubesphere-installer.yaml
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.2.1/cluster-configuration.yaml
# 执行以下命令检查安装日志 过程稍微有点长 最后出现文章开头的内容就说明安装成功
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
# 在浏览器中出入日志中提示的访问地址即可