KlusterKit: un conxunto de ferramentas de código aberto para simplificar as implantacións de Kubernetes e executarse en ambientes locais illados fisicamente
Hoxe estamos encantados de anunciar que Platform9 ten Klusterkit de fontes abertas, un conxunto de tres ferramentas, baixo a licenza Apache v2.0 en GitHub.
Os nosos clientes implementan software en centros de datos privados que moitas veces non están conectados a Internet (por seguridade ou por outros motivos). Estas grandes empresas queren aproveitar Kubernetes e modernizar as súas aplicacións e ao mesmo tempo implantalas en diferentes centros de datos, que moitas veces non están conectados co mundo exterior. Aquí é onde entra Klusterkit, que facilita a provisión e xestión de clústeres K8s en ambientes fisicamente illados.
Klusterkit inclúe tres ferramentas independentes que se poden usar conxuntamente ou por separado para xestionar o ciclo de vida dun clúster de produción de Kubernetes:
etcdadm, CLI para a xestión simplificada de clúster etcd.
nodeadm, unha CLI para a administración de nodos que estende kubeadm e desprega as dependencias que necesita kubeadm.
cctl, unha ferramenta de xestión do ciclo de vida do clúster que adopta a API do clúster da comunidade de Kubernetes e utiliza nodeadm e etcdadm para ofrecer e manter clústeres de Kubernetes de alta dispoñibilidade en ambientes locais e incluso illados fisicamente.
En conxunto, estas tres ferramentas realizan as seguintes tarefas:
Proporcione e xestione facilmente un clúster etcd de alta dispoñibilidade e un panel de control de Kubernetes en ambientes locais illados fisicamente mediante a API de clúster.
Restaurando o panel de control do clúster despois dun fallo mediante a copia de seguranza etcd.
Empaquetar todos os artefactos necesarios para entregar Kubernetes en ambientes fisicamente illados.
Características de Klusterkit
Soporte multi-master (clúster HA K8s).
Entrega e xestión de clusters etcd seguros.
Traballar en ambientes illados fisicamente.
Admite actualizacións continuas e retrocesos.
Flannel (vxlan) como CNI para o backend; Hai plans para apoiar outros CNI.
Copia de seguranza e restauración de clústeres etcd despois da perda de quórum.
Protexe o panel de control de quedar sen memoria e tempo de CPU.
Arquitectura de solución de Klusterkit
Para tolerancia a fallos e sinxeleza, Klusterkit usa un único ficheiro cctl-state.yaml para almacenar metadatos do clúster de Kubernetes. A través da CLI cctl pode xestionar o ciclo de vida dun clúster de Kubernetes en calquera máquina que teña este ficheiro de estado. Este pode ser o portátil dun operador ou calquera outro ordenador que forme parte do clúster de Kubernetes.
Cctl implementa e chama a interface clúster-api desde ascendente como biblioteca para operacións CRUD en clústeres. El usa provedor ssh, un provedor de API de clúster de código aberto de Platform9, que á súa vez chama a etcdadm e nodeadm para realizar operacións no clúster.
Como usar Klusterkit e os seus compoñentes:
1 - Calquera das tres ferramentas pódese recoller facilmente co 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: estes executables pódense empaquetar e copiar nas máquinas de destino onde debería estar en execución o clúster de Kubernetes altamente dispoñible. Coloque os ficheiros nodeadm e etcdadm nos directorios de versións:
3 – Se precisa orquestrar un clúster de Kubernetes localmente, nun ambiente fisicamente illado, as dependencias necesarias pódense descargar facilmente de antemán nun ordenador con acceso a Internet mediante o comando de descarga nodeadm e etcdadm. A continuación, os elementos descargados (é dicir, o ficheiro de unidade kubelet e kubelet para systemd, ficheiros executables CNI, ficheiro kubeadm, todas as imaxes do contedor incluíndo Kubernetes, imaxe keepalived e ficheiro systemd, imaxe do contenedor etcd e ficheiros de configuración correspondentes) pódense copiar facilmente en hosts illados fisicamente ao longo con cctl, nodeadm e etcdadm. (Ver detalles en wiki).
4 - Unha vez que todo estea no seu lugar, podes crear o primeiro clúster de Kubernetes cun par de comandos: