KlusterKit

KlusterKit: un conxunto de ferramentas de código aberto para simplificar as implantacións de Kubernetes e executarse en ambientes locais illados fisicamente

KlusterKit

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:

  1. etcdadm, CLI para a xestión simplificada de clúster etcd.
  2. nodeadm, unha CLI para a administración de nodos que estende kubeadm e desprega as dependencias que necesita kubeadm.
  3. 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

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:

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

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

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:

– Primeiro cree as credenciais para o clúster.

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

– A continuación, cree un obxecto clúster. –help mostra unha lista de opcións admitidas.

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

– Finalmente, cree a primeira máquina do clúster.

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

Ler máis documentación en GitHub.

Fonte: www.habr.com

Engadir un comentario