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
-
Instale los componentes
karmadaen un cluster de OKE de host. -
Únete a 2 grupos de miembros de OKE a karmada.
-
Cree un despliegue con pods distribuidos en 2 clusters de OKE.
Requisitos
-
Arrendamiento activo en OCI
-
Un usuario con privilegios suficientes para crear los recursos
Nota: Solo puede utilizar la identidad de carga de trabajo para clusters mejorados.
-
Un compartimento ya creado en el que desplegar recursos
-
Grupo dinámico para todas las máquinas virtuales del compartimento:
All {instance.compartment.id = 'ocid1.compartment.oc1...'} -
Política para ejecutar comandos de la CLI de OCI con el principal de instancia:
allow dynamic-group <dynamic-group-name> to manage cluster-family in compartment <compartment-name>
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.
-
Descargue el zip de versión que contiene los archivos terraform de github: karmada-on-oke.
-
Utilice Oracle Resource Manager para crear y aplicar la pila.
- En el menú de hamburguesa, vaya a Oracle Resource Manager.
- Seleccione
Stacks. - Seleccione
Create stack. - Seleccione
My configuration. - En la sección
My configuration, asegúrese de queZip fileestá seleccionado. Seleccione el archivo zip que ha descargado anteriormente. SeleccioneUpload. - Asigne a la pila un nombre significativo.
- Seleccione
Next. - Seleccione la clave pública ssh que se utilizará para conectarse a la máquina virtual.
- Seleccione el compartimento en el que se crearán los recursos.
- Seleccione
Next. - En la siguiente pantalla, seleccione
Run apply. - Seleccione
Create.
-
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
- Con la IP obtenida anteriormente, use ssh para conectarse a la VM:
ssh -i <private-ssh-key> opc@<public-IP> -
Cambie al usuario root:
sudo su - -
Instale los componentes de karmada en el cluster host:
karmadactl init
Tarea 3: Unión de miembros del cluster de OKE
-
Unirse al cluster
member1:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member1 --cluster-kubeconfig=$HOME/.kube/config-k1 -
Unirse al cluster
member2:karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config join member2 --cluster-kubeconfig=$HOME/.kube/config-k2 -
Mostrar clusters de miembros:
karmadactl --kubeconfig /etc/karmada/karmada-apiserver.config get clusters
Tarea 4: Despliegue de la carga de trabajo en Karmada
-
Defina
KUBECONFIGpara que apunte al servidor karmada-api:export KUBECONFIG=/etc/karmada/karmada-apiserver.config -
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 -
Verifique el despliegue:
karmadactl get deployment --operation-scope allEl 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 YObserve que de los tres pods, dos se ejecutan en
member2y uno enmember1.
Tarea 5: Limpieza
- Desinstale los componentes de karmada del cluster host:
karmadactl --kubeconfig /root/.kube/config deinit
- Destruya los recursos creados mediante la pila terraform:
- Vuelva a Oracle Resource Manager.
- Seleccione la pila que ha creado.
- Seleccione
Destroy.
Acuses de recibo
- Autor: Daniel Dinu (ingeniero principal en la nube)
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.
Manage Workload on Multiple OKE Clusters Using Karmada
G55115-01