Profilanwendbarkeit: Stufe 1
Verwenden Sie Container-Optimized OS (
cos_containerd) als ein verwaltetes, optimiertes und gehärtetes Basisbetriebssystem, das die Angriffsfläche
des Hosts begrenzt.COS ist ein Betriebssystem-Image für Compute Engine-VMs, das für das Ausführen von
Containern optimiert ist. Mit COS können die Container auf der Google Cloud Platform
schnell, effizient und sicher bereitgestellt werden.
Die Verwendung von COS als Node-Image bietet die folgenden Vorteile:
- Container sofort einsatzbereit ausführen: COS-Instanzen sind mit der Container-Laufzeitumgebung und cloud-init vorinstalliert. Mit einer COS-Instanz kann der Container gleichzeitig mit der Erstellung der VM gestartet werden, ohne dass eine Einrichtung auf dem Host erforderlich ist.
- Kleinere Angriffsfläche: COS hat einen kleineren Fußabdruck, wodurch die potenzielle Angriffsfläche der Instanz reduziert wird.
- Standardmäßig gesperrt: COS-Instanzen enthalten standardmäßig eine gesperrte Firewall und andere Sicherheitseinstellungen.
HinweisContainer-optimiertes Betriebssystem mit containerd (cos_containerd) (Standard) ist
die Standardoption für ein Clusterknoten-Image.
|
Auswirkung
Wenn ein vorhandener Cluster-Node-Pool geändert wird, um COS auszuführen, ist der
verwendete Upgrade-Vorgang langwierig und wird andere Vorgänge im Cluster (einschließlich
Löschen) sperren, bis er abgeschlossen ist. COS-Knoten bieten auch eine Option mit
containerd als Haupt-Container-Laufzeit, die direkt in Kubernetes integriert ist,
anstelle von Docker.
Daher kann Docker auf diesen Knoten keine von Kubernetes verwalteten Container oder
Images anzeigen oder darauf zugreifen. Anwendungen sollten nicht direkt mit Docker
interagieren. Für allgemeine Fehlerbehebung oder Debugging verwenden Sie stattdessen
crictl.
Prüfung
Verwendung der Google Cloud Console:
- Gehen Sie zu Kubernetes Engine, indem Sie die Google Cloud Console Kubernetes Engine-Seite besuchen.
- Wählen Sie aus der Liste der Cluster den zu testenden Cluster aus.
- Stellen Sie im Abschnitt „Knotenpools“ sicher, dass für jeden der Knotenpools „Container-Optimized
OS (
cos_containerd)“ in der Spalte „Image-Typ“ aufgeführt ist.
Verwendung der Befehlszeile:
Um den Node-Bildtyp für den Node-Pool eines bestehenden Clusters zu überprüfen, definieren
Sie zunächst 4 Variablen für Node-Pool, Clustername, Standort und Projekt und führen
Sie dann den folgenden Befehl aus:
gcloud container node-pools describe $NODE_POOL --cluster $CLUSTER_NAME --location $LOCATION --project $PROJECT_ID --format json | jq '.config.imageType'
Die Ausgabe des obigen Befehls sollte die folgende Ausgabe zurückgeben, wenn
COS_CONTAINERD für Node-Images verwendet wird:"config": {
..
"imageType": "COS_CONTAINERD",
..
}
Wiederherstellung
Verwendung der Google Cloud Console:
- Gehen Sie zu Kubernetes Engine, indem Sie die Google Cloud Console Kubernetes Engine-Seite besuchen.
- Wählen Sie den Kubernetes-Cluster aus, der kein COS verwendet.
- Unter der Überschrift Knotenpools wählen Sie den Knotenpool aus, der geändert werden muss.
- Klicken Sie auf BEARBEITEN.
- Unter der Überschrift Bildtyp auf ÄNDERN klicken.
- Wählen Sie im Popup-Menü
Container-optimiertes Betriebssystem mit containerd (aus und klicken Sie auf ÄNDERN.cos_containerd) (Standard) - Wiederholen Sie dies für alle nicht konformen Knotenpools.
Verwendung der Befehlszeile:
Um das Node-Image für den Node-Pool eines bestehenden Clusters auf cos festzulegen:
gcloud container clusters upgrade <cluster_name> --image-type cos_containerd --location <location> --node-pool <node_pool_name>
