Migración a clusters nativos de VCN

Descubra cómo migrar un cluster para integrar su punto final de API de Kubernetes en su propia VCN, mediante Container Engine for Kubernetes (OKE).

En versiones anteriores (antes del 16 de marzo de 2021), Container Engine for Kubernetes aprovisionaba clusters con puntos finales de API de Kubernetes que no estaban integrados en su propia VCN. El punto final de API de Kubernetes era público y no podía restringir el acceso a él. Puede continuar creando dichos clusters mediante la CLI o la API, pero no la consola.

Después del 16 de marzo de 2021, Container Engine for Kubernetes puede aprovisionar clusters con sus puntos finales de API de Kubernetes en una subred de su propia VCN (estos clusters se denominan "clusters nativos de VCN"). Tiene más flexibilidad para configurar clusters nativos de VCN para cumplir sus propios requisitos de seguridad y red. Puede configurar el punto final de API de Kubernetes para que sea accesible de forma privada en su VCN (y una red local conectada), o para que sea accesible de forma pública desde Internet:

  • Para hacer que el punto final de API de Kubernetes sea de acceso privado, aloje el punto final de API de Kubernetes en una subred privada y no le asigne una dirección IP pública.
  • Para que el punto final de API de Kubernetes sea accesible públicamente desde Internet, aloje el punto final de API de Kubernetes en una subred pública y asígnele una dirección IP pública.

Puede controlar el acceso a la subred de punto final de API de Kubernetes mediante reglas de seguridad definidas para grupos de seguridad de red (recomendado) o listas de seguridad.

Para aprovechar el control de seguridad que ofrecen los clusters nativos de VCN, puede migrar un cluster existente para integrar su punto final de API de Kubernetes en su propia VCN.

La migración de cluster tiene las siguientes etapas:

  • Etapa 1: Migración en curso

    Para iniciar la migración, seleccione el cluster que desea migrar y, a continuación, especifique la VCN existente y la subred pública o privada para alojar el nuevo punto final de API de Kubernetes. La migración suele tardar unos 15 minutos.

    Durante este tiempo, se sigue accediendo a la API de Kubernetes a través del punto final público que no está integrado en su propia VCN. Sin embargo, las operaciones del ciclo de vida del cluster (como las actualizaciones del cluster, la creación y supresión del pool de nodos) no están disponibles.

  • Etapa 2: La migración ha finalizado y está pendiente la anulación del punto final de API de Kubernetes público que no está integrado en su propia VCN

    Una vez finalizada la migración, se podrá acceder al cluster a través del nuevo punto final de API de Kubernetes en su propia VCN, así como a través del punto final de API de Kubernetes público que no está integrado en su VCN. Durante este período de desmantelamiento, actualice la configuración de sus pipelines de kubectl, herramientas e integración y despliegue continuos para utilizar el nuevo punto final de API de Kubernetes. Por defecto, tiene 30 días para completar las actualizaciones, pero puede reducir el período de desmantelamiento a tan solo 5 días o aumentarlo a más de 30 días. Presente un ticket de soporte si desea reducir o aumentar el tiempo antes de que se anule el cierre del punto final de API de Kubernetes público que no está integrado en su propia VCN.

  • Etapa 3: se ha desactivado el punto final de API de Kubernetes público que no está integrado en su propia VCN

    Al final del período de desmantelamiento (30 días después de la migración o el momento en que lo solicite), el cluster deja de ser accesible a través del punto final de API de Kubernetes público que no está integrado en la VCN. Solo se puede acceder al cluster mediante el nuevo punto final de API de Kubernetes integrado en la VCN.

Migración de un cluster existente para que sea nativo de VCN

Para migrar un cluster existente para integrar su punto final de API de Kubernetes en su propia VCN:

  1. Abra el menú de navegación y haga clic en Servicios para desarrolladores. En Contenedores y artefactos, haga clic en Clusters de Kubernetes (OKE).
  2. Seleccione un compartimento en el que tenga permiso para trabajar.

    Las etiquetas de migración necesaria aparecen en la página Lista de clusters junto a los nombres de clusters con puntos finales de API de Kubernetes que no están integrados en la VCN.

  3. En la página Lista de clusters, haga clic en el nombre del cluster que desea migrar.

    Al seleccionar un cluster que puede migrar, aparece el botón Migrar cluster en la parte superior de la página Detalles de cluster.

  4. Si desea que el punto final de API de Kubernetes del cluster sea accesible públicamente desde Internet y esté alojado en una nueva subred pública en la misma VCN que el cluster (creando y configurando nuevos recursos de red según sea necesario), realice una migración automática de la siguiente forma:
    1. En la parte superior de la página Detalles de cluster, haga clic en Migrar cluster para integrar el punto final de API de Kubernetes del cluster en su propia VCN.
    2. En el cuadro de diálogo Migrar a cluster nativo de VCN, seleccione Migración automática para crear una nueva subred regional en la VCN del cluster con un bloque CIDR 10.0.0.0/28, junto con listas de seguridad y tablas de rutas.
    3. Haga clic en Iniciar flujo de trabajo y revise el resumen de migración en el cuadro de diálogo Migración de cluster de punto final nativo de VCN.
    4. Haga clic en Migrar para crear nuevos recursos de red y migrar el cluster.

      Container Engine for Kubernetes inicia la migración del cluster, como se muestra en el cuadro de diálogo Migración de cluster.

    5. Haga clic en Cerrar para cerrar el recuadro de diálogo Migración de Cluster.
  5. Si desea que el punto final de API de Kubernetes del cluster sea de acceso privado en la VCN o de acceso público desde Internet y esté alojado en una subred pública o privada regional existente en la misma VCN que el cluster, realice una migración personalizada de la siguiente forma:
    1. Confirme que los siguientes recursos de red ya existen en la VCN y están configurados correctamente para alojar el punto final de API de Kubernetes (si no, créelos y configúrelos correctamente):

      Por ejemplo, configuraciones, consulte Configuración de recursos de red de ejemplo.

    2. En la parte superior de la página Detalles de cluster, haga clic en Migrar cluster para integrar el punto final de API de Kubernetes del cluster en su propia VCN.
    3. En el cuadro de diálogo Migrar a cluster nativo de VCN, seleccione Migración personalizada.
    4. Haga clic en Iniciar Flujo de Trabajo y especifique:
      • Subred de punto final de API de Kubernetes: subred regional para alojar el punto final de API de Kubernetes del cluster. La subred que especifique puede ser pública o privada. El punto final de API de Kubernetes siempre tiene asignada una dirección IP privada. Si especifica una subred pública, puede mostrar opcionalmente el punto final de API de Kubernetes a Internet mediante la asignación de una dirección IP pública al punto final (así como a la dirección IP privada). Para simplificar la gestión de acceso, Oracle recomienda que el punto final de API de Kubernetes se encuentre en una subred diferente a los nodos de trabajador y los equilibradores de carga. Para obtener más información, consulte Plano de control de cluster de Kubernetes y API de Kubernetes.
      • Utilizar grupos de seguridad de red para controlar el tráfico: opcionalmente, limite el acceso al punto final de API de Kubernetes del cluster mediante uno o varios grupos de seguridad de red (NSG) que especifique. Para obtener más información sobre las reglas de seguridad que se deben especificar para el NSG, consulte Reglas de seguridad para el punto final de API de Kubernetes.
      • Asignar una dirección IP pública al punto final de API: si ha seleccionado una subred pública para el punto final de API de Kubernetes, puede exponer opcionalmente el punto final a Internet mediante la asignación de una dirección IP pública al punto final (así como a la dirección IP privada). Si no asigna una dirección IP pública, actualice las reglas de ruta y las reglas de seguridad para permitir el acceso al punto final mediante un gateway de servicio y un gateway de NAT (consulte Configuración de subred de punto final de API de Kubernetes).
    5. Haga clic en Migrar para crear nuevos recursos de red y migrar el cluster.

      Container Engine for Kubernetes inicia la migración del cluster.

La migración suele tardar unos 15 minutos en completarse. Durante este tiempo, se sigue accediendo a la API de Kubernetes a través del punto final público que no está integrado en su propia VCN. Sin embargo, las operaciones del ciclo de vida del cluster (como las actualizaciones del cluster, la creación y supresión del pool de nodos) no están disponibles.

Una vez finalizada la migración, la página Detalles de cluster muestra el nombre de la subred de punto final de API de Kubernetes, la dirección IP del punto final privado de API de Kubernetes y (si ha asignado una dirección IP pública al punto final de API de Kubernetes) la dirección IP del punto final público de API de Kubernetes.

La página Detalles de cluster también indica que tiene 30 días para actualizar la configuración de kubectl, las herramientas y los pipelines de integración y despliegue continuos para acceder al nuevo punto final de API de Kubernetes (consulte Configuración del acceso a un cluster migrado). Durante este período de desmantelamiento, se puede acceder al cluster recién migrado mediante el nuevo punto final de API de Kubernetes en su VCN y mediante el punto final de API de Kubernetes público que no está integrado en su propia VCN.

Configuración del acceso a un cluster migrado

Después de migrar un cluster para integrar su punto final de API de Kubernetes en su propia VCN, debe actualizar la configuración de kubectl, las herramientas y los pipelines de integración y despliegue continuos para utilizar el nuevo punto final de API de Kubernetes. Como mínimo, deberá actualizar el archivo de configuración de Kubernetes del cluster (comúnmente conocido como archivo 'kubeconfig') para permitir el acceso al cluster migrado mediante kubectl, como se describe en este tema. También debe actualizar los archivos de manifiesto que incluyan referencias a la dirección IP del punto final de API de Kubernetes del cluster.

Siga las instrucciones de este tema para generar un nuevo archivo kubeconfig. En estas instrucciones, se asume que el archivo kubeconfig del cluster se guarda en la ubicación por defecto ($HOME/.kube) y con el nombre por defecto (config). Si no es así, adapte las instrucciones en consecuencia.

  1. En la ventana de terminal donde normalmente ejecuta los comandos de la CLI de Oracle Cloud Infrastructure, ejecute el siguiente comando para actualizar el archivo kubeconfig existente del cluster:

    oci ce cluster create-kubeconfig --cluster-id <cluster-ocid> --file <kubeconfig-file-location> --region <region-name> --token-version 2.0.0 --kube-endpoint PRIVATE_ENDPOINT|PUBLIC_ENDPOINT

    donde:

    • --cluster-id <cluster-ocid> es el OCID del cluster existente que desea que sea nativo de VCN.
    • --file <kubeconfig-file-location> es la ubicación del archivo kubeconfig del cluster.
    • --region <region-name> es la región en la que se encuentra el cluster.
    • --kube-endpoint PRIVATE_ENDPOINT|PUBLIC_ENDPOINT especifica si se debe agregar la dirección IP privada o la dirección IP pública del punto final de API de Kubernetes del cluster al archivo kubeconfig. Para obtener más información, consulte Plano de control de cluster de Kubernetes y API de Kubernetes.

    Por ejemplo:

    oci ce cluster create-kubeconfig --cluster-id ocid1.cluster.oc1.phx.aaaaaaaaae... --file $HOME/.kube/config --region us-phoenix-1 --token-version 2.0.0 --kube-endpoint PUBLIC_ENDPOINT

    Suponiendo que el archivo kubeconfig ya existe en la ubicación que especifique, los detalles del cluster se agregan como un nuevo contexto al archivo kubeconfig existente, incluido el nuevo punto final de API de Kubernetes del cluster en su propia VCN. El elemento current-context: del archivo kubeconfig se ha definido para que apunte al contexto recién agregado.

    Para obtener más información sobre la configuración del archivo kubeconfig, consulte Configuración del acceso al cluster.

  2. Verifique que kubectl se puede conectar al cluster mediante el punto final de API de Kubernetes en su propia VCN introduciendo el siguiente comando:

    kubectl get nodes

    Se muestra información sobre los nodos del cluster.

    Ahora puede utilizar kubectl para realizar operaciones en el cluster mediante el punto final de API de Kubernetes en su propia VCN.

Nota

Hasta que se anule el cierre del punto final de API original que no está integrado en la VCN, puede seguir generando el archivo kubeconfig original omitiendo la opción --kube-endpoint del comando oci ce cluster create-kubeconfig.

Preguntas frecuentes sobre la migración de clusters

Definición de clusters nativos VCN

Container Engine for Kubernetes crea clusters de Kubernetes completamente integrados en la red virtual en la nube (VCN) de Oracle Cloud Infrastructure. Los nodos de trabajador, los equilibradores de carga y el punto final de API de Kubernetes forman parte de su propia VCN, y puede configurarlos como públicos o privados. Estos clusters que están totalmente integrados en su propia VCN se conocen como " clusters nativos VCN".

¿Cómo puedo saber si un cluster ya es un cluster nativo de VCN?

Si no está seguro de si un cluster ya es un cluster nativo de VCN, consulte información sobre el cluster (por ejemplo, en la página Detalles de cluster de la consola). Si el cluster ya es un cluster nativo de VCN, los detalles del cluster incluyen información del punto final de API de Kubernetes. Si el cluster aún no es un cluster nativo de VCN, los detalles del cluster simplemente incluyen la dirección de Kubernetes.

¿Tengo que migrar todos mis clusters existentes?

No, solo tiene que migrar los clusters existentes que desea convertir en clusters nativos de VCN. Si no desea integrar el punto final de API de Kubernetes de un cluster en su propia VCN, simplemente no migre ese cluster.

¿La migración implica algún tiempo de inactividad?

Mientras se migra un cluster a un cluster nativo de VCN, se sigue accediendo a la API de Kubernetes del cluster a través del punto final público que no está integrado en su propia VCN. Sin embargo, las operaciones del ciclo de vida del cluster (como las actualizaciones del cluster, la creación y supresión del pool de nodos) no están disponibles.

¿Debo elegir la migración automática o la migración personalizada?

La migración automática crea una subred regional en la VCN del cluster con un bloque CIDR 10.0.0.0/28, junto con listas de seguridad y tablas de rutas. La subred es pública y el punto final de API tiene asignada una dirección IP pública. La migración automática solo soporta clusters con pools de nodos en el mismo compartimento que el cluster. Para los clusters con pools de nodos en diferentes compartimentos, realice una migración personalizada.

La migración personalizada permite seleccionar una subred regional pública o privada existente para alojar el punto final de API de Kubernetes del cluster. Si selecciona una subred regional pública, puede mostrar opcionalmente el punto final de API de Kubernetes a Internet asignando una dirección IP pública al punto final. Opcionalmente, puede seleccionar el uso de grupos de seguridad de red.

¿Cómo configuro una subred de mi VCN para alojar el punto final de API de Kubernetes?

Consulte Configuración de recursos de red para la creación y el despliegue de clusters para obtener más información sobre la configuración de la subred de punto final de API de Kubernetes, las listas de seguridad y la tabla de rutas.

Quiero probar la migración a un cluster nativo de VCN. ¿Cómo puedo crear un cluster con un punto final de API de Kubernetes que no esté integrado en mi VCN?

En la ventana de terminal en la que normalmente ejecuta comandos de la CLI de Oracle Cloud Infrastructure, ejecute el siguiente comando para crear un cluster de prueba con un punto final de API de Kubernetes que no esté integrado en la VCN:

oci ce cluster create --compartment-id <compartment-ocid> --kubernetes-version v<kubernetes-version-number> --name <cluster-name> --vcn-id <vcn-ocid>

donde:

  • --compartment-id <compartment-ocid> es el OCID del compartimento al que desea que pertenezca el cluster de prueba.
  • --kubernetes-version v<kubernetes-version-number> es una versión soportada de Kubernetes (consulte Versiones de Kubernetes actualmente soportadas). Por ejemplo, --kubernetes-version v1.19.7
  • --name <cluster-name> es el nombre que elija para el cluster de prueba. Por ejemplo, --name test-vcn-native-migration
  • --vcn-id <vcn-ocid> es el OCID de la VCN en la que se va a crear el cluster de prueba.

Una vez creado un cluster de prueba con un punto final de API de Kubernetes que no está integrado en la VCN, ahora puede migrar el cluster de prueba para convertirlo en un cluster nativo de VCN. Consulte Migración de un cluster existente para que sea nativo de VCN.

Recuerde suprimir el cluster de prueba cuando ya no lo necesite.

¿Cómo puedo aumentar o reducir el tiempo hasta la retirada del punto final de API de Kubernetes público que no está integrado en mi propia VCN?

El período de desmantelamiento es el período durante el cual se puede acceder a un cluster recién migrado a través del nuevo punto final de API de Kubernetes en su propia VCN y a través del punto final de API público que no estaba integrado en su VCN. El período de desmantelamiento garantiza que no haya tiempo de inactividad mientras actualiza la configuración de kubectl, las herramientas y los pipelines de integración y despliegue continuos para utilizar el nuevo punto final de API de Kubernetes.

El período de desmantelamiento comienza tan pronto como Container Engine for Kubernetes haya migrado el cluster para integrar su punto final de API de Kubernetes en su propia VCN. Por defecto, tiene 30 días para completar las actualizaciones, pero puede reducir el período de desmantelamiento a tan solo 5 días o aumentarlo a más de 30 días. Presente un ticket de soporte si desea reducir o aumentar el período de desmantelamiento y especifique:

  • Resumen: Request to modify Reclamation Extension in <region-name>
  • Región: <region-name>
  • Componente: Control Plane
  • Detalles: incluya lo siguiente:
    • Tenancy: <tenancy-name>
    • Tenancy Id: <tenancy-ocid>
    • Cluster: <cluster-name>
    • Cluster Id: <cluster-ocid>
    • Requested expiration date/time: <date-and-time>