Gestión de la carga de trabajo en varios clusters de OKE mediante Karmada

Introducción

Karmada (abreviatura de Kubernetes Armada) es una plataforma de gestión que te permite ejecutar aplicaciones nativas en la nube sin problemas en múltiples clústeres de Kubernetes y entornos en la nube sin necesidad de realizar cambios en tus aplicaciones. Al aprovechar las API nativas de Kubernetes y las funciones avanzadas de programación, Karmada ofrece una experiencia de Kubernetes abierta y verdaderamente multinube.

Diseñado para casos de uso de nube híbrida y multinube, Karmada proporciona automatización llave en mano para gestionar aplicaciones en todos los clusters. Sus capacidades principales incluyen la gestión centralizada, la alta disponibilidad, la recuperación automatizada de fallos y la programación inteligente del tráfico.

Objetivos

Requisitos

Tarea 1: Creación de los recursos necesarios para la demostración

Nota: Los siguientes pasos muestran cómo desplegar 3 clusters de OKE y 1 máquina virtual que se utilizarán durante la demostración.

  1. Descargue el zip de versión que contiene los archivos terraform de github: karmada-on-oke.

  2. Utilice Oracle Resource Manager para crear y aplicar la pila.

    1. En el menú de hamburguesa, vaya a Oracle Resource Manager.
    2. Seleccione Stacks.
    3. Seleccione Create stack.
    4. Seleccione My configuration.
    5. En la sección My configuration, asegúrese de que Zip file está seleccionado. Seleccione el archivo zip que ha descargado anteriormente. Seleccione Upload.
    6. Asigne a la pila un nombre significativo.
    7. Seleccione Next.
    8. Seleccione la clave pública ssh que se utilizará para conectarse a la máquina virtual.
    9. Seleccione el compartimento en el que se crearán los recursos.
    10. Seleccione Next.
    11. En la siguiente pantalla, seleccione Run apply.
    12. Seleccione Create.
  3. Obtenga la IP pública de la máquina virtual.

    Tras una ejecución correcta del trabajo del paso anterior, la última línea del log debe incluir la IP pública de la máquina virtual. Regístrelo para su uso posterior.

Tarea 2: Instalación de Karmada en el cluster del host

  1. Con la IP obtenida anteriormente, use ssh para conectarse a la VM:
    ssh -i <private-ssh-key> opc@<public-IP>
    
  2. Cambie al usuario root:

    sudo su -
    
  3. Instale los componentes de karmada en el cluster host:

    karmadactl init
    

Tarea 3: Unión de miembros del cluster de OKE

  1. Unirse al cluster member1:

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member1 --cluster-kubeconfig=$HOME/.kube/config-k1
    
  2. Unirse al cluster member2:

       karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  join member2 --cluster-kubeconfig=$HOME/.kube/config-k2
    
  3. Mostrar clusters de miembros:

    karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config  get clusters
    

Tarea 4: Despliegue de la carga de trabajo en Karmada

  1. Defina KUBECONFIG para que apunte al servidor karmada-api:

    export KUBECONFIG=/etc/karmada/karmada-apiserver.config
    
  2. Cree el despliegue y la política de propagación correspondiente:

    kubectl apply -f https://raw.githubusercontent.com/oracle-devrel/oci-automation-hub/refs/heads/main/karmada-on-oke-sample/deployment.yaml
    kubectl apply -f https://raw.githubusercontent.com/oracle-devrel/oci-automation-hub/refs/heads/main/karmada-on-oke-sample/propagationpolicy.yaml
    
  3. Verifique el despliegue:

    karmadactl  get deployment --operation-scope all
    

    El resultado debe ser similar al siguiente:

    # karmadactl  get deployment --operation-scope all
    NAME    CLUSTER   READY   UP-TO-DATE   AVAILABLE   AGE   ADOPTION
    nginx   Karmada   3/3     3            3           22m   -
    nginx   member2   2/2     2            2           22m   Y
    nginx   member1   1/1     1            1           22m   Y
    

    Observe que de los tres pods, dos se ejecutan en member2 y uno en member1.

Tarea 5: Limpieza

  1. Desinstale los componentes de karmada del cluster host:
karmadactl --kubeconfig /root/.kube/config deinit
  1. Destruya los recursos creados mediante la pila terraform:

Acuses de recibo

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal de YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de Oracle Learning.

Para obtener documentación sobre el producto, visite Oracle Help Center.