Como criar e gerenciar clusters do Google Kubernetes Engine

O Google Kubernetes Engine é um poderoso gerenciador de clusters e sistema de orquestração para executar contêineres do Docker. O GKE programa seus contêineres no cluster e os administra automaticamente com base em requisitos definidos por você (como CPU e memória). Ele tem como base o sistema Kubernetes de código aberto que oferece a flexibilidade para aproveitar uma infraestrutura local, híbrida ou de nuvem pública.

Leia a referência de Ferramentas para o PowerShell para saber mais sobre os cmdlets do GKE. Para saber mais sobre esse ambiente em geral, leia a visão geral do GKE.

Como criar e atualizar clusters do GKE

Para criar um cluster, primeiro crie um objeto NodeConfig com o cmdlet New-GkeNodeConfig. Depois disso, passe o objeto NodeConfig para o cmdlet Add-GkeCluster. Ele criará um cluster cujos pools de nós terão as configurações definidas a partir do objeto 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"

Em vez de transmitir o objeto NodeConfig, você também pode usar os parâmetros fornecidos no cmdlet Add-GkeCluster para criar um cluster (um objeto NodeConfig será criado internamente pelo 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

Você pode atualizar um cluster com o cmdlet Set-GkeCluster. Apenas uma propriedade do cluster pode ser atualizada por vez.

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

Você pode listar clusters disponíveis com o 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"

Como criar e manter pools de nós

O pool de nós é um subconjunto de máquinas em um cluster em que todas têm a mesma configuração. Como todos os nós de um cluster de contêiner são idênticos, os pools de nós possibilitam a criação de pools de máquinas nesse cluster com diferentes configurações. Por exemplo, você pode criar um pool de nós no cluster com SSDs locais ou tamanhos de instâncias maiores. Por isso, os pools de nós são úteis para personalizar o perfil da instância em seu cluster.

Para adicionar um pool de nós ao cluster, primeiro crie um objeto NodePool com o cmdlet New-GkeNodePool. Em seguida, você pode chamar o cmdlet Add-GkeNodePool para adicionar o objeto NodePool a um 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"

É possível listar todos os pools de nós em um cluster com o cmdlet Get-GkeNodePool.

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

É possível remover um pool de nós de um cluster com o 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"