
Beim Ausführen kos kubectl get storageclass
stelle ich fest, dass es nicht bereitgestellt ist und ich es manuell hinzufügen muss. Ich bin mir jedoch über das genaue Verfahren nicht ganz sicher. In der [Dokumentation][https://docs.k0sproject.io/main/storage/] steht, dass k0s mit installiertem OpenEBS geliefert wird. Ich bin mir jedoch nicht sicher, wie ichAktivieren Sie diese Erweiterungin der Konfigurationsdatei.
Meine vorhandene Konfigurationsdatei enthält nur Folgendes (ich nehme an, dies sollte die Standardkonfigurationsdatei sein. Ist das richtig?):
spec:
api:
externalAddress
k0s stop
Ich habe die Konfigurationsdatei ausgeführt und dann wie folgt geändert:
spec:
api:
externalAddress
extensions:
storage:
type: openebs_local_storage
Nach dieser Konfigurationsänderung erhalte ich immer noch denselben Fehler, dass keine Speicherklasse für den Cluster gefunden wurde. Muss ich auch k0s neu installieren/installieren? Ich bin mir nicht sicher, da die vorhandene k0s.yaml im Vergleich zu dem im Link angegebenen Beispiel sehr wenige Konfigurationsparameter zu haben scheint.
EDIT: VerwendenDokumentationIch habe nun eine neue k0s.yaml-Datei erstellt, die die vorhandenen Standardeinstellungen verwendet. Es stellte sich heraus, dass sie die vorhandene k0s.yaml-Datei (siehe oben) überschreibt: Ich habe auch Änderungen an der neuen YAML-Datei vorgenommen, um Folgendes zu erstellen:
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
Nach dieser Änderung führe ich eine Neuinstallation des Clusters durch (mit der neuen Konfiguration):
k0s install controller -c /etc/k0s/k0s.yaml
aber jetzt bekomme ich eine Fehlermeldung:
Error: failed to install k0s service: failed to install service: Init already exists: /etc/systemd/system/k0scontroller.service
Antwort1
Ich konnte Ihr Problem reproduzieren. Um den Cluster mit der neuen Konfiguration für den OpenEBS-Speicher neu zu installieren, müssen Sie Ihre vorherige Einrichtung bereinigen:
- Stoppen Sie den k0s-Dienst.
sudo k0s stop
- Setzen Sie die vorherige Installation zurück, die ohne Ihre benutzerdefinierte Konfigurationsdatei durchgeführt wurde:
sudo k0s reset
- Installieren Sie k0s mit Ihrer neuen Konfigurationsdatei und mit
--enable-worker
dem Flag -> erneut, sodass Single-Node-k0s mit Controller- und Worker-Funktionen erneut installiert werden:
sudo k0s install controller --enable-worker -c /etc/k0s/k0s.yaml
- Starten Sie den k0s-Dienst:
sudo k0s start
- Überprüfen Sie nach einigen Sekunden, ob im Cluster zwei Speicherklassen aktiviert sind, die Sie verwenden können:
sudo k0s kubectl get storageclass
Die Speicherklassen haben volumeBindingMode: WaitForFirstConsumer
folgende Bedeutung: Es gibt eine Verzögerung bei der Volume-Bindung, bis der Anwendungs-Pod auf dem Knoten geplant ist.