Crea y administra clústeres de Google Kubernetes Engine

Google Kubernetes Engine es un administrador de clústeres y un sistema de organización potente para ejecutar contenedores de Docker. Con GKE se programan tus contenedores en el clúster y los administra de forma automática según los requisitos que definas (por ejemplo, de CPU y memoria). Se basa en el sistema de código abierto de Kubernetes y te da la flexibilidad de aprovechar una infraestructura de nube local, híbrida o pública.

Lee la referencia de Herramientas para PowerShell a fin de obtener más información sobre los cmdlets de GKE. Para obtener más información sobre GKE en general, consulta la descripción general de GKE.

Crea y actualiza clústeres de GKE

Puedes crear un clúster si primero creas un objeto NodeConfig con un cmdlet New-GkeNodeConfig. Después de esto, puedes pasar el objeto NodeConfig al cmdlet Add-GkeCluster. Luego, se creará un clúster cuyos grupos de nodos tendrán sus configuraciones configuradas a partir del 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"

En lugar de pasar el objeto NodeConfig, también puedes usar los parámetros proporcionados en el cmdlet Add-GkeCluster para crear un clúster (el cmdlet creará un objeto NodeConfig de forma interna).

# 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

Puedes actualizar un clúster con el widget Set-GkeCluster. Solo se puede actualizar una propiedad del clúster a la 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"

Puedes enumerar los clústeres disponibles con el 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"

Crea y guarda grupos de nodos

Un grupo de nodos es un subconjunto de máquinas con la misma configuración dentro de un clúster. Si bien todos los nodos de un clúster de contenedores son idénticos, los grupos de nodos te permiten crear grupos de máquinas que tengan configuraciones diferentes dentro de tu clúster. Por ejemplo, en tu clúster puedes crear un grupo de nodos que tengan SSD locales o tamaños de instancia más grandes. Debido a esto, los grupos de nodos son útiles para personalizar el perfil de instancia en tu clúster.

Para agregar un grupo de nodos al clúster, primero puedes crear un objeto NodePool con el cmdlet New-GkeNodePool. Luego, puedes llamar al cmdlet Add-GkeNodePool para agregar el objeto NodePool a un clúster.

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

Puedes enumerar todos los grupos de nodos en un clúster con el cmdlet Get-GkeNodePool.

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

Puedes quitar un grupo de nodos de un clúster con el 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"