Como começar com o Krew, o gerenciador de plugins Kubectl

Como começar com o Krew, o gerenciador de plugins Kubectl

Krew é um gerenciador de pacotes para Kubectl, a interface de linha de comando oficial do Kubernetes. Usando o Krew, você pode encontrar, instalar e atualizar plugins Kubectl que estendem a interface de linha de comando com funcionalidades adicionais.

O mecanismo de plug-in Kubectl suporta vários métodos de instalação de plug-in. A maneira mais fácil é colocar os plugins diretamente no diretório que está no seu arquivo PATH. Este é um processo manual e não oferece a capacidade de atualizar o plug-in à medida que novos lançamentos são publicados.

Krew fornece funcionalidade geral de gerenciamento de pacotes para o ecossistema de plugins Kubectl. Ele mantém um índice público de pacotes conhecidos e também suporta índices de terceiros. O último permite que os plugins sejam publicados de forma privada dentro de uma organização ou equipe.

Instalação Cru

Krew é uma ferramenta de código aberto que faz parte do projeto Kubernetes. No entanto, não é fornecido com o Kubectl. Para começar a usar o Krew, você deve baixar e instalar manualmente a versão mais recente. As distribuições atuais do Krew funcionam com o Kubectl versão 1.12 e superior.

Os downloads estão disponíveis na página de lançamentos do GitHub do projeto. Os tarballs da distribuição contêm o binário Krew. Execute o script de instalação para concluir a adição do Krew ao seu sistema:

$. /krew-linux_amd64 install krew

Um script completo que baixa e instala automaticamente a distribuição correta do Krew para seu sistema está disponível na documentação .

Você deve então atualizar seu diretório para incluir o PATHdiretório Krew. binEle está localizado dentro do $KREW_ROOTqual geralmente está localizado $HOME/.krew. Os arquivos executáveis ​​dos plugins Kubectl que você instalou serão armazenados em um binsubdiretório.

$ export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

Agora você deve poder usar o Krew com o kubectl krewcomando:

~$ kubectl krew

krew é o gerenciador de plugins kubectl.

Você pode invocar o krew através do kubectl: “kubectl krew [comando]…”

Uso:

kubectl krew [comando]

...

Atualização do índice do plug-in

O Krew Plugin Index contém todos os plugins atualmente disponíveis que você pode instalar. Ele funciona de maneira semelhante às listas de pacotes usadas pelos gerenciadores de pacotes no nível do sistema operacional, como apt.

Atualize o índice periodicamente para que sua instalação do Krew tenha acesso às versões mais recentes de todos os plugins disponíveis:

$ kubectl krew update

Updated the local copy of plugin index.

Instalando plug-ins

A equipe installestá adicionando novos plugins ao Kubectl. Ele pode instalar qualquer um dos plugins listados no índice Krew. Krew cuidará de carregar o plugin e registrá-lo no Kubectl.

$ kubectl krew install ctx

Atualizada a cópia local do índice do plug-in.

Instalar plug-in: ctx

Plugin instalado: ctx

...

O Krew atualiza automaticamente seu índice de plugins antes da instalação, garantindo que você obtenha a versão mais recente de um novo plugin. Quando a instalação estiver concluída, você verá informações básicas do autor do plug-in na parte inferior da saída do comando.

Agora você pode usar comandos de plugin via kubectlCLI:

$ kubectl ctx my-context

Atualização para novas versões de plugins

Uma das maiores vantagens do Krew é o sistema integrado de atualização de plugins. A execução upgradedo comando atualizará o índice do pacote e atualizará todos os plug-ins instalados para a versão mais recente. Este processo é totalmente automatizado.

$ kubectl krew upgrade

Atualizada a cópia local do índice do plug-in.

...

Você pode atualizar plugins individualmente passando seus nomes para upgradeo comando:

$ kubectl krew upgrade ctx

Se você quiser remover um plug-in, inclua seu nome no uninstallcomando:

$ kubectl krew uninstall ctx

Krew irá certificar-se de que o plugin seja completamente removido do seu sistema.

O comando listmostra todos os seus plugins e suas versões instaladas:

~$ kubectl krew list

VERSÃO DO PLUGIN

ctx v0.9.4

equipe v0.4.3

ns v0.9.4

O próprio Krew aparece na lista de plugins e é suportado pelo sistema de atualização. Execute upgradeou upgrade krewbaixe e instale a versão mais recente do Krew antes que seus plugins sejam atualizados.

Pesquisa de plug-ins

O comando searchpermite que você visualize o índice de pacotes Krew do seu terminal.

~$ kubectl krew search cert-manager

NOME DESCRIÇÃO INSTALADO

cert-manager Manage cert-manager resources inside your cluster no

Depois de encontrar o plug-in de seu interesse, execute infoo comando para saber mais sobre ele. Isso mostra o número da versão atual do plug-in, um link para seu site e uma breve descrição fornecida pelo autor.

~$ kubectl krew info cert-manager

NOME: cert-manager

ÍNDICE: padrão

URI: https://github.com/jetstack/cert-manager/releases/download/v1.7.0/kubectl-cert_manager-linux-amd64.tar.gz

SHA256: 73618617b9ec42994c3ea77bbc8be743e382501d42ad2ee7aeca0d32c15655c0

VERSÃO: v1.7.0

PÁGINA INICIAL: https://github.com/jetstack/cert-manager

DESCRIÇÃO:

O plugin oficial que acompanha o cert-manger, um complemento do Kubernetes para

automatizar a gestão e emissão de certificados TLS. Permite

interação direta com recursos do cert-manager, por exemplo, renovação manual de

Certificate resources.

Como usar índices personalizados

O Krew mantém índices personalizados que facilitam a instalação de plugins de suas próprias fontes. Índices são apenas repositórios Git com uma pluginspasta contendo manifestos YAML. Esses arquivos definem os plug-ins disponíveis para instalação. A estrutura de índice padrão do Krew é um modelo útil quando você está configurando o seu próprio.

Para adicionar um índice, passe a URL de seu repositório para o index addcomando:

$ kubectl krew index add custom-index https://example.com/krew/index.git

Para referenciar plugins em seu índice, prefixe seus nomes com o nome do índice de sua escolha:

$ kubectl krew install custom-index/example-plugin

Se nenhum prefixo for especificado, o Krew default/usará o prefixo. Isso sempre se refere ao índice de plugins embutido do Krew. Se você preferir direcionar nomes de plugins não prefixados para seu próprio índice, defina KREW_DEFAULT_INDEX_URIuma variável de ambiente para a URL do seu repositório:

$ export KREW_DEFAULT_INDEX_URI="https://example.com/krew/index.git"

# Resolvido automaticamente para o índice personalizado

$ kubectl krew install example-plugin

Publicando seus próprios plugins

É muito fácil distribuir seus próprios plugins aos usuários via Krew. Primeiro você precisa arquivar o conteúdo do seu plugin Kubectl como um arquivo .tar.gzou . .zipFaça o upload para um local público – o site do seu projeto ou a página de lançamentos do GitHub são boas escolhas.

Em seguida, escreva o manifesto do plugin Krew . Este é um arquivo YAML simples que fornece informações básicas sobre seu plug-in, como nome, descrição e versão atual. O manifesto também inclui a URL pública do seu arquivo de plugins. Quando um usuário instala seu plugin, o Krew baixa seu arquivo da URL especificada no manifesto.

Depois de escrever seu manifesto, você pode enviá-lo para um repositório Git. Adicione este repositório como um índice Krew personalizado para adicionar seu plug-in à sua instalação do Kubectl. Os envios para o índice público do Krew são aceitos criando um pull request para seu repositório, que adiciona seu manifesto ao pluginscatálogo.

Conclusão

O Krew facilita a descoberta, instalação e gerenciamento de plug-ins do Kubernetes. Esta é uma ferramenta útil para quem usa plugins Kubectl. O Krew oferece uma experiência completa de gerenciamento de pacotes, incluindo índices privados personalizados para suas ferramentas internas.

O índice público contém mais de 180 plugins que cobrem todos os aspectos do gerenciamento do Kubernetes. Algumas opções populares incluem cert-manager para trabalhar com os objetos Cert-Manager em seu cluster, tail para streaming de log simplificado, score para analisar estaticamente seus objetos e ctx e ns para facilitar a alternância entre contextos e namespaces.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *