Tutorial minimalista! Enseñarle a integrar rápidamente K3 con Cloud Controller

En un artículo anterior, presentamos cómo crear un clúster K3s de 4 nodos en 60 segundos . El artículo también contiene la configuración de la máquina virtual. El único problema con este clúster es que no hay soporte de proveedor de nube, lo que significa que no puede usar LoadBalancer, almacenamiento y otros servicios. Entonces, este artículo le dirá cómo integrar K3 con el proveedor de la nube.

La integración de CCM (Cloud Management Controller) con K3s básicamente significa que su clúster de K3s puede comunicarse con la API del proveedor de la nube para solicitar y configurar servicios como LoadBalancer (para ingreso), así como para nodos. Aplicar etiquetas apropiadas, etc. Antes de diferentes proveedores de nube, este proceso es diferente, principalmente dependiendo de si el proveedor de nube proporciona CCM primero. En este artículo, instalaremos K3 en DigitalOcean.

Todo el proceso no es complicado, pero debe seguir cuidadosamente los pasos a continuación. Primero, comience con el nodo maestro. Al instalar el nodo maestro K3s, necesitamos pasar los siguientes parámetros:

— disable-cloud-controller

— no-deploy servicelb

— kubelet-arg=”cloud-provider=external”

— kubelet-arg=”provider-id=digitalocean://[master_node_id]”

Entonces, ¿a qué se refieren? Primero, como su nombre lo indica, desactive el proveedor de nube predeterminado de K3s; de lo contrario, K3s usará su propio controlador de nube integrado. En segundo lugar, le pedimos a K3s que no implemente servicelb porque estropeará la dirección IP; servicelb sobrescribirá la IP de Ingress con la IP del nodo, y queremos usar la IP de DigitalOcean LoadBalancer como tipo de servicio LoadBalancer. En tercer lugar, estos son casi todos los requisitos de CCM, solo necesitamos indicarle a kubelet que use un proveedor de nube externo. El último parámetro, este es un requisito de DO CCM: si verifica el repositorio DO CCM Github (https://github.com/digitalocean/digitalocean-cloud-controller-manager), encontrará que solo requieren que pase este parámetro Hacia kubelet. [master_node_id] se puede encontrar en DO Dashboard, o haciendo una llamada GET desde el propio droplet:

curl http://169.254.169.254/metadata/v1/id

Por tanto, para poder instalar el servidor K3s preparado para CCM, necesitamos ejecutar el siguiente comando:

curl -sfL https://get.k3s.io | sh -s — server \
  --disable-cloud-controller \
  --no-deploy servicelb \
  --kubelet-arg=”cloud-provider=external” \
  --kubelet-arg=”provider-id=digitalocean://$master_id”

Lo anterior es la primera parte, preparación preliminar. Después de que se inicie el servidor K3s, necesitamos instalar CCM. Para completar este paso, primero debes clonar el repositorio de git:

https://github.com/digitalocean/digitalocean-cloud-controller-manager

A continuación, debemos crear un secreto de Kubernetes que contenga el token de la API de DigitalOcean. Puede usar el generador de secretos en el repositorio o usar el siguiente comando:

kubectl -n kube-system create secret generic digitalocean --from-literal=access-token=[YOUR_DO_API_TOKEN]

Si se ha guardado el secreto, simplemente aplique el manifiesto yaml del almacén:

kubectl apply -f releases/v0.1.21.yml

Ahora, siempre que se habilita el servicio LoadBalancer, se crea y configura un LoadBalancer de DigitalOcean para enrutar el tráfico a esa carga. Además, dado que k3s tiene incorporado Traefik de forma predeterminada, DOLB también se creará automáticamente para él.

Hasta ahora, solo hemos creado nodos maestros de K3. Para los nodos trabajadores, solo necesita instalar K3 con los siguientes parámetros:

curl -sfL https://get.k3s.io | K3S_TOKEN=${token} sh -s - agent \
  --server https://${master_node_ip}:6443 \
  --kubelet-arg="cloud-provider=external" \
  --kubelet-arg="provider-id=digitalocean://$worker_id"

Ahora, todos los nodos tienen el conjunto de etiquetas apropiado (IP pública / privada, área DO, etc.) y el enrutamiento a través de DO LB se iniciará inmediatamente.

Finalmente, creé un script bash simple para automatizar todo el proceso. Esta solución le permite crear un clúster k3s de 4 nodos (1 nodo maestro + 3 nodos de trabajo) en DigitalOcean en 2 minutos, con DO CCM:

https://github.com/DavidZisky/k3s-cloud

Autor:

Dawid Ziolkowski, ingeniero nativo de la nube

Enlace original:

https://itnext.io/how-to-integrate-k3s-with-the-cloud-controller-36bd5020b8f7

Supongo que te gusta

Origin blog.csdn.net/qq_42206813/article/details/105630200
Recomendado
Clasificación