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.

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.