如何在現有 k0s 叢集上設定儲存類別

如何在現有 k0s 叢集上設定儲存類別

當我運行時,kos kubectl get storageclass我注意到它沒有配置,我必須手動添加它。但我不太確定確切的程序。 [文件][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

答案1

我能夠重現您的問題 - 為了使用 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。

相關內容