KlusterKit

KlusterKit: conjunto de herramientas de código abierto para simplificar los despliegues de Kubernetes y trabajar en entornos locales físicamente aislados

KlusterKit

Hoy nos complace anunciar que Platform9 abre el código de Klusterkit, un conjunto de tres herramientas, bajo la licencia Apache v2.0 en GitHub.

Nuestros clientes implementan software en centros de datos privados, que a menudo no están conectados a Internet (por razones de seguridad o por otras causas). Estas grandes empresas quieren aprovechar las ventajas de Kubernetes y modernizar sus aplicaciones mientras las despliegan en diferentes centros de datos, que a menudo carecen de conexión con el mundo exterior. Aquí es donde entra Klusterkit, que simplifica la entrega y gestión de clústeres de K8s en entornos físicamente aislados.

Klusterkit consta de tres herramientas independientes que se pueden utilizar juntas o por separado para gestionar el ciclo de vida de un clúster de producción de Kubernetes:

  1. etcdadm, CLI para la gestión simplificada del clúster etcd.
  2. nodeadm, CLI para la administración de nodos, que complementa a kubeadm y despliega las dependencias necesarias para kubeadm.
  3. cctl, herramienta de gestión del ciclo de vida del clúster que utiliza Cluster API de la comunidad de Kubernetes y emplea nodeadm y etcdadm para entregar y mantener clústeres de Kubernetes altamente disponibles de manera sencilla en entornos locales y físicamente aislados.

Juntos, estas tres herramientas realizan las siguientes tareas:

  • Entrega y gestión sencilla de un clúster de etcd altamente disponible y un panel de control de Kubernetes en entornos locales físicamente aislados a través de Cluster API.
  • Recuperación del panel de control del clúster después de un fallo mediante una copia de seguridad de etcd.
  • Empaquetado de todos los artefactos necesarios para la entrega de Kubernetes en entornos físicamente aislados.

Capacidades de Klusterkit

  • Soporte para múltiples maestros (clúster HA K8s).
  • Entrega y gestión de clústeres etcd seguros.
  • Operación en entornos físicamente aislados.
  • Soporte para actualizaciones y reversión secuencial.
  • Flannel (vxlan) como CNI para el backend; se planea soporte para otros CNI.
  • Reserva y recuperación de clústeres etcd tras la pérdida de quórum.
  • Protección del panel de control contra falta de memoria y tiempo de CPU.

Arquitectura de la solución Klusterkit

KlusterKit

Para garantizar la resiliencia y la simplicidad, Klusterkit utiliza un único archivo cctl-state.yaml para almacenar los metadatos del clúster de Kubernetes. A través de la CLI cctl, se puede gestionar el ciclo de vida del clúster de Kubernetes en cualquier máquina que tenga este archivo de estado. Esto puede ser un portátil del operador o cualquier otra computadora que forme parte del clúster de Kubernetes.

Cctl implementa y llama desde upstream a la interfaz cluster-api como una biblioteca de operaciones CRUD en clústeres. Utiliza ssh-provider, un proveedor de cluster-api de código abierto en "hardware desnudo" de Platform9, que a su vez llama a etcdadm y nodeadm para realizar operaciones en el clúster.

Cómo utilizar Klusterkit y sus componentes:

1 – Cualquiera de las tres herramientas se puede compilar fácilmente con el comando go get:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 – Luego, estos archivos ejecutables se pueden empaquetar y copiar en las máquinas de destino donde debe funcionar el clúster de Kubernetes de alta disponibilidad. Coloque los archivos nodeadm y etcdadm en los directorios de versiones:

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 – Si es necesario orquestar el clúster de Kubernetes localmente, en un entorno físicamente aislado, las dependencias necesarias se pueden cargar fácilmente por adelantado en una computadora con acceso a Internet usando el comando de carga de nodeadm y etcdadm. Luego, los elementos descargados (es decir, kubelet y el archivo de unidad kubelet para systemd, archivos ejecutables CNI, archivo kubeadm, todas las imágenes de contenedores, incluyendo Kubernetes, imagen keepalived y archivo systemd, imagen de contenedor etcd y los archivos de configuración correspondientes) se pueden copiar fácilmente en hosts físicamente aislados junto con cctl, nodeadm y etcdadm. (Ver detalles en wiki).

4 – Cuando todo esté en su lugar, se puede crear el primer clúster de Kubernetes con un par de comandos:

– Primero, cree las credenciales del clúster.

$GOPATH/bin/cctl create credential --user root --private-key ~/ .ssh/id_rsa

– Luego, cree el objeto del clúster. –help invoca una lista de parámetros compatibles.

$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24

– Por último, cree la primera máquina en el clúster.

$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master

Para más documentación, lea en GitHub.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster