Criei um cluster do Kubernetes usando este guia para o Fedora: https://docs.fedoraproject.org/en-US/quick-docs/using-kubernetes/
Configurei 1 painel de controle e 1 nó de trabalho (2 VMs libvirt) e consigo implantar aplicativos, ingressá-los, executar coisas e assim por diante...
A única coisa que sinto falta é de obter algumas métricas ( kubectl top nodes
/ kubectl top pods
), então tentei instalar o servidor de métricas usando o arquivo yaml oficial ( https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml ).
Em seguida, editei a implantação para corrigir os erros do certificado x509 adicionando --kubelet-insecure-tls
-o à lista de argumentos (este não é um cluster de produção, então deixei os certificados autoassinados padrão).
Meu problema é que o servidor de métricas não funciona: no log ele mostra erros ao extrair nós porque recebe 403 (proibido) ao solicitar recursos:"
I0919 08:32:37.415029 1 dynamic_serving_content.go:132] "Starting controller" name="serving-cert::/tmp/apiserver.crt::/tmp/apiserver.key"
I0919 08:32:37.415090 1 secure_serving.go:213] Serving securely on [::]:10250
I0919 08:32:37.415119 1 tlsconfig.go:240] "Starting DynamicServingCertificateController"
E0919 08:32:37.417167 1 scraper.go:149] "Failed to scrape node" err="request failed, status: \"403 Forbidden\"" node="f40-work1"
E0919 08:32:37.421847 1 scraper.go:149] "Failed to scrape node" err="request failed, status: \"403 Forbidden\"" node="f40main"
Estou preso lá e não consigo descobrir como resolver isso, o Google não pode me ajudar...
Versões do nó:
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
f40-work1 Ready metrics-server-aggregated-reader 2d19h v1.29.8 192.168.124.128 <none> Fedora Linux 40 (Server Edition) 6.10.10-200.fc40.x86_64 cri-o://1.28.2
f40main Ready control-plane,metrics-server-aggregated-reader 2d20h v1.29.8 192.168.124.146 <none> Fedora Linux 40 (Server Edition) 6.10.9-200.fc40.x86_64 cri-o://1.28.2
Rotulei ambos os nós com Role metrics-server-aggregate-reader
tentando corrigir erros, mas sem sucesso...
Até agora, há apenas um hack MAIS FEIO que funcionou para mim nas versões de cluster k8s 1.24+ (e sim, eu li e acompanhei toneladas de problemas e tentei várias abordagens, incluindo perguntas diretas aos autores do servidor de métricas, nenhuma funcionou para mim (no entanto, algumas parecem funcionar para algumas pessoas)):
Aviso Legal: NÃO SIGA
altere
--authorization-mode=Webhook
para--authorization-mode=AlwaysAllow
o ambiente de inicialização do kubelet (instâncias baseadas em redhat têm isso definido no arquivo de unidade, prefiro usar a inclusão de configuração drop-in em /etc/systemd/system/kubelet/service.d ) e reinicie o kubelet.Este hack desabilita efetivamente a autorização na porta de serviço 10250 do Kubelet, de modo que qualquer pessoa com conectividade de rede pode fazer todo tipo de coisa desagradável que imaginar com ela.
Qualquer solução de trabalho mais elegante é bem-vinda abaixo.