-
-
[原创]学习Kubernetes笔记——安装NFS驱动
-
2022-12-31 14:43 17915
-
Kubernetes安装NFS驱动
Kubernetes 不包含内部 NFS 驱动。所以需要使用外部驱动和创建StorageClass
。
官方的YAML文件:
1 | git clone https: / / github.com / kubernetes - sigs / nfs - subdir - external - provisioner |
修改配置
需要修改官方的YAML文件,将服务器和挂载路径改成自己的NFS服务器
编辑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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | apiVersion: apps / v1 kind: Deployment metadata: name: nfs - client - provisioner namespace: default labels: app: nfs - client - provisioner spec: replicas: 1 strategy: type : Recreate selector: matchLabels: app: nfs - client - provisioner template: metadata: labels: app: nfs - client - provisioner spec: serviceAccountName: nfs - client - provisioner containers: - name: nfs - client - provisioner image: kubebiz / nfs - subdir - external - provisioner:v4. 0.2 volumeMounts: - name: nfs - client - root mountPath: / persistentvolumes env: - name: PROVISIONER_NAME value: k8s - sigs.io / nfs - subdir - external - provisioner - name: NFS_SERVER value: 10.3 . 243.101 - name: NFS_PATH value: / data / nfs volumes: - name: nfs - client - root nfs: server: 10.10 . 30.211 path: / k8s - - - apiVersion: storage.k8s.io / v1 kind: StorageClass metadata: name: nfs - storage annotations: storageclass.kubernetes.io / is - default - class : "true" provisioner: k8s - sigs.io / nfs - subdir - external - provisioner allowVolumeExpansion: true parameters: archiveOnDelete: "false" - - - apiVersion: v1 kind: ServiceAccount metadata: name: nfs - client - provisioner namespace: default - - - apiVersion: rbac.authorization.k8s.io / v1 kind: ClusterRole metadata: name: nfs - client - provisioner - runner rules: - apiGroups: [""] resources: [ "nodes" ] verbs: [ "get" , "list" , "watch" ] - apiGroups: [""] resources: [ "persistentvolumes" ] verbs: [ "get" , "list" , "watch" , "create" , "delete" ] - apiGroups: [""] resources: [ "persistentvolumeclaims" ] verbs: [ "get" , "list" , "watch" , "update" ] - apiGroups: [ "storage.k8s.io" ] resources: [ "storageclasses" ] verbs: [ "get" , "list" , "watch" ] - apiGroups: [""] resources: [ "events" ] verbs: [ "create" , "update" , "patch" ] - - - apiVersion: rbac.authorization.k8s.io / v1 kind: ClusterRoleBinding metadata: name: run - nfs - client - provisioner subjects: - kind: ServiceAccount name: nfs - client - provisioner namespace: default roleRef: kind: ClusterRole name: nfs - client - provisioner - runner apiGroup: rbac.authorization.k8s.io - - - kind: Role apiVersion: rbac.authorization.k8s.io / v1 metadata: name: leader - locking - nfs - client - provisioner namespace: default rules: - apiGroups: [""] resources: [ "endpoints" ] verbs: [ "get" , "list" , "watch" , "create" , "update" , "patch" ] - - - kind: RoleBinding apiVersion: rbac.authorization.k8s.io / v1 metadata: name: leader - locking - nfs - client - provisioner namespace: default subjects: - kind: ServiceAccount name: nfs - client - provisioner namespace: default roleRef: kind: Role name: leader - locking - nfs - client - provisioner apiGroup: rbac.authorization.k8s.io |
应用
1 2 | kubectl apply - y nfs.yaml #这是修改后的,这里将官方多个yaml文件合成一个文件了 kubectl apply - f deploy / objects / . #这是官方的 |
排错
1 | kubectl get pods | grep nfs - client - provisioner |
输出
1 | nfs - client - provisioner - 66db4f7c - 9kmfn 0 / 1 ContainerCreating 0 3m20s |
如果不是Running
可通过logs获取详细信息排错
1 | kubectl logs - f nfs - client - provisioner - 66db4f7c - 9kmfn - n manager |
这里pod的运行状态一直不是Running,排查问题后发现我只在master上安装了NFS服务,需要在node节点上都安装好nfs-unitl,再查看pod发现状态为Running
验证
获取storageClassName
的名称:
1 2 3 | [root@m1 ~] # kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE nfs - storage (default) k8s - sigs.io / nfs - subdir - external - provisioner Delete Immediate true 2d4h |
这里nfs的驱动就已经配置成功了。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
赞赏记录
参与人
雪币
留言
时间
伟叔叔
为你点赞~
2023-3-18 00:03
一笑人间万事
为你点赞~
2023-1-10 11:51
阿蒙i
为你点赞~
2022-12-31 16:49
赞赏
他的文章
赞赏
雪币:
留言: