Esta página se ha traducido con Cloud Translation API.
Switch to English

Implementa apps de Kubernetes en clústeres que no son de Google Kubernetes Engine (GKE)

Si quieres implementar una app de Kubernetes en configuraciones de clústeres que no son de Google Kubernetes Engine (GKE), como un clúster de Anthos que ejecute clústeres de Anthos en VMware. o un clúster que ejecute Istio, debes completar las tareas de esta sección, según corresponda.

Según la app que implementes, es posible que existan pasos adicionales para ejecutar la app en tu clúster. Consulta la documentación del proveedor de la aplicación para obtener información sobre cómo configurar la aplicación.

Ir a las apps de Anthos en Cloud Marketplace

Implementa clústeres que ejecutan Istio

En los clústeres que ejecutan Istio, las conexiones externas a servicios de terceros (como los repositorios de paquetes del SO) se bloquean de forma predeterminada. Debes configurar el tráfico de salida de Istio para habilitar el acceso a los servicios externos.

Implementa en clústeres de Anthos en VMware

Solo puedes implementar clústeres de Anthos en clústeres de VMware en aplicaciones de Cloud Marketplace que admitan esta configuración. Para verificar si una app admite clústeres de Anthos en VMware, abre la ficha de Cloud Marketplace de la app y busca la siguiente declaración en el Recientes: “La aplicación admite la implementación de GKE On Prem”.

Después de verificar que la aplicación admita clústeres de Anthos en VMware, completa estas tareas antes de implementar la aplicación:

Una vez que hayas completado estas tareas, abre la ficha de Cloud Marketplace de la app y sigue los pasos para implementar la aplicación.

Configura el acceso de red a Container Registry

Para descargar las imágenes del contenedor de la app, asegúrate de que el clúster tenga acceso a la red a Container Registry. El host del clúster debe poder hacer ping en marketplace.gcr.io. Para habilitar el acceso, es posible que debas realizar una o más de las siguientes acciones:

Configura la autenticación de Docker para acceder a Container Registry

Para permitir que los clústeres de Anthos en el clúster de VMware tengan acceso a las imágenes de la app en Container Registry, debes crear una clave de cuenta de servicio de Google Cloud y anotar el espacio de nombres de la aplicación con la clave. Luego, la clave se le asigna como un imagePullSecret a la cuenta de servicio predeterminada de Kubernetes (KSA) del espacio de nombres cuando implementas la app.

La primera vez que implementas una app en un clúster de Anthos en VMware, también debes crear un espacio de nombres llamado application-system para los componentes de Cloud Marketplace y aplicar un imagePullSecret a la cuenta de servicio predeterminada para espacio de nombres.

Sigue estos pasos para configurar la autenticación en Container Registry:

  1. Crea una nueva cuenta de servicio de Google Cloud. No es necesario otorgar ninguna función a la cuenta de servicio.

    Para obtener información sobre cómo crear una cuenta de servicio, consulta Crea y administra cuentas de servicio.

  2. Crea una clave para la cuenta de servicio y descárgala como un archivo JSON. Si deseas obtener los pasos para crear y descargar la clave, consulta Crea y administra claves de cuentas de servicio.

  3. Si corresponde, sube la clave JSON a la estación de trabajo que usas para conectarte a tus clústeres de Anthos en el clúster de VMware.

  4. Si implementas una app desde Cloud Marketplace por primera vez, sigue estos pasos para configurar tu espacio de nombres application-system con un secreto a fin de acceder a Container Registry. Si ya configuraste el espacio de nombres, omite este paso.

    1. Crea un espacio de nombres application-system en tu clúster.

    2. Crea el secreto que contiene un imagePullSecret en application-system mediante el siguiente comando:

      JSON_KEY_FILENAME=path_to/service_account_key.json
      IMAGEPULLSECRET_NAME=gcr-json-key
      kubectl create secret docker-registry $IMAGEPULLSECRET_NAME \
        --namespace="application-system" \
        --docker-server=gcr.io \
        --docker-username=_json_key \
        --docker-password="$(cat $JSON_KEY_FILENAME)"
      
    3. Aplica este imagePullSecret a la ServiceAccount predeterminada en el espacio de nombres application-system mediante el siguiente comando:

      kubectl patch sa default -n application-system -p '"imagePullSecrets": [{"name": "gcr-json-key" }]'
      
  5. Para cada espacio de nombres en el que quieres implementar una aplicación, debes crear un secreto de Kubernetes nuevo y anotar el espacio de nombres con el secreto. No puedes volver a usar un objeto secreto de otro espacio de nombres.

    1. Crea un secreto de Kubernetes para acceder a Container Registry mediante la clave de la cuenta de servicio de Google Cloud:

      JSON_KEY_FILENAME=path_to/service_account_key.json
      IMAGEPULLSECRET_NAME=gcr-json-key
      kubectl create secret docker-registry $IMAGEPULLSECRET_NAME \
        --namespace=$NAMESPACE_NAME \
        --docker-server=gcr.io \
        --docker-username=_json_key \
        --docker-password="$(cat ~/$JSON_KEY_FILENAME)"
      

      En el comando anterior, $NAMESPACE_NAME es el espacio de nombres que quieres usar para la app.

    2. Anota el espacio de nombres de la app con el siguiente comando:

      kubectl annotate namespace $NAMESPACE_NAME marketplace.cloud.google.com/imagePullSecret=$IMAGEPULLSECRET_NAME
      

      Usa este espacio de nombres cuando implementes la app desde Cloud Marketplace, que se describe en Implementa una app de Kubernetes.