Ansichten:
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.
Hinweis
Hinweis
Container-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:
  1. Gehen Sie zu Kubernetes Engine, indem Sie die Google Cloud Console Kubernetes Engine-Seite besuchen.
  2. Wählen Sie aus der Liste der Cluster den zu testenden Cluster aus.
  3. 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:
  1. Gehen Sie zu Kubernetes Engine, indem Sie die Google Cloud Console Kubernetes Engine-Seite besuchen.
  2. Wählen Sie den Kubernetes-Cluster aus, der kein COS verwendet.
  3. Unter der Überschrift Knotenpools wählen Sie den Knotenpool aus, der geändert werden muss.
  4. Klicken Sie auf BEARBEITEN.
  5. Unter der Überschrift Bildtyp auf ÄNDERN klicken.
  6. Wählen Sie im Popup-Menü Container-optimiertes Betriebssystem mit containerd (cos_containerd) (Standard) aus und klicken Sie auf ÄNDERN.
  7. 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>