Para actualizar el entorno de GKE en AWS, primero debes actualizar el servicio de administración y, luego, actualizar los clústeres de usuario.
Servicio de administración
En las siguientes secciones, actualizarás tu servicio de administración.
Antes de comenzar
Para conectarte a tus recursos de GKE on AWS, realiza las siguientes instrucciones. Selecciona si tienes una VPC de AWS existente (o conexión directa a tu VPC) o si creaste una VPC dedicada cuando creaste tu servicio de administración.
VPC existente
Si tienes una conexión directa o de VPN con una VPC existente, omite la línea env HTTP_PROXY=http://localhost:8118
de los comandos en este tema.
VPC dedicada
Cuando creas un servicio de administración en una VPC dedicada, GKE on AWS incluye un host de bastión en una subred pública.
Para conectarte al servicio de administración, realiza los siguientes pasos:
Cambia al directorio con la configuración de GKE en AWS. Creaste este directorio cuando instalaste el servicio de administración.
cd anthos-aws
Para abrir el túnel, ejecuta la secuencia de comandos
bastion-tunnel.sh
. El túnel reenvía alocalhost:8118
.Para abrir un túnel al host de bastión, ejecuta el siguiente comando:
./bastion-tunnel.sh -N
Los mensajes del túnel SSH aparecen en esta ventana. Cuando estés listo para cerrar la conexión, detén el proceso mediante Control+C o cierra la ventana.
Abre una terminal nueva y cambia a tu directorio de
anthos-aws
.cd anthos-aws
Verifica que puedas conectarte al clúster con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
El resultado incluye la URL para el servidor de API del servicio de administración.
Actualiza tu servicio de administración
Para actualizar el servicio de administración, descarga una versión nueva de anthos-gke
, edita anthos-gke.yaml
y, luego, aplica los cambios.
Descarga una versión nueva de anthos-gke
La versión más reciente de la herramienta de anthos-gke
es aws-1.14.1-gke.0
. Para descargar una versión nueva de anthos-gke
, sigue estos pasos:
La herramienta de línea de comandos de anthos-gke
solo es compatible con Linux y macOS.
Descarga el objeto binario desde Cloud Storage.
Linux
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
macOS
gsutil cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
Actualiza los permisos de
anthos-gke
y cópialo en/usr/local/bin
.chmod 755 anthos-gke sudo mv anthos-gke /usr/local/bin
Confirma que la versión sea
aws-1.14.1-gke.0
.anthos-gke version
Actualiza tu servicio de administración
Para actualizar tu clúster, realiza los siguientes pasos:
- Cambia al directorio con la configuración de GKE en AWS.
Creaste este directorio cuando
instalaste el servicio de administración.
cd anthos-aws
Abre
anthos-gke.yaml
en un editor de texto. Cambia el valor despec.version
a aws-1.14.1-gke.0.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSManagementService metadata: name: management spec: version: aws-1.14.1-gke.0 region: aws-region ...
Ejecuta
anthos-gke aws management init
para validar el objetoAWSManagementService
y actualiza el archivoanthos-gke.status.yaml
.anthos-gke aws management init
Ejecuta
anthos-gke aws management apply
para actualizar el servicio de administración en AWS.anthos-gke aws management apply
Mediante el comando
anthos-gke
, se comienza a actualizar el servicio de administración. La actualización puede llevar hasta diez minutos en completarse.
Clústeres de usuarios
En las siguientes secciones, actualizarás los clústeres de usuario.
Antes de comenzar
Antes de que puedas completar estos pasos, debes tener un servicio de administración y al menos un clúster de usuario.
Versiones de Kubernetes compatibles
GKE en AWS aws-1.5.1-gke.1 admite las siguientes versiones de Kubernetes:
- 1.23.15-gke.2000
- 1.24.9-gke.2100
- 1.25.5-gke.2100
Para obtener información sobre las versiones anteriores compatibles, consulta las notas de la versión.
Actualizaciones de componentes
En esta sección, se describe cómo actualizar los AWSClusters y los AWSNodePools.
AWSCluster
Puedes actualizar un AWSCluster a una nueva versión de GKE on AWS sin actualizar los AWSNodePools.
AWSNodePools
No puedes actualizar un AWSNodePool a una versión más nueva que la del AWSCluster. Para actualizar los AWSNodePools, primero debes actualizar el AWSCluster.
Los AWSNodePools solo pueden tener una o dos versiones anteriores a la versión de los AWSCluster.
Actualiza un AWSCluster y un AWSNodePool existente
Para actualizar el clúster, actualiza el campo version
de los objetos AWSCluster
y AWSNodePool
en el servicio de administración.
AWSCluster
Para actualizar un AWSCluster, realiza los siguientes pasos:
Desde tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu servicio administrado.cd anthos-aws anthos-gke aws management get-credentials
Abre el archivo YAML que creó el AWSCluster en un editor de texto. Si no tienes el archivo YAML inicial, puedes usar
kubectl edit
.Edita YAML
Si seguiste las instrucciones en Crea un clúster de usuario, el archivo YAML se llama
cluster-0.yaml
. Abre este archivo en un editor de texto.Edita mediante kubectl
Para usar
kubectl edit
a fin de editar el AWSCluster, ejecuta el siguiente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-name
Reemplaza cluster-name por el AWSCluster. Por ejemplo, para editar el clúster predeterminado,
cluster-0
, ejecuta el siguiente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl edit awscluster cluster-0
Actualiza el campo
spec.controlPlane.version
a una versión nueva de GKE on AWS. La versión más reciente es 1.25.5-gke.2100.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster metadata: name: cluster-0 spec: region: us-east-1 controlPlane: version: gke_version instanceType: t3.medium ...
Reemplaza gke-version por la versión de Kubernetes que deseas. La versión de Kubernetes compatible más reciente es 1.25.5-gke.2100.
Guarde el archivo. Si usas
kubectl edit
,kubectl
aplica los cambios de forma automática. Si editas el archivo YAML, aplícalo al servicio de administración mediante el siguiente comando:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
Luego, el servicio de administración actualiza el AWSCluster.
AWSNodePool
Para actualizar un AWSNodePool, sigue estos pasos:
Desde tu directorio de
anthos-aws
, usaanthos-gke
para cambiar el contexto a tu servicio administrado.cd anthos-aws anthos-gke aws management get-credentials
Abre el archivo YAML que creó el AWSNodePool en un editor de texto. Si seguiste las instrucciones en Crea un clúster de usuario, este archivo se llama
cluster-0.yaml
.Actualiza el valor de
spec.version
en tus recursos AWSNodePool.apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool metadata: name: cluster-0-pool-0 spec: clusterName: cluster-0 region: us-east-1 version: gke-version ...
Reemplaza gke-version por la versión de Kubernetes que deseas. La versión de Kubernetes compatible más reciente es 1.25.5-gke.2100.
Aplica la configuración nueva en tu servicio de administración con
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
Luego, el servicio de administración actualiza tu AWSNodePool de a un nodo a la vez. Antes de cerrar un nodo, los Pods que se ejecutan en ese nodo reciben un SIGTERM. Si un Pod no se cierra después de un período de gracia, recibe un SIGKILL.
Ver estado
Para obtener el estado de una actualización, ejecuta kubectl get AWSClusters
en el servicio de administración.
env HTTPS_PROXY=http://localhost:8118 \
kubectl get AWSClusters
El resultado incluye el nombre, el estado, la antigüedad, la versión y el extremo de cada clúster.
Por ejemplo, el siguiente resultado incluye un AWSCluster
llamado cluster-0
.
NAME STATE AGE VERSION ENDPOINT
cluster-0 Upgrading 2m41s 1.25.5-gke.2100 gke-xyz.elb.us-east-1.amazonaws.com
La actualización de tu clúster de usuario se completa cuando el ESTADO de tus clústeres es Aprovisionado.