|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Resolvendo problemas no SUSE Rancher Prime Cluster Kubernetes do Servidor
Esta seção descreve como resolver problemas em uma instalação do Rancher em um cluster Kubernetes.
Namespaces Relevantes
A maior parte da resolução de problemas será feita em objetos nesses 3 namespaces.
-
cattle-system- implantaçãoranchere pods. -
traefik- Pods e serviços do controlador de Ingress. -
cert-manager-cert-managerpods.
"backend padrão - 404"
Várias coisas podem fazer com que o controlador de Ingress não encaminhe o tráfego para sua instância do Rancher. Na maioria das vezes, isso se deve a uma configuração SSL incorreta.
Coisas a verificar
Verifique se o Rancher está em execução
Use kubectl para verificar o namespace do sistema cattle-system e ver se os pods do Rancher estão em estado de execução.
kubectl -n cattle-system get pods NAME READY STATUS RESTARTS AGE pod/rancher-784d94f59b-vgqzh 1/1 Running 0 10m
Se o estado não for Running, execute um describe no pod e verifique os Eventos.
kubectl -n cattle-system describe pod ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 11m default-scheduler Successfully assigned rancher-784d94f59b-vgqzh to localhost Normal SuccessfulMountVolume 11m kubelet, localhost MountVolume.SetUp succeeded for volume "rancher-token-dj4mt" Normal Pulling 11m kubelet, localhost pulling image "rancher/rancher:v2.0.4" Normal Pulled 11m kubelet, localhost Successfully pulled image "rancher/rancher:v2.0.4" Normal Created 11m kubelet, localhost Created container Normal Started 11m kubelet, localhost Started container
Verifique os Logs do Rancher
Use kubectl para listar os pods.
kubectl -n cattle-system get pods NAME READY STATUS RESTARTS AGE pod/rancher-784d94f59b-vgqzh 1/1 Running 0 10m
Use kubectl e o nome do pod para listar os logs do pod.
kubectl -n cattle-system logs -f rancher-784d94f59b-vgqzh
O CN do Certificado é "Kubernetes Ingress Controller Fake Certificate"
Use seu navegador para verificar os detalhes do certificado. Se disser que o Nome Comum é "Kubernetes Ingress Controller Fake Certificate", algo pode ter dado errado ao ler ou emitir seu certificado SSL.
|
Se você estiver usando o LetsEncrypt para emitir certificados, pode levar alguns minutos para emitir o certificado. |
Verificando problemas com certificados emitidos pelo cert-manager (Gerados pelo Rancher ou LetsEncrypt)
cert-manager tem 3 partes.
-
Pod
cert-managerno namespacecert-manager. -
Objeto
Issuerno namespacecattle-system. -
Objeto
Certificateno namespacecattle-system.
Trabalhe de trás para frente e faça um kubectl describe em cada objeto e verifique os eventos. Você pode descobrir o que pode estar faltando.
Por exemplo, há um problema com o Emissor:
kubectl -n cattle-system describe certificate ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning IssuerNotReady 18s (x23 over 19m) cert-manager Issuer rancher not ready
kubectl -n cattle-system describe issuer ... Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning ErrInitIssuer 19m (x12 over 19m) cert-manager Error initializing issuer: secret "tls-rancher" not found Warning ErrGetKeyPair 9m (x16 over 19m) cert-manager Error getting keypair for CA issuer: secret "tls-rancher" not found
Verificando problemas com seus próprios certificados SSL
Seus certificados são aplicados diretamente ao objeto Ingress no namespace cattle-system.
Verifique o status do objeto Ingress e veja se está pronto.
kubectl -n cattle-system describe ingress
Se estiver pronto e o SSL ainda não estiver funcionando, você pode ter um certificado ou segredo malformado.
Verifique os logs do nginx-ingress-controller. Como o nginx-ingress-controller tem múltiplos contêineres em seu pod, você precisará especificar o nome do contêiner.
kubectl logs -n traefik traefik-6b94b8b688-bngw2 ... W0705 23:04:58.240571 7 backend_ssl.go:49] error obtaining PEM from secret cattle-system/tls-rancher-ingress: error retrieving secret cattle-system/tls-rancher-ingress: secret cattle-system/tls-rancher-ingress was not found
Nenhuma correspondência para o tipo "Issuer"
A opção de configuração SSL que você escolheu requer que o cert-manager esteja instalado antes de instalar o Rancher, caso contrário, o seguinte erro é exibido:
Error: validation failed: unable to recognize "": no matches for kind "Issuer" in version "certmanager.k8s.io/v1alpha1"
Instale o cert-manager e tente instalar o Rancher novamente.
Canal Pods mostra PRONTO 2/3
A causa mais comum deste problema é que a porta 8472/UDP não está aberta entre os nós. Verifique seu gateway de segurança local, roteamento de rede ou grupos de segurança.
Uma vez que o problema de rede seja resolvido, canal os pods devem sofrer timeout e reiniciar para restabelecer suas conexões.
Falha ao conectar ao /var/run/docker.sock: ssh: rejeitado: administrativamente proibido (falha ao abrir)
Algumas causas deste erro incluem:
-
O usuário especificado para conectar não tem permissão para acessar o socket do Docker. Isso pode ser verificado fazendo login no host e executando o comando
docker ps:$ ssh user@server user@server$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Veja Gerenciar o Docker como um usuário não-root como configurar isso corretamente.
-
Ao usar RedHat/CentOS como sistema operacional, você não pode usar o usuário
rootpara se conectar aos nós devido a Bugzilla #1527565. Você precisará adicionar um usuário separado e configurá-lo para acessar o socket do Docker. Veja Gerenciar o Docker como um usuário não-root como configurar isso corretamente. -
A versão do servidor SSH não é a versão 6.7 ou superior. Isso é necessário para que o encaminhamento de socket funcione, o que é usado para se conectar ao socket do Docker via SSH. Isso pode ser verificado usando
sshd -Vno host ao qual você está se conectando, ou usando netcat:$ nc xxx.xxx.xxx.xxx 22 SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.10
Falha ao conectar via ssh usando o endereço [xxx.xxx.xxx.xxx:xx]: ssh: falha na negociação: ssh: não foi possível autenticar, métodos tentados [nenhum chave pública], nenhum método suportado restante
O arquivo de chave especificado como ssh_key_path não está correto para acessar o nó. Verifique novamente se você especificou o ssh_key_path correto para o nó e se você especificou o usuário correto para se conectar.
Não é possível conectar ao daemon do Docker em unix:///var/run/docker.sock. O daemon do Docker está em execução?
O nó não é acessível nas configurações address e port.
O agente relata erros de TLS
Ao usar o Rancher, você pode encontrar mensagens de erro do fleet-agent, system-agent ou cluster-agent, como a mensagem abaixo:
tls: failed to verify certificate: x509: failed to load system roots and no roots provided; readdirent /dev/null: not a directory
Isso ocorre quando o Rancher foi configurado com agent-tls-mode definido como strict, mas não conseguiu encontrar cacerts na configuração cacert. Para resolver o problema, defina o agent-tls-mode como system-store, ou faça o upload do CA para o Rancher conforme descrito em Adicionando Segredos TLS.
A implantação do novo cluster está presa em "Aguardando o agente se registrar"
Quando o Rancher tem agent-tls-mode definido como strict, novos clusters podem falhar na provisão e relatar uma mensagem de erro genérica "Aguardando o agente se registrar". A causa raiz disso é semelhante ao caso acima de erros de TLS - o agente do Rancher não consegue determinar qual CA o Rancher está usando (ou não consegue verificar se o certificado do Rancher está realmente assinado pela autoridade certificadora especificada).
Para resolver o problema, defina o agent-tls-mode como system-store ou faça o upload do CA para o Rancher conforme descrito em Adicionando Segredos TLS.