華為云云原生訓練營學習(二)在鯤鵬的k8s部署NFS

      網友投稿 1077 2022-05-28

      學習k8s存儲架構原理后,對持久化存儲和PV/PVC的工作原理有了更深入的了解。部署cephfs條件需要3個以上的node節點和每個節點都必須有3個以上的硬盤才可以。如果部署要另外添加云硬盤,增加學習成本,不劃算。之前有部署過glusterfs,但是怕部署glusterfs會跟華為的MRS大數據集群在同時使用時有沖突和搶占資源(特別是存儲資源),所以我部署了NFS作為共享存儲,避免資源的搶占。

      1.1 在mas2安裝NFS軟件和啟動NFS:

      yum -y install nfs-utils rpcbind

      systemctl start nfs-server rpcbind

      systemctl enable nfs-server rpcbind

      查看硬盤容量:

      df -h

      1.2 建立NFS目錄

      mkdir -p /srv/BigData/k8snfs

      cd /srv/BigData/k8snfs

      echo wuyicom > index.html

      1.3? 修改配置

      vi /etc/exports

      /srv/BigData/k8snfs *(rw,async,no_root_squash)

      1.4 重啟NFS

      systemctl restart nfs-server

      exportfs -arv

      1.5 客戶端測試,所有node節點上要安裝nfs客戶端

      yum -y install nfs-utils rpcbind

      systemctl start nfs rpcbind

      showmount -e 192.168.0.146

      2.手動管理pv和pvc太麻煩了,建議使用StorageClass管理pv和pvc

      動態生成pv需要StorageClass和nfs-client-provisioner的共同作用

      2.1 創建nfs-client-provisioner

      provisione直接使用nfs服務器

      查看是否有nfs-client-provisioner鏡像

      docker search nfs-client-provisioner

      docker pull jmgao1983/nfs-client-provisioner

      2.2 創建deployment.yaml文件

      ****

      vi deployment.yaml

      kind: Deployment

      apiVersion: apps/v1

      metadata:

      name: nfs-client-provisioner

      spec:

      replicas: 1

      selector:

      matchLabels:

      app: nfs-client-provisioner

      strategy:

      type: Recreate

      template:

      metadata:

      labels:

      app: nfs-client-provisioner

      spec:

      serviceAccountName: nfs-client-provisioner

      containers:

      - name: nfs-client-provisioner

      image: jmgao1983/nfs-client-provisioner:latest

      volumeMounts:

      - name: nfs-client-root

      mountPath: /persistentvolumes

      env:

      - name: PROVISIONER_NAME

      value: fuseim.pri/ifs

      - name: NFS_SERVER

      value: 192.168.0.146

      - name: NFS_PATH

      value: /srv/BigData/k8snfs

      volumes:

      - name: nfs-client-root

      nfs:

      server: 192.168.0.146

      path: /srv/BigData/k8snfs

      ---

      apiVersion: v1

      kind: ServiceAccount

      metadata:

      name: nfs-client-provisioner

      ---

      kind: ClusterRole

      apiVersion: rbac.authorization.k8s.io/v1

      metadata:

      name: nfs-client-provisioner-runner

      rules:

      - 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: ["list", "watch", "create", "update", "patch"]

      - apiGroups: [""]

      resources: ["endpoints"]

      verbs: ["create", "delete", "get", "list", "watch", "patch", "update"]

      ---

      kind: ClusterRoleBinding

      apiVersion: rbac.authorization.k8s.io/v1

      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

      *************

      kubectl create -f deployment.yaml

      查看POD:

      kubectl get pod

      2.3 創建StorageClass

      vi nfsclass.yaml

      apiVersion: storage.k8s.io/v1

      kind: StorageClass

      metadata:

      name: course-nfs-storage

      provisioner: fuseim.pri/ifs

      **************

      kubectl create -f nfsclass.yaml

      查看storageclass:

      kubectl get sc

      2.4 在做測試:

      vi test2.yaml

      apiVersion: apps/v1

      kind: StatefulSet

      metadata:

      name: nfs-web

      spec:

      serviceName: "nginx"

      replicas: 2

      selector:

      matchLabels:

      app: nfs-web

      template:

      metadata:

      華為云云原生訓練營學習(二)在鯤鵬的k8s部署NFS

      labels:

      app: nfs-web

      spec:

      terminationGracePeriodSeconds: 10

      containers:

      - name: nginx

      image: nginx

      ports:

      - containerPort: 80

      name: web

      volumeMounts:

      - name: www

      mountPath: /usr/share/nginx/html

      volumeClaimTemplates:

      - metadata:

      name: www

      annotations:

      volume.beta.kubernetes.io/storage-class: course-nfs-storage

      spec:

      accessModes: [ "ReadWriteOnce" ]

      resources:

      requests:

      storage: 1Gi

      *********************

      kubectl create -f test-pod.yaml

      出現下面的問題如圖所示:

      出現這個問題后后續再解決吧。

      云原生 機器學習 鯤鵬

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:用sysbench快速裝載MySQL測試數據
      下一篇:關于rolling函數的探索,以及對北向資金能否預示股市漲跌的修正
      相關文章
      日本系列1页亚洲系列| 亚洲成A人片在线播放器| 亚洲免费综合色在线视频| 亚洲免费在线视频观看| 亚洲视频在线免费看| 亚洲AV无码久久寂寞少妇| 亚洲午夜久久久久久噜噜噜| 国外亚洲成AV人片在线观看| 久久久久亚洲AV综合波多野结衣| 亚洲午夜精品一级在线播放放| 亚洲国模精品一区| 亚洲性在线看高清h片| 亚洲色婷婷综合开心网| 红杏亚洲影院一区二区三区| 国产成人精品日本亚洲专区| 久久久久亚洲精品中文字幕| 亚洲精品国产品国语在线| 亚洲AV永久无码精品| 久久亚洲AV成人无码电影| 亚洲一区综合在线播放| 精品日韩亚洲AV无码一区二区三区| 亚洲资源在线观看| 亚洲最大黄色网站| 亚洲av无码不卡久久| 亚洲中文无码mv| 色天使色婷婷在线影院亚洲| 亚洲 自拍 另类小说综合图区| 亚洲成a人无码av波多野按摩| 亚洲精品无码日韩国产不卡?V| 国产亚洲视频在线播放| 久久精品九九亚洲精品天堂| 亚洲人成网站影音先锋播放| 亚洲国产精品乱码在线观看97| 亚洲深深色噜噜狠狠网站| 亚洲精品无码久久久久A片苍井空| 精品久久久久久亚洲中文字幕| 亚洲国产av无码精品| 亚洲一区二区三区影院| 亚洲人成电影在线天堂| 亚洲一区二区三区不卡在线播放| 亚洲色大成网站www永久男同|