AnyCloudK8s
AnyCloudK8s ist im Self-Service verfügbar. Kubernetes-Cluster können im ix.Portal erstellt, verwaltet und aktualisiert werden.
Voraussetzungen
- Du hast Zugriff auf den gewünschten Cluster und/oder die passende Subscription im ix.Portal.
Funktionen
- Erstellen und löschen eines k8s Cluster
- Cluster Lifecycle
- Personalisierte Kubeconfig
- Worker Pools erweitern und verwalten
Erstelle ein k8s Cluster
Beim Erstellen gehst du wie folgt vor. Dein Cluster ist immer an eine Subscription gebunden.
Eine Subscription wird im Backend mit einer Default-Quota definiert. Diese kann via generischem Change angepasst werden.
CPU: 150
MEM: 500GB
Bei der Bestellung eines neuen Clusters kann die Bereitstellung bis zu 5 Tage dauern.
Nach der initialen Bereitstellung sind alle weiteren Service-Funktionen vollautomatisiert verfügbar, z.B. Patchen/Updates sowie das Management der Worker Pools (Erweitern, Modifizieren, Verkleinern).
Navigiere links zu Container Service -> AnyCloudK8s. Du siehst die bestehenden Cluster. Für einen neuen Cluster klicke NEW.
Pflichtangaben
- Cluster Name (max. 46 Zeichen)
- SLA (Silber, Rhodium)
- Datacenter Location (St. Gallen, Gais)
- CNI Kind (cilium, canal) + CNI Version (gemäss Liste)
- Kubernetes Version (gemäss Liste)
- Cluster Size (gemäss Liste, Details via ?)
- Worker Pool ID (Default: Default-[Nummer])
- Hardware Profile (gemäss Liste)
- Node Quantity (sichtbar nach Auswahl von Cluster Size)
- Operating System (gemäss Liste)
Die restlichen Felder sind Metadaten, wie bei den anderen Services.
Cluster Lifecycle
Im ix.Portal kannst du Cluster selbständig patchen oder upgraden.
Du musst immer zuerst die Control Plane aktualisieren - entweder auf eine höhere Patch-Version oder auf eine neue Kubernetes-Minor-Version. Der Worker Pool kann nur auf die gleiche Version aktualisiert werden.
Um einen Cluster zu aktualisieren, editierst du den Cluster: Klicke auf die drei Punkte und wähle "Modify".
Control Plane aktualisieren
Wähle die Control-Plane-Version und speichere. Damit wird nur die Control Plane aktualisiert, den Worker Pool aktualisierst du danach separat, sobald die Control Plane fertig ist.
Worker Pool aktualisieren
Im Worker Pool kannst du entweder alle Pools auf eine Kubernetes-Version setzen oder einzelne Pools auf die Control-Plane-Version aktualisieren (Selfservice über "Modify").
- Alle Pools übernehmen: Bei "Worker Pool Configuration" auf die zwei Pfeile klicken.
- Einzelne Pools: Im jeweiligen Pool die Kubernetes-Version auswählen.
- Danach speichern, damit die Änderung übernommen wird.
Personalisierte Kubeconfig
Pro Benutzer steht eine personalisierte Kubeconfig für den direkten Cluster-Zugriff zur Verfügung. Beim Erstellen "CREATE" übernimmt das ix.Portal die Benutzerdaten automatisch, sodass die Kubeconfig eindeutig personalisiert ist.
Nach der Bestellung wird die Kubeconfig einmalig angezeigt. Falls sie verloren geht, kann sie jederzeit erneuert werden.
Navigiere links zu Container Service -> AnyCloudK8s. Du siehst die bestehenden Cluster. Für eine Kubeconfig wähle den entsprechende Cluster aus.
Worker Pools erweitern und verwalten
Voraussetzungen
- Du hast Zugriff auf den gewünschten Cluster im ix.Portal.
- Du kennst den Zweck des Pools
- Für Taints: Deine Workloads müssen bei Bedarf passende Tolerations setzen.
-
Navigation im ix.Portal
a) Öffne Container Service -> AnyCloudK8s
b) Wähle deinen Cluster aus
c) Modify deinen Cluster (auf die 3 Punkte oben rechts)
d) Klicke beim gewünschten Pool auf den Pfeil nach unten
-
Worker Pool modifizieren
Typische Anpassungen sind z.B. Hardware Profile, Kubernetes-Version (falls verfügbar), Anzahl Node oder weitere Pool-Optionen.
Vorgehen
a) Pool auswählen -> Pfeil nach unten (aufklapen)
b) Gewünschte Werte anpassen
c) Save
Warte, bis der Änderungsstatus abgeschlossen ist (Job/Task im Portal)
Bei Änderungen des Pools, wird ein Rolling-Verhalten auslösen und kann zu Serviceunterbrüche führen (je nach Resilienz der Applikation).
-
Worker Pool verkleinern (Scale-down)
Beim Scale-down werden Worker Nodes aus dem Pool entfernt. Kubernetes versucht dabei, Pods sauber zu verschieben.
Vorgehen
a) Pool auswählen -> Pfeil nach unten (aufklapen)
b) Node Quantity reduzieren (z.B. von 5 auf 4)
c) Save
d) Beobachte den Fortschritt, bis die Node entfernt ist
Empfehlungen vor dem Scale-down:
-
Prüfe, ob genügend freie Ressourcen im Cluster vorhanden sind.
-
Stelle sicher, dass Deployments mit mehreren Replicas laufen, oder kommuniziere ein Wartungsfenster.
-
Bei zustandsbehafteten Workloads: PDBs, StatefulSets und Storage-Verhalten berücksichtigen.
-
Taints, Labels oder Annotations pro Worker Pool definieren
Mit Taints kannst du steuern, welche Pods auf einem Pool laufen dürfen. Ohne passende Toleration werden Pods nicht (oder nur eingeschränkt) dort geplant.
importantBeispiele für Taints:
-
dedicated=team-a:NoSchedule (nur Pods mit Toleration dürfen drauf)
-
gpu=true:NoSchedule (GPU-Pool reservieren)
-
maintenance=true:NoExecute (Pods werden entfernt)
Vorgehen
a) Pool auswählen -> Pfeil nach unten (aufklapen)
b) Beim Bereich Labels, Annotation oder Taints auf das plus klicken
c) Labels
-
Key (z.B ixcloud.ch/key)
-
Value (z.B wert1)
d) Annotations
-
Key (z.B ixportal.ch/key)
-
Value (z.B wert2)
e) Taint hinzufügen:
-
Key (z.B. gpu)
-
Value (z.B. true)
-
Effect: NoSchedule, PreferNoSchedule oder NoExecute
d) Save
-
Troubleshooting (kurz)
- Pods bleiben Pending: Taint ohne passende Toleration, zu wenig Ressourcen, Node Selector/Affinity passt nicht.
- Scale-down klappt nicht: PDB blockiert Eviction, Stateful/Persistent Pods lassen sich nicht verschieben, zu wenig freie Kapazität.
- Unerwartete Verteilung: Prüfe Taints/Tolerations, Affinity/Anti-Affinity, Topology Spread Constraints.