Diagnosticando e Solucionando Problemas de Pods e Serviços em Nós Virtuais Usando o proxy kubectl em vez do kubectl port-forward

Descubra como exibir a saída de aplicativos em execução em pods em nós virtuais.

Ao testar e depurar um aplicativo em execução em pods em um cluster do Kubernetes e acessar os recursos internos do cluster sem expô-los à internet pública, geralmente é útil exibir a saída do aplicativo como se ele estivesse sendo executado localmente no seu computador.

Ao usar pools de nós gerenciados, você pode usar o comando kubectl port-forward na sua máquina local para exibir a saída de aplicativos em execução em pods em nós gerenciados. O uso do comando kubectl port-forward cria um túnel seguro entre uma máquina local e um aplicativo em execução em um cluster do Kubernetes. O túnel permite que o tráfego flua entre os dois pontos finais, permitindo que você exiba a saída do aplicativo da máquina local.

No entanto, ao usar pools de nós virtuais, você não pode usar o comando kubectl port-forward para exibir a saída de aplicativos em execução em pods em nós virtuais. Como alternativa, use o comando kubectl proxy para a mesma finalidade.

Por exemplo:

  1. Se ainda não tiver feito isso, instale o kubectl (consulte a documentação do kubectl).
  2. Se você ainda não tiver feito isso, siga as etapas para configurar o arquivo de configuração kubeconfig do cluster para uso localmente e (se necessário) defina a variável de ambiente KUBECONFIG para apontar para o arquivo. Observe que você deve configurar seu próprio arquivo kubeconfig. Não é possível acessar um cluster usando um arquivo kubeconfig que outro usuário tenha configurado. Talvez você também precise definir a variável de ambiente OCI_CLI_PROFILE com o nome do perfil definido no arquivo de configuração da CLI antes de executar comandos kubectl. Consulte Configurando o Acesso Local a Clusters.
  3. Crie uma implantação no cluster no namespace padrão. Por exemplo, informando:
    kubectl create -f https://k8s.io/examples/application/deployment.yaml
  4. Obtenha a lista de pods digitando:
    kubectl get pods
  5. Em uma janela de terminal local, inicie um proxy digitando:
    kubectl proxy --port=8080
  6. Em outra janela de terminal local, agora você pode:
    • Exiba a saída do pod digitando:
      curl http://localhost:8080/api/v1/namespaces/<namespace-name>/pods/<pod-name>/proxy/

      Por exemplo:

      curl http://localhost:8080/api/v1/namespaces/default/pods/nginx-5b6b9d4766-qs9tc/proxy/
    • Visualize a saída de serviço digitando:
      curl http://localhost:8080/api/v1/namespaces/<namespace-name>/services/<service-name>/proxy/

      Por exemplo:

      curl http://localhost:8080/api/v1/namespaces/default/services/nginx-service/proxy/

    Em ambos os casos, anote a barra ( / ) no fim do comando.