Creazione e gestione di cluster Google Kubernetes Engine

Google Kubernetes Engine è un potente sistema di gestione e orchestrazione dei cluster per l'esecuzione dei container Docker. GKE pianifica i tuoi container nel cluster e li gestisce automaticamente in base ai requisiti che definisci (ad esempio CPU e memoria). È basato sul sistema Kubernetes open source, che ti offre la flessibilità di sfruttare l'infrastruttura on-premise, ibrida o del cloud pubblico.

Leggi la documentazione di riferimento di Tools for PowerShell per scoprire di più sui cmdlet GKE. Per scoprire di più su GKE in generale, consulta la Panoramica di GKE.

Creazione e aggiornamento di cluster GKE

Per creare un cluster, devi prima creare un oggetto NodeConfig con il cmdlet New-GkeNodeConfig. Dopodiché, puoi passare l'oggetto NodeConfig al cmdlet Add-GkeCluster. Verrà quindi creato un cluster le cui configurazioni dei pool di nodi verranno impostate dall'oggetto NodeConfig.

# 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"

Anziché passare l'oggetto NodeConfig, puoi anche utilizzare i parametri forniti nel cmdlet Add-GkeCluster per creare un cluster (un oggetto NodeConfig verrà creato internamente dal cmdlet).

# 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

Puoi aggiornare un cluster con il cmdlet Set-GkeCluster. È possibile aggiornare una sola proprietà del cluster alla volta.

# 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"

Puoi elencare i cluster disponibili con il cmdlet Get-GkeCluster.

# 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"

Creazione e gestione di pool di nodi

Un pool di nodi è un sottoinsieme di macchine all'interno di un cluster che condividono la stessa configurazione. Sebbene tutti i nodi di un cluster di container siano identici, i pool di nodi ti consentono di creare pool di macchine all'interno del cluster con configurazioni diverse. Ad esempio, puoi creare un pool di nodi nel tuo cluster con SSD locali o dimensioni delle istanze più grandi. Per questo motivo, i pool di nodi sono utili per personalizzare il profilo dell'istanza nel cluster.

Per aggiungere un pool di nodi al cluster, puoi prima creare un oggetto NodePool con il cmdlet New-GkeNodePool. Puoi quindi chiamare il cmdlet Add-GkeNodePool per aggiungere l'oggetto NodePool a un cluster.

# 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"

Puoi elencare tutti i node pool in un cluster con il cmdlet Get-GkeNodePool.

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

Puoi rimuovere un pool di nodi da un cluster con il cmdlet Remove-GkeCluster.

# 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"