Depurando problemas de CLI comuns com clusters

Nuvem privada virtual Infraestrutura clássica

Revise os motivos comuns a seguir para problemas de conexão da CLI ou falhas de comando.

O firewall impede a execução de comandos da CLI

Quando você executa os comandos ibmcloud, kubectl ou calicoctl na CLI, eles falham.

Você pode ter políticas de rede corporativa que impedem o acesso de seu sistema local a terminais públicos por proxies ou firewalls.

Permita acesso TCP para os comandos da CLI funcionarem.

Esta tarefa requer a função de acesso à plataforma Administrador do IAM do IBM Cloud para o cluster.

Comandos kubectl não funcionam

Quando você executa comandos kubectl em seu cluster, os comandos falham com uma mensagem de erro semelhante ao exemplo a seguir.

No resources found.
Error from server (NotAcceptable): unknown (get nodes)
invalid object doesn't have additional properties
error: No Auth Provider found for name "oidc"

Você possui uma versão diferente de kubectl do que sua versão de cluster.

O Kubernetes não suporta versões do cliente kubectl que sejam duas ou mais versões distantes da versão do servidor (n +/- 2). Se você usar um cluster Kubernetes da comunidade, também será possível que você tenha a versão Red Hat OpenShift de kubectl, que não funciona com os clusters Kubernetes da comunidade.

Para verificar a versão do kubectl do cliente em relação à versão do servidor de cluster, execute kubectl version --short.

Instale a versão da CLI que corresponde a versão de seu cluster

Se você tiver vários clusters com versões diferentes ou plataformas de contêineres diferentes, como Red Hat OpenShift, faça o download de cada arquivo binário da versão kubectl em um diretório separado. Em seguida, é possível configurar um alias no perfil da interface da linha de comandos (CLI) local para apontar para o diretório de arquivos binário kubectl que corresponde à versão kubectl do cluster com a qual deseja trabalhar ou talvez seja possível usar uma ferramenta como brew switch kubernetes-cli <major.minor>.

Os comandos kubectl atingem o tempo limite

Se executar comandos como kubectl exec, kubectl attach, kubectl proxy, kubectl port-forward ou kubectl logs, você verá a mensagem a seguir.

<workerIP>:10250: getsockopt: connection timed out
kubectl -n kube-system logs metrics-server-65fc69c6b7-f682d -c metrics-server
Error from server: Get “https://10.38.193.213:10250/containerLogs/kube-system/metrics-server-65fc69c6b7-f682d/metrics-server”: EOF
kubectl -n kube-system exec -it metrics-server-65fc69c6b7-f682d -c metrics-server -- sh
Error from server: error dialing backend: EOF

Revise e conclua as etapas a seguir para a sua versão de cluster.

  • Versão 1.21 e posterior, a conexão Konnectivity VPN entre o nó mestre e os nós de trabalho não está funcionando corretamente.
  • O cluster tem os terminais em serviço privados e públicos ativados.
  • Os terminais em serviço ou a VRF não estão ativados na conta.

Para determinar se a VRF e os terminais em serviço estão ativados em sua contas, execute ibmcloud account show. Procure a saída a seguir.

VRF Enabled:                        true
Service Endpoint Enabled:           true

Para determinar se o seu cluster clássico tem um terminal em serviço público e privado ativado, execute ibmcloud ks cluster get -c <cluster_id>. Procure uma saída semelhante à seguinte.

Public Service Endpoint URL:    https://c105.<REGION>.containers.cloud.ibm.com:<port>
Private Service Endpoint URL:   https://c105.private.<REGION>.containers.cloud.ibm.com:<port>

Se o cluster atender a essas condições, ative os terminais em serviço e o VRF para a conta.