Descoberta de Kubernetes

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 26 min. de leitura
  • O ServiceNow Visibilidade do ITOM encontra os componentes Kubernetes e OpenShift e cria serviços de aplicações que os contêm. Descoberta também encontra Kubernetes eventos e atualiza com frequência o CMDB para refletir o ambiente dinâmico Kubernetes.

    O Descoberta usa o padrão Kubernetes e suas seções de extensão para descobrir componentes Kubernetes para versão Kubernetes 1.21:
    • A seção de extensão Collect OpenShift info do padrão Kubernetes descobre os componentes OpenShift da implantação de Kubernetes. A seção OpenShift de extensão de configuração de compilação está disponível na Store versão 1.0.53.
    • A extensão Service Mesh descobre detalhes da malha de serviço. Essas informações permitem que o padrão crie relações de serviço a serviço, mostradas como Connects to::Connected. A descoberta de malha de serviço requer a implantação do Istio no cluster do K8s (Kubernetes). A seção de extensão da malha de serviço está disponível nas classes de extensão do Kubernetes. É compatível com o Now Platform usando a versão Madrid ou posterior.
    • A seção Collect Container Repository e a extensão encontram registros de contêiner e imagens nesses registros.

    Além disso, o Descoberta usa o padrão de evento Kubernetes para descobrir eventos para componentes Kubernetes das versões Kubernetes versão 1.21.

    Na versão 1.0.68 na ServiceNow Store, o Mapeamento de serviços pode usar relacionamentos de IC para adicionar os componentes Kubernetes aos serviços de aplicações durante a descoberta baseada em marcador.

    Descoberta usa os seguintes padrões para descobrir toda a infraestrutura Kubernetes implantada no GCP, AWS e Azure:
    • Google Cloud Platform (GCP): Obter Kubernetes Clusters.
    • Amazon Web Services (AWS) - Obter Kubernetes Clusters.
    • Serviços de computação em nuvem do Microsoft Azure- Obter Kubernetes Clusters.
    Esses padrões consultam a Nuvem, coletam dados em todos os clusters Kubernetes e criam uma programação sem servidor para cada cluster. Quando o cluster é excluído, a programação é marcada como inativa. Este recurso elimina a sobrecarga de criar e gerenciar várias credenciais e programações do Discovery sem servidor por cluster. Os padrões de infraestrutura em Nuvem são acionados por meio da descoberta na nuvem padrão.

    Solicitar aplicativos na Store

    Acesse o site ServiceNow Store para ver todos os aplicativos disponíveis e obter informações sobre como enviar solicitações para a loja. Para obter informações sobre notas de versão cumulativa para todos os aplicativos liberados, consulte as ServiceNow Store notas de versão do histórico de versão.

    Pré-requisitos

    Nota:
    Para obter os pré-requisitos para Kubernetes a descoberta de infraestrutura em nuvem, consulte abaixo.
    Nota:
    A execução de cronogramas automáticos sem servidor Kubernetes busca o token do portador. Adicionar credenciais é desnecessário.
    Execute as etapas a seguir para garantir que Descoberta possa usar o padrão para encontrar Kubernetes.
    1. Implante a mais recente aplicação Discovery and Service Mapping Patterns na ServiceNow Store.
    2. Na plataforma Kubernetes, encontre os parâmetros para configurar a descoberta Kubernetes :
      • Encontre o URL do servidor kubeapi:
        1. Na plataforma Kubernetes, execute o seguinte comando:

          kubectl cluster-info

        2. Na saída, encontre a linha que indica o URL do servidor kubeapi. Por exemplo, o plano de controle Kubernetes está sendo executado em

          https://10.154.144.146:443

      • Encontre os namespaces do servidor kubeapi:
        1. Na plataforma Kubernetes, execute este comando:

          kubectl get namespaces

        2. Na saída, encontre a linha que indica os namespaces. Por exemplo, kube-system.
      • Encontre o nome de usuário e a senha do Kubernetes:
        1. Na plataforma Kubernetes, execute este comando:

          kubectl config view

        2. Na saída, encontre o nome de usuário e a senha.Localize as linhas que contêm informações sobre senha e nome de usuário.
          Nota:
          Se em um determinado ambiente, o comando kubectl config view não estiver mostrando os detalhes esperados, use o comando supported do administrador Kubernetes para obter os detalhes do nome de usuário e da senha.
      • Encontre o token do portador válido com as permissões apropriadas:
        1. Se não tiver o nome do token padrão, use o comando: kubectl describe secret.
        2. A saída mostra todas as contas e todos os tokens. Encontre o token válido:

          Onde kubectl é a conta genérica Kubernetes, describe é o método kubectl genérico.

          O parâmetro secret reflete que, no cluster Kubernetes, o token padrão é protegido por ser contido dentro do objeto do tipo secret .

          A saída do comando kubectl descrever secreto está no formato codificado BASE64.

        3. Se você souber o nome do token padrão, use o comando: kubectl describe secret default-token-g6pwc.

          O default-token-g6pwc reflete o valor do parâmetro do token padrão para g6pwc.

        4. A saída mostra todos os tokens existentes para esta conta Kubernetes.

          Escolha um token a ser usado para configurar credenciais Kubernetes na plataforma ServiceNow.

    3. Certifique-se de que o servidor da API possa ser acessado pelo MID Server para uma descoberta Kubernetes bem-sucedida.
    4. Certifique-se de que o usuário configurado na plataforma Kubernetes tenha as permissões para executar os seguintes elementos /api/v1:
      • https://<url>/api/v1/namespaces/
      • https://<url>/api/v1/namespaces/<namespace>
      • https://<url>/api/v1/namespaces/kube-system/endpoints/kube-controller-manager
      • https://<url>/api/v1/services
      • https://<url>/api/v1/pods
      • https://<url>/api/v1/nodes
      • https://<url>/api/v1/replicationcontrollers
      • https://<url>/apis/networking.k8s.io/v1/ingresses
      • https://<url>/apis/apps/v1/deployments
      • https://<url>/apis/apps/v1/statefulsets
      • https://<url>/apis/apps/v1/daemonsets
      • https://<url>/apis/apps/v1/replicasets
      • https://<url>/apis/batch/v1/cronjobs
      • https://<url>/apis/batch/v1/jobs
    5. Para descobrir os componentes OpenShift da implantação do Kubernetes, certifique-se de que o usuário configurado na plataforma Kubernetes tenha as permissões para executar os seguintes elementos /api/v1:
      • /apis/apps.openshift.io/v1/deploymentconfigs
      • ​/apis/build.openshift.io/v1/buildconfigs​
      • /apis/route.openshift.io/v1/routes​
      • /apis/user.openshift.io/v1/groups​
      • /apis/user.openshift.io/v1/users​
      • /apis/project.openshift.io/v1/projects​
      • /apis/image.openshift.io/v1/images​
      • /apis/image.openshift.io/v1/imagestreams
      Para descobrir informações de malha de serviço:
      • Implante o Istio no seu cluster do K8s.
      • Forneça o URL do Prometheus.
      • Configure o Prometheus para extrair métricas do Istio.
    6. Ative a extensão Obter arquivos de configuração do Kubernetes para:
      • Descobrir os arquivos de configuração.
      • Criar arquivos de configuração rastreados.
      • Mapear as cargas de trabalho e os serviços dos arquivos de configuração com um relacionamento.
      Nota:
      O conteúdo dos arquivos rastreados está no formato JSON da versão 1.0.92. O conteúdo dos arquivos rastreados está no formato YAML na versão 1.0.91 e anteriores.
    7. Crie as credenciais Kubernetes na plataforma ServiceNow :
      1. Na plataforma ServiceNow, navegue até Todos > Descoberta > Credenciais.
      2. Selecione Novo.
      3. Selecione Credenciais do Kubernetes.
      4. Configure os campos do formulário (consulte a tabela):
        Campo Descrição
        Nome Insira um nome exclusivo e descritivo para esta credencial.
        Nome de usuário Insira o nome de usuário a ser criado na tabela Credenciais. Evite espaços iniciais ou finais em nomes de usuário. Um aviso vai ser exibido se a plataforma detectar espaços iniciais ou finais no nome de usuário.
        Senha Insira a senha para esta credencial.
        Token de Portador Para autenticação avançada usando um token do portador, insira o token do portador que Descoberta usa para autenticação ao acessar Kubernetes. Use a sequência de caracteres como token, por exemplo, 31ada4fd-adec-460c-809a-9e56ceb75269.
        Nota:
        O token do portador deve estar no formato codificado BASE64.
        Autenticação do Token do Portador Para autenticação avançada usando um token do portador, marque esta caixa de seleção.
        Alias de credencial Configure o alias para usar a credencial do Kubernetes para dispositivos e aplicações diferentes do Kubernetes. Este alias também vai ser usado para definir uma programação de descoberta sem servidor para descobrir a implantação do Kubernetes.
        1. Selecione o ícone de cadeado e, em seguida, selecione o ícone de pesquisa.
        2. No formulário Aliases de Conexão e Credencial, selecione Novo.
        3. Especifique um nome para o registro de alias de credencial.
        4. Defina atributos para o alias. Defina o Type como Credencial.
        5. Clique com o botão direito do mouse no cabeçalho do formulário e selecione Salvar e, em seguida, Atualizar.
        6. No formulário Aliases de conexão e credencial, selecione o alias recém-adicionado.

          O alias aparece no campo Alias de credencial.

      5. No formulário de credenciais Kubernetes, selecione Atualizar.
    8. Crie uma programação de descoberta sem servidor para o padrão Kubernetes.
      Crie e defina o padrão de execução sem servidor conforme descrito na documentação do produto. Configure os parâmetros exigidos pelo padrão Kubernetes da seguinte forma:
      Tabela 1. Configuração de atributos de padrão de execução
      Campo Descrição
      url O identificador do nome do host, IP ou FQDN e a porta do apiserver Kubernetes. Use o seguinte formato: example_hostname:example_port ou xample_ip:example_port. Forneça o protocolo correto (HTTP ou HTTPS) no URL.
      namespace Os namespaces que o sistema passa na Kubernetes Configuração de descoberta. Insira um dos seguintes valores:
      • Namespace individual: insira o namespace e, em seguida, "kube-system". Por exemplo: dev,kube-system
      • O valor padrão: insira default, kube-system
      • Namespaces de várias pilhas: insira os namespaces, use uma vírgula (,) para separar os valores e insira "kube-system". Por exemplo: automation,application,test,kube-system
      • Todos os namespaces: use um asterisco (*) para inserir todos os namespaces
      alias de credenciais O alias associado às credenciais do Kubernetes criadas anteriormente.
      nome do cluster O nome do cluster Kubernetes, no seguinte formato: <serviceaccountid><space><clustername> .
      provedor O provedor de nuvem: GCP ou AWS ou Azure.
      cluster_resource_id Exemplo de ID de recurso de cluster:
      • Clusters do Azure Kubernetes - ID do recurso.
      • ARN do cluster da AWS.
      • GCP- nome global do cluster.
    9. Crie uma Programação do Discovery sem servidor para o padrão Kubernetes Event. Configure a programação para ser executada a cada 5 ou 10 minutos.
      Nota:
      Quando o padrão é executado pela primeira vez, ele armazena um event_timestamp. Mais tarde, ele coleta somente os eventos delta com base no carimbo de data e hora. Quanto mais o padrão for executado, menos atualizações no IRE do CMDB vão ser necessárias.

      Crie um padrão de execução sem servidor para a programação de descoberta e atribua-o ao padrão Kubernetes Events. Configure os parâmetros exigidos pelo padrão Kubernetes conforme descrito na Configuração de atributos de padrão de execução.

    10. Para incluir componentes descobertos em serviços de aplicativo, habilite relacionamentos de IC usados na descoberta baseada em tag por Mapeamento de serviços. Esses relacionamentos de IC estão disponíveis a partir da versão 1.0.68 do ServiceNow Store. Para obter as etapas operacionais, consulte Configuração de descoberta baseada em marcador.

    Pré-requisitos da descoberta de infraestrutura em Nuvem do Kubernetes.

    Para o padrão Google Cloud Platform (GCP) – Obter Kubernetes Clusters , execute o seguinte:

    1. Na instância ServiceNow, configure uma conta de serviço Google Cloud Platform (GCP) com credenciais e permissões válidas.
    2. Na infraestrutura GCP, configure o MID Server com acesso total a todas as APIs em Nuvem: defina os escopos de acesso à API em Nuvem como "Permitir acesso total a todas as APIs em Nuvem". A instância do MID Server pode acessar somente os Clusters específicos do projeto.
    3. Navegue até sys_properties.list e configure as seguintes propriedades:
      • sn_itom_pattern.k8s_midserver: especifique um nome de MID Server válido.
      • sn_itom_pattern.k8s_create_schedule_enabled: defina o valor como verdadeiro.
    4. Criar e executar Google Cloud Descoberta
      Nota:

      Para buscar o token do portador, ao executar a programação do GKE Kubernetes, use o comando gcloud:

      gcloud config config-helper --format="value(credential.access_token)"

      Configurar o gcloud na instância do MID Server concede acesso ao cluster do GKE para buscar o token.

    Para a descoberta de cluster Amazon Elastic Kubernetes Service (EKS), execute o seguinte:

    1. Na instância ServiceNow, configure uma conta de serviço AWS com credenciais e permissões de conta de gestão válidas.
      1. Certifique-se de que o Cluster Amazon Elastic Kubernetes Service (EKS) tenha uma função de cluster com acesso somente de leitura a todos os recursos.
      2. Crie uma vinculação de função de cluster entre a função de cluster e um usuário do Kubernetes. Por exemplo, usuário somente de leitura.
      3. Crie uma função de IAM AWS com a política EKSReadOnly.
      4. Associe a função de IAM ao usuário do Kubernetes de uma das seguintes maneiras:
        • No cluster, edite o ConfigMap da aws-auth.
        • Executar o comando:

          eksctl create iamidentitymapping --cluster yourClusterName --arnarn:aws:iam::yourAccountID:role/yourIAMRoleName --username read-only-user

    2. Execute a descoberta de cluster do Amazon Elastic Kubernetes Service (EKS) de uma das duas maneiras: Usando a Interface de linha de comando (CLI) da AWS ou sem usar a CLI do AWS. Primeiro, defina a propriedade do sistema sn_itom_pattern.k8s_aws_cli_to_generate_token para usar o modelo escolhido. Esta propriedade do sistema é definida como verdadeira por padrão.

      • Defina esta propriedade do sistema como verdadeira para usar a CLI AWS para gerar um token.

      • Defina esta propriedade do sistema como falsa para usar Assumir funções para gerar um token.

      1. Execute a descoberta de cluster do Amazon Elastic Kubernetes Service (EKS) usando a CLI do AWS:

        1. Configure o MID Server com o CLI do AWS configurado. Configurar credenciais da CLI do AWS concede acesso ao cluster do Amazon Elastic Kubernetes Service (EKS).

          Nota:
          O usuário conectado ao sistema deve ser o mesmo que o usuário do MID Server.
        2. Para gerar o token do portador, ao executar a programação Amazon Elastic Kubernetes Service (EKS), use o comando da CLI AWS :aws eks get-token --cluster-name<cluster_name> .

          Configurar o usuário/função da CLI AWSMID Server na instância [] concede acesso ao cluster Amazon Elastic Kubernetes Service (EKS) para gerar o token.

      2. Execute a descoberta do cluster Amazon Elastic Kubernetes Service (EKS) sem usar a CLI da AWS:

        Nota:

        Este recurso é compatível com a versão 1.0.96 do Padrões de descoberta e mapeamento de serviços - dezembro de 2022.

        Consulte a seguinte base de conhecimento para obter instruções detalhadas: KB1182188: descoberta de cluster do EKS usando STS AssumeRoles (sem CLI da AWS)

    3. Navegue até sys_properties.list e configure as seguintes propriedades:
      • sn_itom_pattern.k8s_midserver: especifique um nome de MID Server válido.
      • sn_itom_pattern.k8s_create_schedule_enabled: defina o valor como verdadeiro.
    4. Crie e execute uma programação da Descoberta na nuvem da AWS.

    Para a descoberta de cluster Microsoft Azure Kubernetes Serviços (AKS) - Kubernetes, execute o seguinte:
    Nota:
    O padrão Kubernetes oferece suporte à descoberta de versões de cluster do AKS anteriores à versão 1.24.
    1. Atualize para a versão Padrões de descoberta e mapeamento de serviços mais recente.
    2. Na instância ServiceNow, configure a conta de serviço Azure com Azure credenciais e permissões válidas.
    3. Navegue até sys_properties.list e configure as seguintes propriedades:
      • sn_itom_pattern.k8s_midserver: especifique um nome de MID Server válido.
      • sn_itom_pattern.k8s_create_schedule_enabled: defina o valor como verdadeiro.
      • sn_itom_pattern.aks_fetch_local_ad_token: esta propriedade é definida como verdadeira por padrão. Se você não tiver contas locais com Kubernetes RBAC, poderá definir esta propriedade como falsa para aumentar a eficiência do padrão.
    4. Executar uma programação de descoberta na nuvem Azure.
    5. Configure o MID Server nos cronogramas Descoberta de acordo com o tipo de conta do cluster. Se você não tiver contas locais com RBAC, poderá ignorar esta etapa.

      Tipo de conta do cluster Descoberta programação MID Server

      Autenticação do MS Entra ID com Kubernetes RBAC.

      Qualquer MID Server.

      Autenticação MS Entra ID com Azure RBAC.

      Qualquer MID Server.

      Contas locais com Kubernetes RBAC.

      Selecione MID Server com a Azure Interface de linha de comando (CLI) configurada. A configuração das credenciais Azure da CLI concede acesso ao cluster AKS.

      Para buscar o token do portador durante a execução da programação do AKS Kubernetes, use o comando da CLI Azure : az aks get-credentials --name<cluster_name> --overwrite-existing --resource-group<resourceGroup_name> --arquivo - .

      Nota:
    Tabela 2. Outra configuração de sistema compatível
    Nome da propriedade Descrição da propriedade Tipo Valor padrão

    sn_itom_pattern.manifest_digest_image_id

    Booliano

    falso

    Nota:
    Antes de definir esta propriedade como verdadeira e executar a descoberta: evite que registros duplicados sejam criados excluindo todos os registros de imagem Docker.

    sn_itom_pattern.k8s_create_schedule_enabled

    O sinalizador de recurso que pode ser habilitado/desabilitado nas propriedades do sistema, que é responsável por controlar a execução do padrão. Quando habilitado, ele cria cronogramas de descoberta, independentemente do novo valor da propriedade.

    Booliano falso
    sn_itom_k8s_run_cloud_discovery Quando habilitada, esta propriedade executa padrões do k8s em nuvem, descobrindo clusters do k8s sem criar cronogramas automáticos. Booliano falso
    MID Server

    sn_itom_pattern.k8s_midserver

    [Padrão]

    Exemplo: nome de MID Server válido

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_midserver

    [Com base no nível de conta de serviço]

    Exemplo: nome de MID Server válido

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_midserver

    [Baseado no nome do Cluster]

    Exemplo: nome de MID Server válido

    Cadeia de caracteres

    sn_itom_pattern.kubernetes_collect_volume

    Quando a propriedade é definida como verdadeira, os dados do volume do Kubernetes [cmdb_ci_kubernetes_volume] são preenchidos.

    Cadeia de caracteres falso
    Alias de credencial

    sn_itom_pattern.k8s_ cred_alias

    [Padrão]

    Exemplo: nome do alias de credencial

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_alias

    [Com base no nível de conta de serviço]

    Exemplo: nome do alias de credencial válido.

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_alias

    [Baseado no nome do Cluster]

    Exemplo: nome do alias de credencial válido.

    Cadeia de caracteres
    URL do Prometheus

    sn_itom_pattern.k8s_ prometheusUrl

    [Padrão]

    Exemplo: URL válido do Prometheus

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_prometheusUrl

    [Com base no nível de conta de serviço]

    Exemplo: URL válido do Prometheus

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_prometheusUrl

    [Baseado no nome do Cluster]

    Exemplo: URL válido do Prometheus

    Cadeia de caracteres

    sn_itom_pattern.k8s_ run

    [Execução de Programação do Discovery compatível - Diariamente, Sob Demanda, Dias da semana, Fins de Semana, Último Dia do Mês, Fim do trimestre do calendário]

    Exemplo: diariamente

    Cadeia de caracteres

    sn_itom_pattern.k8s_batch_count

    [Refere-se a quantas programações serão executadas em lote - padrão definido como 5]

    Exemplo: 5 (Número de programações a serem executadas no lote)

    Inteiro 5

    sn_itom_pattern.k8s_schedule_batch_delay

    [mantém registros da diferença de tempo entre o valor de dois lotes em segundos]

    Exemplo: 300 (em segundos)

    Inteiro

    sn_itom_pattern.k8s_run_time

    [mantém registros da hora atual de um lote]

    Se esta propriedade estiver definida, você poderá usar o mesmo ou usar nosso tempo dinâmico, que será 5 minutos após o tempo atual do sistema. Os valores contêm o formato HH:MM:SS

    Exemplo: 10:11:12 (HH:MM:SS)

    Cadeia de caracteres
    Nota:
    <service_account_id> é o nome do ID da conta em Contas de serviço em nuvem. Para obter mais informações, consulte: Criar cronogramas para descobrir recursos de nuvem no Descoberta na nuvem.

    Descoberta sem credencial ou MID em cluster do Kubernetes

    Pré-requisitos do Kubernetes para descoberta sem credenciais:

    Implante o MID Server em contêiner no cluster do Kubernetes. Configurar credenciais do Kubernetes é desnecessário, já que o MID Server no cluster do Kubernetes descobre automaticamente o servidor de API e se autentica.

    Tabela 3. Configuração de atributos de padrão de execução para descoberta sem credenciais
    Campo Descrição
    URL

    Insira qualquer um dos seguintes valores no campo URL:

    https://cluster

    Ou

    https://kubernetes.default.svc

    namespace

    Os namespaces que o sistema passa na Kubernetes Configuração de descoberta. Insira um dos seguintes valores:

    • Namespace individual: insira o namespace e, em seguida, "kube-system". Por exemplo: dev,kube-system
    • O valor padrão. Insira:default,kube-system
    • Namespaces de várias pilhas: insira os namespaces, use uma vírgula (,) para separar os valores e insira "kube-system". Por exemplo: automation,application,test,kube-system
    • Todos os namespaces: use um asterisco (*) para inserir todos os namespaces.
    cluster_name Insira um nome exclusivo.

    Dados coletados pelo Descoberta durante a descoberta horizontal

    Tabela e campo Descrição
    Cluster do Kubernetes [cmdb_ci_kubernetes_cluster]
    Nome O nome do líder do kube-controller-manager.
    K8s_uid O UID do namespace do kube-system [versões compatíveis: 1.0.92 e posteriores]
    ip_address O identificador do host_ip do apiserver Kubernetes.
    port

    O identificador da porta do apiserver do Kubernetes.

    namespace Este valor mostra os namespaces que o sistema informou na configuração do Discovery do Kubernetes.
    event_timestamp O carimbo de data/hora do último evento criado neste cluster do Kubernetes no momento da descoberta.
    Nó do Kubernetes [cmdb_ci_kubernetes_node] O aspecto virtual do nó do Kubernetes. Os dados relacionados ao aspecto físico do nó do Kubernetes são armazenados em servidor Linux.
    nome O nome do nó do Kubernetes. O formato pode ser apenas o nome da máquina ou o nome completo que consiste no nome e no nome do host: <name>.<hostname>.
    k8s_uid O identificador para o UUID do nó do Kubernetes.
    cluster O nome do cluster que contém este recurso.
    operational_status O status operacional do nó do Kubernetes.
    Serviço do Kubernetes [cmdb_ci_kubernetes_service]
    nome O nome do serviço do Kubernetes.
    seletor Uma lista delimitada por vírgulas dos seletores de rótulo especificados na configuração do Kubernetes que são usados para selecionar pods de destino.
    namespace O namespace do Kubernetes ao qual este serviço do Kubernetes pertence.
    k8s_uid O UUID de serviço do Kubernetes.
    cluster O nome do cluster que contém este recurso.
    Pod do Kubernetes [cmdb_ci_kubernetes_pod]
    nome O nome do pod do Kubernetes.
    k8s_uid O UUID do pod do Kubernetes.
    resourceVersion A versão do recurso do pod do Kubernetes.
    namespace O namespace do Kubernetes ao qual este pod do Kubernetes pertence.
    cluster O nome do cluster que contém este recurso.
    estado

    O status do pod Kubernetes : Pendente, Em execução, Êxito, Com falha e Desconhecido.

    Cronjob do Kubernetes [cmdb_ci_kubernetes_cronjob]
    nome O nome do Kubernetes cronjob
    namespace O namespace do Kubernetes ao qual este pod do Kubernetes pertence.
    k8s_uid O UUID do cronjob do Kubernetes.
    cluster O nome do cluster que contém este recurso.
    Trabalho do Kubernetes [cmdb_ci_kubernetes_job]
    nome O nome do trabalho do Kubernetes
    namespace O namespace do Kubernetes ao qual este trabalho do Kubernetes pertence.
    k8s_uid O UUID do trabalho do Kubernetes.
    cluster O nome do cluster que contém o trabalho do Kubernetes.
    Daemonset do Kubernetes [cmdb_ci_kubernetes_daemonset]
    nome O nome do daemonset do Kubernetes.
    namespace O namespace do Kubernetes ao qual este daemonset do Kubernetes pertence.
    k8s_uid O UUID do daemonset do Kubernetes.
    cluster O nome do cluster que contém este recurso.
    pods_avail O número de pods disponíveis.
    pods_failed O número de pods na fase Com falha.
    pods_running O número de pods na fase Em execução.
    pods_succeeded O número de pods na fase Com êxito.
    pods_waiting O número de pods na fase Aguardando.
    Ingresso do Kubernetes [cmdb_ci_kubernetes_ingress]
    nome O nome do Kubernetes ingresso
    namespace O namespace do Kubernetes ao qual este ingresso do Kubernetes pertence.
    k8s_uid O UID do ingresso do Kubernetes
    cluster O nome do cluster que contém este recurso.

    Implantação do Kubernetes [cmdb_ci_kubernetes_deployment]

    Replicaset do Kubernetes [cmdb_ci_kubernetes_replicaset]

    Controlador de replicação do Kubernetes [cmdb_ci_kubernetes_replicationcontroller]

    Statefulset do Kubernetes [cmdb_ci_kubernetes_statefulset]

    nome O nome deste recurso
    namespace O namespace do Kubernetes ao qual este recurso pertence.
    K8s_uid O UID do Kubernetes deste recurso
    cluster O nome do cluster que contém este recurso.
    total_replicas Número de réplicas neste recurso
    desired_replicas O número de réplicas na fase desejada
    available_replicas Número de réplicas disponíveis
    unavailable_replicas Número de réplicas na fase Indisponível
    updated_replicas Número de réplicas atualizadas
    Contêiner do Docker [cmdb_ci_docker_container] O componente que executa a imagem do Docker.
    container_id O identificador exclusivo do Kubernetes contêiner do docker

    Nos casos em que registros duplicados são criados, as tarefas de desduplicação aparecem quando a descoberta é executada. Para obter informações sobre como resolver essas tarefas, consulte o artigo Tornar o identificador de contêiner do Docker independente [KB1443042] em ServiceNow® Base de conhecimento.

    namespace O namespace do Kubernetes ao qual este contêiner do docker do Kubernetes pertence.
    Imagem do docker [cmdb_ci_docker_image] Um pacote executável de uma aplicação e seu software relacionado que pode ser instanciado por um contêiner do docker
    image_id O identificador da Kubernetes imagem do docker
    name O nome da imagem do docker do Kubernetes.
    image_url O URL para baixar a imagem do docker.
    namespace O namespace do Kubernetes ao qual esta imagem do docker do Kubernetes pertence.
    Servidor Linux [cmdb_ci_linux_server] O servidor que hospeda o nó do Kubernetes.
    name O nome do servidor Linux que alimenta o nó do Kubernetes.
    hostname O nome do host do servidor Linux.
    os O sistema operacional implantado neste servidor Linux.
    kernel_release A versão do sistema operacional do kernel Linux implantado neste servidor Linux.
    ram O tamanho da RAM instalada neste servidor Linux.
    ip_address O endereço IP do servidor Linux.
    Valor da chave [cmdb_key_value] Este item de configuração contém rótulos do Kubernetes. Rótulos são pares de chave/valor anexados a objetos, como pods.
    chave A chave do parâmetro do Key Value do pod do Kubernetes ou serviço do Kubernetes.
    value O valor do parâmetro do Key Value do pod do Kubernetes ou serviço do Kubernetes.
    Volume do Kubernetes [cmdb_ci_kubernetes_volume]
    k8s_uid O UUID do volume do Kubernetes.
    mount_path O caminho para acessar este volume do Kubernetes.
    nome O nome do volume do Kubernetes.
    namespace O namespace do Kubernetes ao qual este volume do Kubernetes pertence.
    cluster O nome do cluster que contém este recurso.
    volume_id O ID do volume do Kubernetes.
    Configuração implantada do OpenShift [cmdb_ci_openshift_dep_conf]​
    nome O nome da configuração de implantação do OpenShift.
    namespace O nome do namespace que contém a configuração de implantação.
    k8s_uid O UUID do volume do Kubernetes.
    url O URL da configuração implantada do OpenShift.
    Configuração de compilação do OpenShift [cmdb_ci_openshift_build_conf]
    nome O nome da configuração de compilação do OpenShift.
    namespace O nome do namespace do OpenShift que contém a configuração de compilação.
    k8s O UUID do volume do Kubernetes.
    url O URL da configuração de compilação do OpenShift.
    Source2Image do OpenShift [cmdb_ci_openshift_source_2_image]
    name O nome da imagem de origem do OpenShift.
    to Imagem relacionada.
    parent_id O ID da imagem de origem do OpenShift.
    Rota do OpenShift [cmdb_ci_openshift_route]
    nome O nome da rota do OpenShift.
    namespace O nome do namespace que contém a rota do OpenShift.
    k8s_uid O UUID do volume do Kubernetes.
    url O URL da rota do OpenShift.
    Host O host de destino da rota do OpenShift.
    port A porta de destino da rota do OpenShift.
    Grupo do OpenShift [cmdb_ci_openshift_group]
    name O nome do grupo do OpenShift.
    k8s_uid O UUID do volume do Kubernetes.
    url O URL do Grupo do OpenShift.
    Usuário do OpenShift [cmdb_ci_openshift_user]
    name O nome do usuário do OpenShift.
    k8s_uid O UUID do volume do Kubernetes.
    url O URL do usuário do OpenShift.
    full_name O nome completo do usuário do OpenShift.
    Projeto do OpenShift [cmdb_ci_openshift_project]
    name O nome do projeto do OpenShift.
    k8s_uid O UUID do volume do Kubernetes.
    url O URL do projeto do OpenShift.
    Imagem do OpenShift [cmdb_ci_openshift_images]
    name O nome da imagem do OpenShift.
    k8s_uid O UUID do volume do Kubernetes.
    url O URL da imagem do OpenShift.
    docker_image_metadata_id O ID da imagem do docker.
    docker_image_metadata_parent_id O ID do ID primário da imagem.
    arch Arquitetura da imagem.
    size O tamanho da imagem.
    hostname O nome do host relacionado à imagem.
    Fluxo de imagens do OpenShift [cmdb_ci_openshift_images_stream]
    name O nome do Fluxo de imagens do OpenShift.
    k8s_uid O UUID do volume do Kubernetes.
    url O URL do fluxo de imagens do OpenShift.
    namespace O nome do namespace que contém o fluxo de imagens do OpenShift.
    Repositório de imagens do Docker do OpenShift [cmdb_ci_openshift_docker_images_repository]
    nome O nome do repositório de imagens do docker do OpenShift.
    parent_ID O ID do sistema primário.
    Namespace [cmdb_ci_kubernetes_namespace]
    nome O nome do namespace do Kubernetes.
    estado

    As fases de namespace Kubernetes : Ativo ou Finalizando.

    Esses dados são coletados pela seção de extensão Collect Container Repository.
    Tabela e campo Descrição
    Repositório de contêineres [cmdb_ci_container_repository]
    Nome [nome] O nome do repositório de contêineres.
    Entrada do repositório de contêineres [cmdb_ci_container_repository_entry]
    Nome [nome] O nome da entrada do repositório de contêineres.
    Categoria [categoria] A categoria da entrada do repositório de contêineres.
    O gráfico ilustra ICs que fazem parte da descoberta do Kubernetes.
    Nota:
    Este mapa de Exibição de dependência foi simplificado para maior clareza. Suas implantações do Kubernetes podem conter muito mais ICs.
    Figura 1. Componentes da Kubernetes implantação

    Componentes da implantação do Kubernetes
    Figura 2. Componentes da implantação do Kubernetes, incluindo OpenShift

    Componentes da implantação do Kubernetes, incluindo o OpenShift

    Relacionamentos de IC coletados pelo padrão Kubernetes

    Esses relacionamentos são criados pelo padrão [ Kubernetes :
    IC Relacionamento IC
    Cluster do Kubernetes [cmdb_ci_kubernetes_cluster] Contém :: Contido por

    Serviço do Kubernetes [cmdb_ci_kubernetes_service]

    Contém :: Contido por Pod do Kubernetes [cmdb_ci_kubernetes_pod]
    Contém :: Contido por Ingresso do Kubernetes [cmdb_ci_kubernetes_ingress]
    Contém :: Contido por

    Namespace do Kubernetes [cmdb_ci_kubernetes_namespace]

    Contains::Contained By [cmdb_ci_openshift_source_2_image]
    Contains::Contained By Grupo do OpenShift [cmdb_ci_openshift_group]
    Contém :: Contido por Usuário do OpenShift [cmdb_ci_openshift_user]
    Contém :: Contido por Projeto do OpenShift [cmdb_ci_openshift_project]
    Contains::Contained By Imagem do OpenShift [cmdb_ci_openshift_images]
    Contains::Contained By Repositório de imagens do Docker do OpenShift[cmdb_ci_openshift_docker_images_repository]
    Cluster of::Cluster Nó do Kubernetes [cmdb_ci_kubernetes_node]
    Manages::Managed by Servidor Linux [cmdb_ci_linux_server]
    Contido por: contém Grupo de recursos [cmdb_ci_resource_group]
    Pod do Kubernetes [cmdb_ci_kubernetes_pod] Contains::Contained By Contêiner do Docker [cmdb_ci_docker_container]
    Contains::Contained By Imagem do docker [cmdb_ci_docker_image]
    Contém :: Contido por Volume do Kubernetes [cmdb_ci_kubernetes_volume]

    Carga de trabalho do Kubernetes [cmdb_ci_kubernetes_workload]

    Hosted on::Hosts Cluster do Kubernetes [cmdb_ci_kubernetes_cluster]
    Serviço do Kubernetes [cmdb_ci_kubernetes_service] Provides::Provided By

    Carga de trabalho do Kubernetes [cmdb_ci_kubernetes_workload]

    Implantação do Kubernetes [cmdb_ci_kubernetes_deployment]

    Owns::Owned By

    Replicaset do Kubernetes [cmdb_ci_kubernetes_replicaset]

    Replicaset do Kubernetes [cmdb_ci_kubernetes_replicaset]

    iInstantiates:: Instantiated By Pod do Kubernetes [cmdb_ci_kubernetes_pod]
    Carga de trabalho do Kubernetes [cmdb_ci_kubernetes_workload] Provided By::Provides To Serviço do Kubernetes [cmdb_ci_kubernetes_service]
    Implantação do Kubernetes [cmdb_ci_kubernetes_deployment] Hosted on::Hosts Cluster do Kubernetes [cmdb_ci_kubernetes_cluster]
    Daemonset do Kubernetes [cmdb_ci_kubernetes_daemonset] Hosted on::Hosts Cluster do Kubernetes [cmdb_ci_kubernetes_cluster]
    Statefulset do Kubernetes [cmdb_ci_kubernetes_statefulset] Hosted on::Hosts Cluster do Kubernetes [cmdb_ci_kubernetes_cluster]
    Namespace do Kubernetes [cmdb_ci_kubernetes_namespace]​ Contains::Contained By Configuração implantada do OpenShift [cmdb_ci_openshift_dep_conf​]
    Contains::Contained By Configuração de compilação do OpenShift [cmdb_ci_openshift_build_conf]
    Contains::Contained By Rota do OpenShift [cmdb_ci_openshift_route]
    Contains::Contained By Fluxo de imagens do OpenShift [cmdb_ci_openshift_images_stream]
    Imagem do docker [cmdb_ci_docker_image] Instantiates::Instantiated by Contêiner do Docker [cmdb_ci_docker_container]
    Servidor Linux [cmdb_ci_linux_server] Contém :: Contido por Pod do Kubernetes [cmdb_ci_kubernetes_pod]
    Runs::Runs on Contêiner do Docker [cmdb_ci_docker_container]
    Hosts::Hosted on Nó do Kubernetes [cmdb_ci_kubernetes_node]
    Configuração de implantação do OpenShift [cmdb_ci_openshift_dep_conf​] Contém :: Contido por [cmdb_ci_config_file_tracked​]
    A seção de extensão Collect Container Repository do padrão do Kubernetes identifica esses relacionamentos.
    IC Relacionamento IC
    Imagem do docker [cmdb_ci_docker_image] Provisionado de:: Provisionado Entrada do repositório de contêineres [cmdb_ci_container_repository_entry]
    Entrada do repositório de contêineres [cmdb_ci_container_repository_entry] Hospedado em: hosts Repositório de contêineres [cmdb_ci_container_repository]

    Relacionamentos de IC coletados pela extensão da Malha de serviço do Istio

    Pré-requisitos da extensão da Malha de serviço do Istio:

    • Certifique-se de que os componentes da Malha de serviço do Istio e do Prometheus estejam configurados no cluster do Kubernetes.
    • Certifique-se de que o Prometheus descubra as informações de conexão de serviço usando o comando queryistio_requests_total.
    • Certifique-se de que os serviços de aplicações estejam conectados e verifique o fluxo de tráfego de serviço a serviço no gráfico de Kiali.

    Para obter mais informações sobre a aplicação Bookinfo, consulte: https://istio.io/latest/docs/examples/bookinfo/

    IC Relacionamento IC
    Serviço do Kubernetes [cmdb_ci_kubernetes_servi ce] Connects to::Connected by Serviço do Kubernetes [cmdb_ci_kubernetes_servi ce]

    Relacionamentos de IC coletados pelo padrão Evento do Kubernetes

    Esses relacionamentos são criados para oferecer suporte à descoberta do evento do Kubernetes:
    IC Relacionamento IC
    Cluster do Kubernetes [cmdb_ci_kubernetes_cluster] Contém :: Contido por

    Serviço do Kubernetes [cmdb_ci_kubernetes_service]

    Contém :: Contido por Pod do Kubernetes [cmdb_ci_kubernetes_pod]
    Cluster of::Cluster Nó do Kubernetes [cmdb_ci_kubernetes_node]
    Manages::Managed by [cmdb_ci_linux_server]
    Pod do Kubernetes [cmdb_ci_kubernetes_pod] Contains::Contained By Contêiner do Docker [cmdb_ci_docker_container]
    Contains::Contained By Imagem do docker [cmdb_ci_docker_image]
    Contém :: Contido por Volume do Kubernetes [cmdb_ci_kubernetes_volume]
    Imagem do docker [cmdb_ci_docker_image] Instantiates::Instantiated by Contêiner do Docker [cmdb_ci_docker_container]
    Servidor Linux [cmdb_ci_linux_server] Contém :: Contido por Pod do Kubernetes [cmdb_ci_kubernetes_pod]
    Runs::Runs on Contêiner do Docker [cmdb_ci_docker_container]
    Hosts::Hosted on Nó do Kubernetes [cmdb_ci_kubernetes_node]

    Dados coletados pelo Mapeamento de serviços durante a descoberta baseada em marcadores

    O Mapeamento de serviços usa descoberta baseada em marcadores para criar mapas de serviço de aplicativos, incluindo os componentes do Kubernetes. O Mapeamento de serviços vem com os seguintes relacionamentos de IC pré-configurados, que são usados para descoberta baseada em marcadores. Esses relacionamentos de IC estão disponíveis na versão 1.0.68 em ServiceNow Store.
    IC Relacionamento IC
    Serviço do Kubernetes [cmdb_ci_kubernetes_service] Contido por: contém Cluster do Kubernetes [cmdb_ci_kubernetes_cluster]
    Projeto do OpenShift [cmdb_ci_openshift_project] Contido por: contém Cluster do Kubernetes [cmdb_ci_kubernetes_cluster]
    Pod do Kubernetes [cmdb_ci_kubernetes_pod] Contido por: contém Cluster do Kubernetes [cmdb_ci_kubernetes_cluster]
    Pod do Kubernetes [cmdb_ci_kubernetes_pod] Cluster :: Cluster de Serviço do Kubernetes [cmdb_ci_kubernetes_service]
    Namespace do Kubernetes [cmdb_ci_kubernetes_namespace]​ Contém :: Contido por Configuração implantada do OpenShift [cmdb_ci_openshift_dep_conf​]
    Namespace do Kubernetes [cmdb_ci_kubernetes_namespace]​ Contém :: Contido por Configurações de compilação do OpenShift [cmdb_ci_openshift_build_conf]
    Namespace do Kubernetes [cmdb_ci_kubernetes_namespace]​ Contém :: Contido por Rota do OpenShift [cmdb_ci_openshift_route]
    Namespace do Kubernetes [cmdb_ci_kubernetes_namespace]​ Contém :: Contido por Fluxo de imagens do OpenShift [cmdb_ci_openshift_images_stream]

    Painel do Kubernetes

    Depois que Descoberta terminar de descobrir os componentes da implantação Kubernetes, você poderá navegar até Todos > Configuração > Kubernetes e exiba as estatísticas sobre Kubernetes componentes descobertos. Para obter mais informações, consulte Painel do Kubernetes.

    Depois de atualizar para a Espaço do administrador da Descoberta versão 1.3.1 (Store de agosto de 2024), você pode navegar até Espaços > Espaço do administrador da Descoberta > Informações e usar o painel aprimorado.

    Solução de problemas

    Se o processo de mapeamento não prosseguir conforme o esperado, siga as sugestões a seguir.
    Sintoma Causa Solução
    A Descoberta falha. A mensagem de descoberta contém as informações sobre um erro causado pelo tempo limite de REST. Há muitos ICs enviando a resposta da chamada REST na implantação. O MID Server não pode processar a resposta da chamada REST sem exceder o limite de tempo controlado pelo parâmetro mid.sa.cloud.request_timeout. Por padrão, o parâmetro mid.sa.cloud.request_timeout é definido como 30000 milissegundos.
    Aumente o valor deste parâmetro no relevante MID Server e execute a descoberta novamente.
    Nota:
    Se a lista relacionada Parâmetros de configuração para o MID Server relevante não mostrar este parâmetro, talvez seja necessário adicioná-lo.
    O Designer de padrões falha durante uma sessão de depuração. A mensagem do Designer de padrões contém informações sobre um erro causado por um tempo limite. O Designer de padrões falha devido a um tempo limite durante a depuração de padrão (e não durante a descoberta). Por padrão, o parâmetro sa.debugger.max_timeout é definido como 240 segundos.

    Aumente o valor desse parâmetro no MID Server relevante.

    Para executar o padrão Kubernetes no modo de depuração, consulte KB0832567 para obter informações operacionais.