Kubernetes

如何在現有 k0s 集群上配置儲存類

  • February 15, 2022

當我執行時,kos kubectl get storageclass我注意到它沒有被配置,我必須手動添加它。我不太確定確切的程序。這

$$ Documentation $$$$ https://docs.k0sproject.io/main/storage/ $$說 k0s 安裝了 OpenEBS。我不確定如何在配置文件中啟用此擴展。 我現有的配置文件只有這個(我假設這應該是預設配置文件。這是正確的嗎?):

spec:
 api:
   externalAddress

我已經執行k0s stop然後修改了配置文件如下:

spec:
 api:
   externalAddress
 extensions:
   storage:
     type: openebs_local_storage

在此配置更改之後,我仍然收到相同的錯誤,他們沒有為集群找到儲存類。我是否還需要重新安裝/安裝 k0s,我有點不確定,因為與連結中給出的範例相比,現有的 k0s.yaml 似乎只有很少的配置參數。

編輯:使用文件我已經開始生成一個使用現有預設設置的新 k0s.yaml。原來它覆蓋了現有的 k0s.yaml(如上所示):我還對新的 yaml 文件進行了更改以生成此文件:

apiVersion: k0s.k0sproject.io/v1beta1
kind: ClusterConfig
metadata:
 creationTimestamp: null
 name: k0s
spec:
 api:
   address: 10.XXX.XXX.XXX
   k0sApiPort: 9443
   port: 6443
   sans:
   - 10.XX.XX.XXX
   - 172.XX.XX.XXX
   - 10.XX.XX.XXX
   - 10.XX.XX.XXX
   - fe80::XXX:XXX:XXX:XXX
   - fe80::XXX:XXX:XXX:XXX
   - fe80::XXX:XXX:XXX:XXX
   - fe80::XXX:XXX:XXX:XXX
   - fe80::XXX:XXX:XXX:XXX
   - fe80::XXX:XXX:XXX:XXX
   tunneledNetworkingMode: false
 controllerManager: {}
 extensions:
   helm:
     charts: null
     repositories: null
   storage:
     create_default_storage_class: true
     type: openebs_local_storage
 images:
   calico:
     cni:
       image: docker.io/calico/cni
       version: v3.21.2
     kubecontrollers:
       image: docker.io/calico/kube-controllers

在此更改之後,我繼續重新安裝集群(使用新配置):

k0s install controller -c /etc/k0s/k0s.yaml

但我現在收到一個錯誤:

Error: failed to install k0s service: failed to install service: Init already exists: /etc/systemd/system/k0scontroller.service

我能夠重現您的問題 - 為了使用 OpenEBS 儲存的新配置重新安裝集群,您需要清理之前的設置:

  1. 停止 k0s 服務。
sudo k0s stop
  1. 重置以前在沒有自定義配置文件的情況下完成的安裝:
sudo k0s reset
  1. 使用新的配置文件和標誌重新安裝 k0s --enable-worker-> 以便再次安裝具有控制器和工作程序功能的單節點 k0s:
sudo k0s install controller --enable-worker -c /etc/k0s/k0s.yaml
  1. 啟動k0s服務:
sudo k0s start
  1. 幾秒鐘後,檢查集群上是否啟用了兩個儲存類供您使用:
sudo k0s kubectl get storageclass

儲存類將具有volumeBindingMode: WaitForFirstConsumer- 意思是,在節點上調度應用程序 pod 之前,卷綁定存在延遲。

引用自:https://serverfault.com/questions/1091569