<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Kubernetes配置默認存儲類 ## 前言 今天在配置Kubesphere的時候,出現了下面的錯誤 ![image-20201123095552088](https://img.kancloud.cn/78/b3/78b39227b9188b6f244398ff667c7dac_829x695.png) 經過排查,發現是這個原因 ![image-20201123095637801](https://img.kancloud.cn/2f/0a/2f0ad29b94a9fef1fd980a91f60e7ec5_421x38.png) 我通過下面命令,查看Kubernetes集群中的默認存儲類 ```bash kubectl get storageclass ``` 發現空空如也,所以問題應該就出現在這里了~,下面我們給k8s集群安裝上默認的存儲類 ## 安裝nfs 我們使用的是nfs來作為k8s的存儲類 首先找一臺新的服務器,作為nfs服務端,然后進行 nfs的安裝 【服務器:192.168.177.141】 然后使用命令安裝nfs ```bash yum install -y nfs-utils ``` 首先創建存放數據的目錄 ```bash mkdir -p /data/k8s ``` 設置掛載路徑 ```bash # 打開文件 vim /etc/exports # 添加如下內容 /data/k8s *(rw,no_root_squash) ``` ## node節點上安裝 然后需要在k8s集群node節點上安裝nfs,這里需要在 node1 和 node2節點上安裝 ```bash yum install -y nfs-utils ``` 執行完成后,會自動幫我們掛載上 ## 啟動nfs 在node節點上配置完成后,我們就接著到剛剛nfs服務器,啟動我們的nfs ```bahs systemctl start nfs ``` ## 配置StorageClass 要使用StorageClass,我們就得安裝對應的自動配置程序,比如上面我們使用的是nfs,那么我們就需要使用到一個 nfs-client 的自動配置程序,我們也叫它 Provisioner,這個程序使用我們已經配置的nfs服務器,來自動創建持久卷,也就是自動幫我們創建PV ```bash 自動創建的 PV 以${namespace}-${pvcName}-${pvName}這樣的命名格式創建在 NFS 服務器上的共享數據目錄中 而當這個 PV 被回收后會以archieved-${namespace}-${pvcName}-${pvName}這樣的命名格式存在 NFS 服務器上。 ``` 當然在部署nfs-client之前,我們需要先成功安裝上 nfs 服務器,上面已經安裝好了,服務地址是192.168.177.141,共享數據目錄是/data/k8s/,然后接下來我們部署 nfs-client 即可,我們也可以直接參考 [nfs-client 文檔](https://github.com/kubernetes-incubator/external-storage/tree/master/nfs-client),進行安裝即可。 ### 配置Deployment 首先配置 Deployment,將里面的對應的參數替換成我們自己的 nfs 配置(nfs-client.yaml) ```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: quay.io/external_storage/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.177.141 - name: NFS_PATH value: /data/k8s volumes: - name: nfs-client-root nfs: server: 192.168.177.141 path: /data/k8s ``` ### 替換配置 將環境變量 NFS_SERVER 和 NFS_PATH 替換,當然也包括下面的 nfs 配置,我們可以看到我們這里使用了一個名為 nfs-client-provisioner 的serviceAccount,所以我們也需要創建一個 sa,然后綁定上對應的權限:(nfs-client-sa.yaml) ```bash 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 ``` 我們這里新建的一個名為 nfs-client-provisioner 的ServiceAccount,然后綁定了一個名為 nfs-client-provisioner-runner 的ClusterRole,而該ClusterRole聲明了一些權限,其中就包括對persistentvolumes的增、刪、改、查等權限,所以我們可以利用該ServiceAccount來自動創建 PV。 ### 創建StorageClass對象 nfs-client 的 Deployment 聲明完成后,我們就可以來創建一個StorageClass對象了:(nfs-client-class.yaml) ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: course-nfs-storage provisioner: fuseim.pri/ifs # or choose another name, must match deployment's env PROVISIONER_NAME' ``` 我們聲明了一個名為 course-nfs-storage 的StorageClass對象,注意下面的provisioner對應的值一定要和上面的Deployment下面的 PROVISIONER_NAME 這個環境變量的值一樣 ```yaml apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: course-nfs-storage provisioner: fuseim.pri/ifs # or choose another name, must match deployment's env PROVISIONER_NAME' ``` ### 創建資源對象 在我們準備好上述的配置文件后,我們就可以開始創建我們的資源對象了 ```bash kubectl create -f nfs-client.yaml kubectl create -f nfs-client-sa.yaml kubectl create -f nfs-client-class.yaml ``` 創建完成后,使用下面命令來查看資源狀態 ```bash kubectl get pods # 查看存儲類 kubectl get storageclass ``` ![image-20201123104358758](https://img.kancloud.cn/a8/63/a86378cd81caf801a684bef130077a52_1253x103.png) 我們可以設置這個 course-nfs-storage 的 StorageClass 為 Kubernetes 的默認存儲后端,我們可以用 kubectl patch 命令來更新 ```bash kubectl patch storageclass course-nfs-storage -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}' ``` 執行完命令后,我們默認存儲類就配置成功了~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看