KlusterKit

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

KlusterKit

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

Nossos clientes implantam software em data centers privados que muitas vezes não estão conectados à internet (por motivos de segurança ou por outras razões). Essas grandes empresas desejam aproveitar as vantagens do Kubernetes e modernizar seus aplicativos, enquanto os implanta em diferentes data centers, que muitas vezes não têm conexão com o mundo externo. É aí que o Klusterkit entra em cena, facilitando a entrega e 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 do Kubernetes:

  1. etcdadm, uma CLI para gerenciamento simplificado do cluster etcd.
  2. nodeadm, uma CLI para administração de nós, que complementa 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 Cluster API da comunidade Kubernetes e utiliza nodeadm e etcdadm para fornecer e manter clusters Kubernetes de alta disponibilidade em ambientes locais e, incluindo, fisicamente isolados.

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

  • Entrega simples e gerenciamento de um cluster etcd de alta disponibilidade e do painel de controle do Kubernetes em ambientes locais fisicamente isolados através da Cluster API.
  • Recuperação do painel de controle do cluster após uma falha com um backup do etcd.
  • Empacotamento de todos os artefatos necessários para a entrega do Kubernetes em ambientes fisicamente isolados.

Recursos do Klusterkit

  • Suporte a múltiplos mestres (cluster K8s HA).
  • Entrega e gerenciamento de clusters etcd seguros.
  • Operação em ambientes fisicamente isolados.
  • Suporte a atualizações e reversões sequenciais.
  • Flannel (vxlan) como CNI para backend; planos para suporte a outros CNI.
  • Backup e recuperação de clusters etcd após perda de quorum.
  • Proteção do painel de controle contra falta de memória e tempo de CPU.

Arquitetura da solução Klusterkit

KlusterKit

Para garantir a alta disponibilidade e simplicidade, o Klusterkit utiliza um único arquivo cctl-state.yaml para armazenar os metadados do cluster Kubernetes. Por meio do CLI cctl, é possível gerenciar o ciclo de vida do cluster Kubernetes em qualquer máquina que contenha esse arquivo de estado. Isso pode ser um notebook do operador ou qualquer outro computador que faça parte do cluster Kubernetes.

O cctl implementa e chama da upstream a interface cluster-api como uma biblioteca de operações CRUD para clusters. Ele utiliza ssh-provider, um provedor cluster-api de código aberto para "bare metal" da Platform9, que, por sua vez, chama o etcdadm e nodeadm para realizar operações no cluster.

Como usar o Klusterkit e seus componentes:

1 – Qualquer um dos três ferramentas pode ser facilmente construído 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 – Em seguida, esses executáveis podem ser empacotados e copiados para as máquinas alvo, onde o cluster Kubernetes altamente disponível deve operar. 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 – Se necessário orquestrar um cluster Kubernetes localmente, em um ambiente fisicamente isolado, as dependências necessárias podem ser facilmente baixadas previamente em um computador com acesso à internet usando os comandos de download do nodeadm e etcdadm. Depois, os elementos baixados (ou seja, kubelet e o arquivo de unidade kubelet para systemd, arquivos executáveis CNI, arquivo kubeadm, todas as imagens de contêineres, incluindo Kubernetes, a imagem keepalived e o arquivo systemd, a imagem do contêiner etcd e os respectivos arquivos de configuração) podem ser facilmente copiados para hosts fisicamente isolados junto com cctl, nodeadm e etcdadm. (Mais detalhes podem ser encontrados em wiki).

4 – Quando tudo estiver pronto, o primeiro cluster Kubernetes pode ser criado com alguns comandos:

– Primeiro, crie as credenciais para o cluster.

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

– Em seguida, crie o objeto do cluster. A opção –help chama a lista de parâmetros suportados.

$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

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster