Observando a Integridade do Nó de Trabalho e do Complemento

Descubra como observar a integridade e o uso de recursos dos nós de trabalho e dos principais complementos do Kubernetes com o Kubernetes Engine (OKE).

O Kubernetes Engine permite que você observe a integridade e o uso de recursos dos nós de trabalho e dos principais complementos do Kubernetes, como CoreDNS e KubeProxy. Você pode observar a integridade e o uso de recursos em qualquer cluster que suporte complementos gerenciados. Ao coletar métricas operacionais e de recursos, você pode detectar e solucionar problemas potenciais e anomalias de forma proativa antes que as cargas de trabalho sejam afetadas.

Para permitir que você observe a integridade e o uso de recursos, o Kubernetes Engine implanta os dois complementos gerenciados a seguir em cada nó de trabalho:

  • ObservabilityAgent: O complemento ObservabilityAgent coleta métricas de infraestrutura de origens, incluindo kubelet, cAdvisor, CoreDNS e KubeProxy.
  • NodeProblemDetector: O complemento NodeProblemDetector identifica e apresenta problemas como saturação de recursos e problemas de rede no nível do nó de trabalho. A configuração NodeProblemDetector gerenciada foi projetada para evitar conflitos com qualquer implantação existente dessa ferramenta ou ferramentas semelhantes.

Os complementos de observabilidade são pré-configurados para usar recursos mínimos e não requerem uma configuração personalizada extensa. Eles recebem uma baixa prioridade de programação, garantindo que as cargas de trabalho do sistema e do usuário permaneçam como o foco principal dos recursos do nó de trabalho. Os recursos dos dois complementos de observabilidade são adicionados ao namespace kube-system.

Ao observar a integridade e o uso de recursos, o Kubernetes Engine coleta as seguintes métricas:

  • CPU, memória e uso de rede de contêiner e pod (do kubelet e do cAdvisor).
  • CoreDNS Solicitações de DNS, taxas de erro e tempos de resposta.
  • Estatísticas da rede de serviço KubeProxy.
  • Informações de integridade, eventos e condições do nó de trabalho (no complemento NodeProblemDetector).

Os dados coletados são agregados e disponibilizados usando endpoints e ferramentas padrão do setor, como os compatíveis com a Prometheus.

Observe que somente dados de métricas para componentes de infraestrutura e plataforma são coletados. Mais especificamente, observe que nenhuma carga de trabalho identificável ou dados de aplicativo são coletados.

Observe também que uma regra de saída deve ter sido definida para que a sub-rede do ponto final da API do Kubernetes especifique uma porta na qual permita o tráfego para fins de observabilidade e suporte aprimorado ao cliente (por padrão, porta 9995).

Ativar e desativar a funcionalidade de observação de saúde

Descubra como ativar e desativar a funcionalidade de observação de integridade com o Kubernetes Engine (OKE).

Você pode ativar e desativar a funcionalidade de observação de integridade usando a Console, a CLI e a API.

    1. Na página da lista Clusters, selecione o nome do cluster para o qual você deseja ativar a funcionalidade de observação de integridade. Se precisar de ajuda para localizar a página de lista ou o cluster, consulte Listando Clusters.
    2. Na guia Complementos, selecione Gerenciar extensões.
    3. Selecione a opção Editar ao lado do ObservabilityAgent ou NodeProblemDetector.
    4. Selecione a opção Ativar <nome do complemento> para implantar e ativar o complemento do cluster se ele não tiver sido ativado neste cluster antes ou para ativar o complemento do cluster se ele tiver sido implantado anteriormente, mas estiver desativado no momento.
    5. Configure o complemento de cluster especificando os seguintes detalhes:
      • Atualizações automáticas: Escolha essa opção quando quiser que a Oracle atualize automaticamente o complemento quando uma nova versão estiver disponível.
      • Escolher uma versão: Escolha essa opção quando quiser controlar a versão do complemento que o sistema Oracle implanta no cluster. Um aviso indica que você assumiu a responsabilidade por atualizar a extensão. Se você escolher essa opção, selecione a versão do complemento a ser implantada no cluster na lista Versão. Consulte Versões Suportadas por Complemento de Cluster.
      • Opção: e Valor: (Opcional) Selecione Adicionar configuração para especificar um ou mais pares de chave/valor a serem especificados como argumentos para o complemento do cluster. Consulte Argumentos de Configuração de Complemento de Cluster.
    6. Selecione Salvar alterações.

    Para desativar o complemento ObservabilityAgent ou NodeProblemDetector, selecione a opção Editar ao lado do complemento, desmarque a opção Ativar <nome do complemento> e selecione Salvar alterações.

  • Use o comando oci ce cluster install-addon e os parâmetros necessários para implantar o complemento ObservabilityAgent ou NodeProblemDetector:

    oci ce cluster install-addon --cluster-id <cluster-ocid> --addon-name ObservabilityAgent --region <region> [OPTIONS]
    oci ce cluster install-addon --cluster-id <cluster-ocid> --addon-name NodeProblemDetector --region <region> [OPTIONS]

    Use o comando oci ce cluster disable-addon e os parâmetros necessários para desativar (e, opcionalmente, remover) o complemento ObservabilityAgent ou NodeProblemDetector implantado em um cluster:

    oci ce cluster disable-addon --cluster-id <cluster-ocid> --addon-name ObservabilityAgent --is-remove-existing-add-on <true|false> [OPTIONS]
    oci ce cluster disable-addon --cluster-id <cluster-ocid> --addon-name NodeProblemDetector --is-remove-existing-add-on <true|false> [OPTIONS]

    Para ver uma lista completa de parâmetros e valores para comandos CLI, consulte a Referência de Comando CLI.

  • Execute a operação InstallAddon ou a operação DisableAddon para instalar ou desativar (e, opcionalmente, remover) o complemento ObservabilityAgent ou NodeProblemDetector implantado em um cluster.

Usando Rótulos para Ativar e Desativar a Funcionalidade Observação de Saúde em Nós de Trabalho Específicos ou em Todos os Nós de Trabalho

Descubra como usar labels para ativar e desativar a funcionalidade de observação de integridade em nós de trabalho com o Kubernetes Engine (OKE).

Para coletar métricas de um nó de trabalho específico, aplique labels ao nó de trabalho da seguinte forma:

kubectl label node --overwrite oci.oraclecloud.com/oke-observability-agent-enabled=true <node-name>
kubectl label node --overwrite oci.oraclecloud.com/oke-node-problem-detector-enabled=true <node-name>

Para coletar métricas de todos os nós de trabalho, aplique labels da seguinte forma:

kubectl label node --overwrite --all oci.oraclecloud.com/oke-observability-agent-enabled=true
kubectl label node --overwrite --all oci.oraclecloud.com/oke-node-problem-detector-enabled=true

Para desativar a funcionalidade de observação de saúde em um nó de trabalho específico, aplique rótulos ao nó de trabalho da seguinte forma:

kubectl label node --overwrite oci.oraclecloud.com/oke-observability-agent-enabled=false <node-name>
kubectl label node --overwrite oci.oraclecloud.com/oke-node-problem-detector-enabled=false <node-name>

Observando a Integridade de Nós de Trabalho e Complementos

Descubra como observar a integridade do nó de trabalho e do complemento depois de instalar e ativar os complementos ObservabilityAgent e NodeProblemDetector.

Depois de instalar e ativar os complementos ObservabilityAgent e NodeProblemDetector, use o Kubernetes padrão e as ferramentas de monitoramento para observar a integridade do nó de trabalho e do complemento.

Por exemplo, para consultar e visualizar as métricas coletadas para nós de trabalho e complementos, use soluções de monitoramento compatíveis com o Prometheus ou OpenMetrics. Essas métricas incluem uso de recursos de contêiner e pod, estatísticas CoreDNS e KubeProxy e eventos de integridade do nó de trabalho.

Obtendo métricas diretamente de um nó de trabalho (ponto final mTLS)

O complemento ObservabilityAgent expõe um ponto final de métricas em cada nó de trabalho e o protege com mTLS (TLS mútuo). O ponto final de métricas só pode ser acessado por um cliente que apresente um certificado de cliente válido emitido por uma Autoridade de Certificação (CA) confiável. Uma CA é um emissor confiável que assina certificados para que outros componentes possam verificar a identidade e estabelecer conexões criptografadas. O certificado do cliente deve ser assinado pela CA do cluster. Os certificados necessários estão disponíveis no nó de trabalho após o provisionamento.

Para extrair métricas de um nó de trabalho, conecte-se ao nó (por exemplo, usando SSH) e execute um comando semelhante ao seguinte:

sudo curl -v --cert /var/lib/kubelet/pki/kubelet-client-current.pem --key /var/lib/kubelet/pki/kubelet-client-current.pem --cacert /etc/kubernetes/ca.crt https://<node-private-ip>:9995/metrics 

em que:

  • --cert /var/lib/kubelet/pki/kubelet-client-current.pem especifica o certificado do cliente kubelet, que é confiável pela CA do cluster.
  • --key /var/lib/kubelet/pki/kubelet-client-current.pem especifica a chave privada do certificado do cliente (nesta configuração, ela é armazenada no mesmo arquivo PEM).
  • --cacert /etc/kubernetes/ca.crt especifica o certificado de CA raiz do cluster usado para verificar o certificado do servidor apresentado pelo ponto final de métricas.
  • <node-private-ip> é o endereço IP privado do nó de trabalho (por exemplo, 10.0.10.121).
  • https://<node-private-ip>:9995/metrics é o ponto final das métricas ObservabilityAgent no nó.

Você pode usar os mesmos certificados e pontos finais ao configurar seu próprio pipeline de métricas (por exemplo, um raspador compatível com o Prometheus) para coletar e visualizar métricas ObservabilityAgent.

Verificando a integridade das extensões

Você pode observar o estado das próprias extensões do ObservabilityAgent e do NodeProblemDetector, como se segue:

  • Para verificar o status DaemonSet dos complementos de observabilidade implantados, digite:

    kubectl get daemonset -n kube-system

    Confirme se as contagens de pods desejadas e prontas correspondem ao número de nós de trabalho observados. oke-dataplane-observability-agent e oke-node-problem-detector DaemonSets estão em execução.

  • Se você encontrar resultados ou problemas inesperados com os complementos de observabilidade, inspecione os logs de pod para obter o ObservabilityAgent e o NodeProblemDetector no namespace kube-system digitando:

    kubectl logs -n kube-system <pod-name>

    Verifique também se os nós de trabalho têm os rótulos necessários.

Para obter mais informações sobre o gerenciamento de complementos de cluster, consulte Gerenciamento de complementos de cluster.