
當我運行時,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 儲存的新配置重新安裝集群,您需要清理先前的設定:
- 停止 k0s 服務。
sudo k0s stop
- 重置之前在沒有自訂設定檔的情況下完成的安裝:
sudo k0s reset
- 使用新的設定檔和標誌 -> 重新安裝 k0s,
--enable-worker
以便再次安裝具有控制器和輔助功能的單節點 k0s:
sudo k0s install controller --enable-worker -c /etc/k0s/k0s.yaml
- 啟動k0s服務:
sudo k0s start
- 幾秒鐘後,檢查叢集上是否啟用了兩個儲存類別供您使用:
sudo k0s kubectl get storageclass
儲存類別將具有volumeBindingMode: WaitForFirstConsumer
- 意味著卷綁定存在延遲,直到在節點上調度應用程式 pod。