O que é kubectl proxy?

O que é kubectl proxy?
Um usuário fora de um cluster Kubernetes pode utilizar o proxy do servidor API Kubernetes para se conectar ao cluster IPS que, de outra forma, estaria indisponível. Isso, por exemplo, permite o acesso a um serviço disponível apenas na rede do cluster. Entre o usuário e o endpoint em cluster, o apiserver funciona como proxy e um bastião.

Instalamos o Ubuntu 20.04 Em nosso sistema operacional Linux para executar as instruções em Kubernetes. Você pode segui -lo. Você também deve instalar o cluster Minikube no seu computador para executar o Kubernetes no Linux. Minikube facilita o teste e os comandos e os programas, permitindo que você faça isso de maneira metódica. Como resultado, fornece a melhor experiência de aprendizado de Kubernetes para os recém -chegados. Inicialmente, o cluster do minikube deve ser iniciado. Então, no Ubuntu 20.04, vá para o terminal de linha de comando recém -instalado. Você pode fazer isso pressionando a tecla Ctrl+Alt+T de atalho ou digitando “Terminal” no Ubuntu 20.04 Caixa de pesquisa do sistema. Qualquer uma das técnicas acima mencionadas iniciará o terminal. O Minikube será iniciado depois disso. Digite “Minikube Start” no terminal para iniciar o minikube. O cluster Kubernetes será lançado depois que uma máquina virtual capaz de operar um único cluster de nós foi construído. Também é compatível com o ambiente Kubectl. Isso será usado para se comunicar com o cluster primeiro.

$ minikube Iniciar

Para ter acesso a um cluster, você precisará saber onde está localizado e quais credenciais você precisará. Isso geralmente é feito automaticamente quando você segue um guia de início ou outra pessoa configura o cluster e oferece credenciais e um local. O comando Config View mostra onde Kubectl está ciente da localização e das credenciais.

visualização de configuração $ kubectl

Como acessar diretamente a API REST ?

Kubectl está encarregado de encontrar e autenticar o apiserver. No modo proxy, execute kubectl.

  • É um método recomendado.
  • A localização do apiserver salvo é usada.
  • O apiserver é autenticado.
  • O balanceamento e failover de carga do lado do cliente inteligentes podem ser alcançáveis ​​no futuro.

Forneça diretamente ao cliente HTTP a localização e as credenciais.

  • Uma técnica diferente é possível.
  • Trabalha com um determinado código de cliente que fica confuso quando um proxy é usado.
  • Para se proteger contra o MITM, você precisará importar um certificado raiz para o seu navegador.

Usando o proxy Kubectl

Este comando configura Kubectl para funcionar como um proxy reverso. É responsável por localizar e autenticar o apiserver. Suponha este cenário:

$ kubectl proxy -port = 8080

Um exemplo da saída é o seguinte:

Sem o uso de Kubectl Proxy

Para adquirir o token da conta de serviço padrão, Run Kubectl descreva segredo… com grep/corte.

$ kubectl Descreva segredo

API e o acesso programático

É anunciar que o Kubernetes agora suporta bibliotecas de clientes Go e Python. O cliente GO e o cliente Python podem utilizar o mesmo arquivo kubeconfig que a CLI KUBECTL para localizar e autenticar com o apiserver.

Acesse a API de uma vagem

Ao entrar em contato com a API de uma vagem, o processo de encontrar e autenticar o apiserver difere um pouco. A melhor maneira de localizar o apiserver no pod é usar os Kubernetes.padrão.Nome SVC DNS. Ele resolve um IP de serviço e, por sua vez, é roteado para um apiserver.

O uso de uma credencial da conta de serviço para autenticar para o apiserver é sugerido. Depois disso, um token para essa conta de serviço é mantido na árvore do sistema de arquivos do contêiner naquela pod. Um pacote de certificado é inserido na árvore do sistema de arquivos de cada contêiner em/var/run/secrets/kubernetes.io/serviceAccount/ca.CRT, se disponível, e deve ser usado para verificar o certificado de porção do Apiserver.

Finalmente, em cada contêiner, o espaço de nome padrão para atividades de API para o nome de nome é armazenado em um arquivo em/var/run/secrets/kubernetes.io/serviceAccount/namespace. Aqui estão algumas opções para se conectar a uma API de dentro de um pod:

Execute o proxy Kubectl como um processo de fundo no contêiner ou como um recipiente de cargar. Isso permite que outros processos em qualquer um dos contêineres da vagem acessem a API Kubernetes usando a interface localhost da vagem.

Crie um cliente combinando a biblioteca de clientes Go com o código. Kubernetes com inclusterConfig () As funções newforconfig () e newforconfig () podem ser usadas para configurar um cluster. Eles estão encarregados de encontrar e autenticar o apiserver.

Conclusão

Aqui fornecemos diretrizes sobre o Kubectl Proxy. Qual é a visualização da configuração Kubectl Comum e como você pode acessar a API REST com e sem proxy Kubectl. Também fornecemos exemplos para ajudá -lo a entender melhor o conceito.