Google Kubernetes Engine-Cluster erstellen und verwalten

Google Kubernetes Engine ist ein leistungsstarkes Clusterverwaltungs- und Orchestrierungssystem zur Ausführung von Docker-Containern. GKE organisiert Ihre Container im Cluster und verwaltet sie automatisch gemäß Ihren Anforderungen, zum Beispiel hinsichtlich CPU und Arbeitsspeicher. Es ist Teil des Open-Source-Kubernetes-Systems, sodass Sie die Vorteile einer lokalen, gemischten oder öffentlichen Cloudinfrastruktur flexibel nutzen können.

Weitere Informationen zu GKE-Cmdlets finden Sie in der Referenz zu Tools for PowerShell. Wenn Sie mehr über GKE im Allgemeinen wissen möchten, lesen Sie die Übersicht zu GKE.

GKE-Cluster erstellen und aktualisieren

Sie können einen Cluster erstellen, indem Sie zuerst ein NodeConfig-Objekt mit dem New-GkeNodeConfig-Cmdlet erstellen. Danach können Sie das NodeConfig-Objekt an das Add-GkeCluster-Cmdlet übergeben. Dieses erstellt dann einen Cluster, dessen Knotenpools über das NodeConfig-Objekt konfiguriert werden.

# Creates a GKE Node Config with image type CONTAINER_VM
# and 20 GB disk size for each node.
$nodeConfig = New-GkeNodeConfig -DiskSizeGb 20 `
                                -ImageType CONTAINER_VM

# Creates a cluster named "my-cluster" in the default zone of the
# default project using config $nodeConfig and network "my-network".
Add-GkeCluster -NodeConfig $nodeConfig `
               -ClusterName "my-cluster" `
               -Network "my-network"

Anstatt das Objekt NodeConfig zu übergeben, können Sie auch die im Cmdlet Add-GkeCluster angegebenen Parameter verwenden, um einen Cluster zu erstellen. Ein NodeConfig-Objekt wird intern vom Cmdlet erstellt.

# Creates a cluster named "my-cluster" with description "my new cluster"
# in the default zone of the default project using machine type
# "n1-standard-4" for each Compute Engine in the cluster.
# The cluster will use the subnetwork "my-subnetwork".
# The cluster's nodes will have autoupgrade enabled.
# The cluster will also autoscale its node pool to a maximum of 2 nodes.
Add-GkeCluster -MachineType "n1-standard-4" `
               -ClusterName "my-cluster" `
               -Description "My new cluster" `
               -Subnetwork "my-subnetwork" `
               -EnableAutoUpgrade `
               -MaximumNodesToScaleTo 2

Sie können einen Cluster mit dem Set-GkeCluster-Cmdlet aktualisieren. Es kann immer nur jeweils eine Eigenschaft des Clusters aktualisiert werden.

# Sets additional zones of cluster "my-cluster" in zone "asia-east1-a"
# to zones "asia-east1-b" and "asia-east1-c". This means the clusters will
# have nodes created in these zones. The primary zone
# ("asia-east1-a" in this case) will be added to the
# AdditionalZone array by the cmdlet.
Set-GkeCluster -ClusterName "my-cluster" `
               -Zone "asia-east1-a" `
               -AdditionalZone "asia-east1-b", "asia-east1-c"

Mit dem Get-GkeCluster-Cmdlet können Sie verfügbare Cluster auflisten.

# Lists all container clusters in the default project.
Get-GkeCluster

# List all container clusters in zone "us-central1-a"
# of the default project.
Get-GkeCluster -Zone "us-central1-a"

Knotenpools erstellen und verwalten

Ein Knotenpool ist eine Gruppe von Maschinen innerhalb eines Clusters, die alle dieselbe Konfiguration aufweisen. Obwohl alle Knoten in einem Containercluster identisch sind, können Sie mit Knotenpools innerhalb des Clusters Maschinenpools mit unterschiedlichen Konfigurationen erstellen. Beispielsweise besteht die Möglichkeit, einen Knotenpool im Cluster mit lokalen SSDs oder größeren Instanzen zu erstellen. Aus diesem Grund eignen sich Knotenpools für eine benutzerdefinierte Anpassung des Instanzenprofils im Cluster.

Zum Hinzufügen eines Knotenpools zu Ihrem Cluster können Sie zuerst ein NodePool-Objekt mit dem New-GkeNodePool-Cmdlet erstellen. Sie können dann das Add-GkeNodePool-Cmdlet aufrufen, um das NodePool-Objekt zu einem Cluster hinzuzufügen.

# Creates a node pool named "my-nodepool" with image type
# CONTAINER_VM for each node.
$nodePool = New-GkeNodePool -NodePoolName "my-nodepool" `
                            -ImageType CONTAINER_VM

# Adds the pool to cluster "my-cluster".
Add-GkeNodePool -NodePool $nodePool -Cluster "my-cluster"

Mit dem Get-GkeNodePool-Cmdlet können Sie alle Knotenpools in einem Cluster auflisten.

# Lists all node pools in cluster "my-cluster" in the default project.
Get-GkeNodePool -ClusterName "my-cluster"

Mit dem Remove-GkeCluster-Cmdlet können Sie einen Knotenpool aus einem Cluster entfernen.

# Removes the node pool "my-nodepool" in cluster "my-cluster"
# in the zone "us-west1-b" of the default project.
Remove-GkeCluster -ClusterName "my-cluster" `
                  -Zone "us-west1-b" `
                  -NodePoolName "my-nodepool"