kubernetes NFS Provisioner 配置
注意使用这个组件必须要提前配置好nfs服务器
配置nfs-server
我选择在master节点上创建nfs服务端
yum install -y rpcbind nfs-utils
配置nfs
vi /etc/export
/home/nfs *(rw,sync,no_all_squash,no_root_squash)
systemctl start rpcbind
systemctl start nfs
systemctl enable rpcbind
systemctl enable nfs
exportfs -r
showmount -e 192.168.200.11
创建NFS Provisioner RBAC鉴权
vi /root/nfs-provisioner-rbac.yaml
#创建sa
apiVersion: v1
kind: ServiceAccount
metadata:
name: nfs-client-provisioner
namespace: kube-system
---
#简单一点直接给sa绑定kube-system 的clusterrole
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: nfs
namespace: kube-system
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: nfs-client-provisioner
namespace: kube-system
配置nfs-provisioner服务
apiVersion: apps/v1
kind: Deployment
metadata:
name: nfs-provisioner
namespace: kube-system
labels:
app: nfs
spec:
replicas: 1
selector:
matchLabels:
app: nfs
template:
metadata:
labels:
app: nfs
spec:
serviceAccountName: nfs-client-provisioner
containers:
- name: nfs
image: 192.168.200.11/library/nfs-client-provisioner
imagePullPolicy: IfNotPresent
volumeMounts: #数据持久化,可以不用写
- name: nfs-client-path
mountPath: /persistentvolumes
env:
- name: PROVISIONER_NAME #配置容器内的环境变量,知道nfs
value: nfs-client #这个名字后面的storageclass是用到的
- name: NFS_SERVER
value: 192.168.200.11
- name: NFS_PATH
value: /home/nfs
volumes: #挂载到本地
- name: nfs-client-path
nfs:
server: 192.168.200.11
path: /home/nfs
#启动nfs-provisioner
kubectl apply -f nfs-provisioner-deployment.yaml
创建storageclass
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-storage #这个名字后面的pvc是用到的
provisioner: nfs-client
#启动
kubectl apply -f nfs-storageclass.yaml
创建pvc
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: test-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: nfs-storage
resources:
requests:
storage: 1Mi
#启动
kubectl apply -f nfs-pvc.yaml
测试
[root@master ~]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
test-pvc Bound pvc-1e18c20a-52be-4a5c-9ede-cefb7f8b4f16 1Mi RWO nfs-storage 54m
#状态为bound即为正确
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通