Kluster Kit

KlusterKit: um kit de ferramentas de código aberto para simplificar implantações do Kubernetes e executar em ambientes locais fisicamente isolados

Kluster Kit

Hoje temos o prazer de anunciar que a Platform9 está abrindo o código do Klusterkit, um conjunto de três ferramentas, sob a licença Apache v2.0 no GitHub.

Nossos clientes implementam software em data centers privados que muitas vezes não estão conectados à Internet (por motivos de segurança ou outros). Estas grandes empresas querem tirar partido do Kubernetes e modernizar as suas aplicações e, ao mesmo tempo, implementá-las em diferentes centros de dados, que muitas vezes não estão ligados ao mundo exterior. É aqui que entra o Klusterkit, facilitando o provisionamento e o gerenciamento de clusters K8s em ambientes fisicamente isolados.

O Klusterkit inclui três ferramentas independentes que podem ser usadas juntas ou separadamente para gerenciar o ciclo de vida de um cluster de produção Kubernetes:

  1. etcdadm, CLI para gerenciamento simplificado de cluster etcd.
  2. nódeadm, uma CLI para administração de nós que estende o kubeadm e implanta as dependências necessárias ao kubeadm.
  3. CCTL, uma ferramenta de gerenciamento do ciclo de vida do cluster que adota a API Cluster da comunidade Kubernetes e usa nodeadm e etcdadm para fornecer e manter perfeitamente clusters Kubernetes altamente disponíveis em ambientes locais e até mesmo fisicamente isolados.

Juntas, essas três ferramentas executam as seguintes tarefas:

  • Provisione e gerencie facilmente um cluster etcd altamente disponível e um painel Kubernetes em ambientes locais fisicamente isolados por meio da API Cluster.
  • Restaurando o painel de controle do cluster após uma falha usando backup do etcd.
  • Empacotar todos os artefatos necessários para entregar o Kubernetes em ambientes fisicamente isolados.

Recursos do Klusterkit

  • Suporte multimestre (cluster HA K8s).
  • Entrega e gerenciamento de clusters etcd seguros.
  • Trabalhar em ambientes fisicamente isolados.
  • Suporta atualizações e reversões contínuas.
  • Flanela (vxlan) como CNI para backend; Existem planos para apoiar outros CNIs.
  • Backup e restauração de clusters etcd após perda de quorum.
  • Protege o painel de controle contra falta de memória e tempo de CPU.

Arquitetura da solução Klusterkit

Kluster Kit

Para tolerância a falhas e simplicidade, o Klusterkit usa um único arquivo cctl-state.yaml para armazenar metadados do cluster Kubernetes. Através da CLI cctl você pode gerenciar o ciclo de vida de um cluster Kubernetes em qualquer máquina que possua esse arquivo de estado. Pode ser o laptop de uma operadora ou qualquer outro computador que faça parte do cluster Kubernetes.

Cctl implementa e chama a interface cluster-api do upstream como uma biblioteca para operações CRUD em clusters. Ele usa provedor ssh, um provedor de API de cluster bare metal de código aberto da Platform9, que por sua vez chama etcdadm e nodeadm para executar operações no cluster.

Como usar o Klusterkit e seus componentes:

1 – Qualquer uma das três ferramentas pode ser facilmente coletada com o 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 – Esses executáveis ​​podem então ser empacotados e copiados para as máquinas de destino onde o cluster Kubernetes altamente disponível deve estar em execução. Coloque os arquivos nodeadm e etcdadm nos diretórios de versão:

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

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

3 – Caso você precise orquestrar um cluster Kubernetes localmente, em um ambiente fisicamente isolado, as dependências necessárias podem ser facilmente baixadas antecipadamente em um computador com acesso à Internet usando o comando nodeadm e etcdadm download. Em seguida, os itens baixados (ou seja, arquivo de unidade kubelet e kubelet para systemd, arquivos executáveis ​​​​CNI, arquivo kubeadm, todas as imagens de contêiner, incluindo Kubernetes, imagem keepalived e arquivo systemd, imagem de contêiner etcd e arquivos de configuração correspondentes) podem ser facilmente copiados para hosts fisicamente isolados junto com cctl, nodeadm e etcdadm. (Veja detalhes em wiki).

4 – Depois que tudo estiver pronto, você pode criar o primeiro cluster Kubernetes com alguns comandos:

– Primeiro crie credenciais para o cluster.

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

– Em seguida, crie um objeto de cluster. –help traz uma lista de opções suportadas.

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

– Por fim, crie a primeira máquina no cluster.

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

Leia mais documentação em GitHub.

Fonte: habr.com

Adicionar um comentário