Kubernetes descoberta

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 24 min. de leitura
  • . ServiceNow Visibilidade do ITOMdescobertas Kubernetes e. OpenShiftcomponentes e cria serviços de aplicações que os contêm . Descobertatambém encontra Kubernetese atualiza frequentemente o. CMDBpara refletir a dinâmica Kubernetesambiente.

    Descobertausa o. Kubernetespadrão e suas seções de extensão para descobrir Kubernetescomponentes para Kubernetesversão 1,21:
    • . Collect OpenShift info seção de extensão do Kuberneteso padrão descobre o. OpenShiftcomponentes do Kubernetesimplantação. . OpenShiftA seção de extensão de configuração de compilação está disponível na Store versão 1,0.53.
    • . Service Mesha extensão descobre detalhes do service mesh. Essas informações permitem que o padrão crie relações de serviço para serviço, mostradas como Conecta-se a::conectado. A descoberta de service mesh requer a implantação do Istio no cluster do K8s (Kubernetes). A seção de extensão do Service Mesh está disponível em Classes de extensão do Kubernetes . É compatível com Now Platformusando o. Madridversão ou posterior.
    • . Collect Container Repositorye a seção de extensão encontra registros de contêiner e imagens nesses registros.

    Além disso, Descobertausa o. KubernetesPadrão de evento para descobrir eventos Kubernetescomponentes para versões Kubernetesversão 1,21.

    A partir da versão 1.0.68 em diante ServiceNow Store, Mapeamento de serviçosPode usar relacionamentos de IC para adicionar o. Kubernetescomponentes para serviços de aplicações durante a descoberta baseada em marcador.

    Descoberta usa os seguintes padrões para descobrir o todo KubernetesInfraestrutura 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 sobre todos Kubernetese crie uma programação sem servidor para cada cluster. Quando o cluster é excluído, o cronograma é marcado como inativo. Esse recurso elimina a sobrecarga de criar e gerenciar várias credenciais e cronogramas de descoberta sem servidor por cluster. Os padrões de infraestrutura em nuvem são acionados por meio da descoberta de 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 pré-requisitos para KubernetesDescoberta de infraestrutura em nuvem, consulte abaixo .
    Nota:
    Executando servidor automático sem servidor KubernetesOs cronogramas buscam o token do portador. Não é necessário adicionar credenciais.
    Execute as etapas a seguir para garantir que Descobertapode usar o. padrão a ser encontrado com sucesso Kubernetes.
    1. Implantar a aplicação de padrões de descoberta e mapeamento de serviços mais recente de ServiceNow Store.
    2. Em Kubernetesplataforma, encontre os parâmetros a serem configurados Kubernetesdescoberta:
      • Encontre o URL do servidor kubeapi:
        1. Em Kubernetes, execute o seguinte comando:

          kubectl cluster-info

        2. Na saída, encontre a linha que indica o URL do servidor kubeapi. Por exemplo, Kuberneteso plano de controle está em execução em

          https://10.154.144.146:443

      • Encontre os namespaces do servidor kubeapi:
        1. Em Kubernetesplataforma, execute este comando:

          kubectl obter namespaces

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

          exibição de configuração do kubectl

        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:
          Em um determinado ambiente, exibição de configuração do kubectl o comando não está mostrando os detalhes esperados, use compatível do Kuberneteso administrador deve buscar os detalhes do nome de usuário e da senha.
      • Encontre o token do portador válido com as permissões apropriadas:
        1. Se você não tiver o nome do token padrão, use o comando: kubectl descreve segredo .
        2. T a saída mostra todas as contas e todos os tokens. Encontre o token válido:

          Onde kubectl é o genérico Kubernetesconta, descreva é o método kubectl genérico.

          . segredo o parâmetro reflete isso em seu Kubernetescluster, o token padrão é protegido por contê-lo dentro do objeto do tipo segredo .

          kubectl descreve segredo A saída do comando está no formato codificado BASE64.

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

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

        4. A saída mostra todos os tokens existentes para isso Kubernetesconta.

          Escolha um token para usar na configuração Kubernetescredenciais no ServiceNowplataforma.

    3. Certifique-se de que o Servidor de API esteja acessível a partir do MID Server para obter sucesso Kubernetesdescoberta.
    4. Certifique-se de que o usuário tenha configurado no Kubernetesa plataforma tem 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/daemsets
      • https://<url>/api/apps/v1/replicasets
      • https://<url>/apis/batch/v1/cronjobs
      • https://<url>/apis/batch/v1/jobs
    5. Para descobrir o. OpenShiftcomponentes do Kubernetesimplantação, certifique-se de que o usuário tenha configurado no Kubernetesa plataforma tem 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 do service mesh:
      • Implante o Istio no cluster do K8s.
      • Forneça o URL do Prometheus.
      • Configure o Prometheus para extrair métricas do Istio.
    6. Ativar Obtenha arquivos de configuração do Kubernetes extensão para:
      • Descobrir arquivos de configuração.
      • Crie arquivos de configuração rastreados.
      • Mapeie as cargas de trabalho e serviços dos arquivos de configuração com um relacionamento.
      Nota:
      O conteúdo de arquivos rastreados está no formato JSON da versão 1,0.92. O conteúdo de arquivos rastreados está no formato YAML na versão 1.0.91 e anteriores.
    7. Crie o. Kubernetescredenciais no ServiceNowplataforma:
      1. Em ServiceNowplataforma, navegue até Tudo > Descoberta > Credenciais.
      2. Selecione Novo.
      3. Selecione 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 desta credencial.
        Token do portador Para autenticação avançada usando um token do portador, insira o token do portador que Descobertausos 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 de token do portador Para autenticação avançada usando um token de portador, marque esta caixa de seleção.
        Alias de credencial Configure o alias para usar o. Kubernetescredencial para dispositivos e aplicações diferentes de Kubernetes. Você também usa este alias para definir um cronograma de descoberta sem servidor para descobrir o. Kubernetesimplantação.
        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. Typepara Credencial .
        5. Clique com o botão direito do mouse no cabeçalho do formulário e selecione Salvar , em seguida, selecione 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. Em Kubernetesformulário credenciais, selecione Atualizar .
    8. Crie um cronograma de descoberta sem servidor para Kubernetespadrão.
      Crie e defina o padrão de execução sem servidor conforme descrito na documentação do produto. Configure os parâmetros exigidos pelo Kubernetespadrão da seguinte forma:
      Tabela 1. Configurando atributos de padrão de execução
      Campo Descrição
      URL O identificador do nome de host, IP ou FQDN e a porta do Kubernetesservidor de apiserver. 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 no KubernetesConfiguração da Descoberta. Insira um dos seguintes valores:
      • Namespace individual: Insira o namespace e, em seguida, "kube-system". Por exemplo: kube-system
      • O valor padrão: Enter padrão, kube-system
      • Namespaces de várias pilhas: Insira os namespaces, use uma vírgula (,) para separar os valores e insira "kube-system". Por exemplo: aplicação,teste,kube-system
      • Todos os namespaces: Use um asterisco (*) para inserir todos os namespaces
      alias de credenciais O alias associado ao criado anteriormente Kubernetescredenciais.
      nome do cluster O nome do Kubernetescluster, no seguinte formato: <serviceaccountid> <space> <clustername>.
      provedor O provedor de nuvem: GCP, AWS ou Azure.
      cluster_resource_id Exemplo de ID de recurso do cluster:
      • Azure KubernetesID do recurso.
      • ARN do cluster AWS.
      • GCP- nome global do cluster.
    9. Crie um cronograma de descoberta sem servidor para KubernetesPadrão de evento. 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/hora. Quanto mais frequente o padrão for executado, menos atualizações no IRE do CMDB serão necessárias.

      Crie um padrão de execução sem servidor para o cronograma de descoberta e atribua-o ao KubernetesPadrão de eventos. Configure os parâmetros exigidos pelo Kubernetespadrão conforme descrito em Configurando atributos de padrão de execução.

    10. Para incluir componentes descobertos em instâncias de serviço, habilite relacionamentos de IC usados na descoberta com base em marcadores pelo 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 para KubernetesDescoberta de infraestrutura em nuvem

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

    1. Em ServiceNowinstância, configure um Google Cloud Platform (GCP)conta de serviço com credenciais e permissões válidas.
    2. Em GCPinfraestrutura, configure o. MID ServerCom acesso total a todas as APIs de nuvem: Defina escopos de acesso à API de nuvem como "Permitir acesso total a todas as APIs de 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 válido MID Servernome.
      • sn_itom_pattern.k8s_create_schedule_enabled: Defina o valor como verdadeiro .
        Nota:
        Habilitar a propriedade sn_itom_pattern.k8s_create_schedule_enabled cria automaticamente uma programação sem servidor para seus clusters de nuvem, eliminando a necessidade de programação manual. Se você tiver uma programação manual e quiser convertê-la em automática, habilite a propriedade. Sua programação manual será atualizada; nenhuma programação adicional será criada.
    4. Criar e executar Google Cloud Descoberta
      Nota:

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

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

      A configuração do gcloud na instância do MID Server concede acesso ao cluster do GKE para buscar o token.

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

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

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

    2. Executar Amazon Elastic Kubernetes Service (EKS)Descoberta de cluster de uma de duas maneiras: Usando o. AWSInterface de linha de comando (CLI) ou sem usar o. AWSCLI. Primeiro, defina a propriedade do sistema sn_itom_pattern.k8s_aws_cli_to_generate_tokenpara usar o modelo escolhido. Esta propriedade do sistema está definida como verdadeiro por padrão.

      • Defina esta propriedade do sistema como verdadeiro para usar AWSCLI para gerar um token.

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

      1. Executar Amazon Elastic Kubernetes Service (EKS)descoberta de cluster usando AWSCLI:

        1. Configure o. MID Servercom o. AWSCLI configurada. Configurando AWSAs credenciais da CLI concedem acesso ao Amazon Elastic Kubernetes Service (EKS)cluster.

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

          Configurando o. AWSUsuário/função da CLI no MID Servera instância concede acesso ao Amazon Elastic Kubernetes Service (EKS)cluster para gerar o token.

      2. Executar Amazon Elastic Kubernetes Service (EKS)descoberta de cluster sem usar AWSCLI:

        Nota:

        Este recurso é compatível com Padrões de descoberta e mapeamento de serviçosVersão 1.0.96 - Dezembro de 2022.

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

    3. Navegue até sys_properties.list e configure as seguintes propriedades:
      • sn_itom_pattern.k8s_midserver: Especifique um válido MID Servernome.
      • sn_itom_pattern.k8s_create_schedule_enabled: Defina o valor como verdadeiro .
        Nota:
        Habilitar a propriedade sn_itom_pattern.k8s_create_schedule_enabled cria automaticamente uma programação sem servidor para seus clusters de nuvem, eliminando a necessidade de programação manual. Se você tiver uma programação manual e quiser convertê-la em automática, habilite a propriedade. Sua programação manual será atualizada; nenhuma programação adicional será criada.
    4. Crie e execute um cronograma de Descoberta da Nuvem AWS.

    Para Microsoft Azure KubernetesServiços (AKS)- Kubernetesdescoberta de cluster, execute o seguinte:
    Nota:
    . KubernetesO padrão oferece suporte à descoberta de versões de cluster do AKS anteriores à versão 1,30.
    1. Atualize para o mais recente Padrões de descoberta e mapeamento de serviçosversão.
    2. Em ServiceNow, configure o. AzureConta de serviço com válido Azurepermissões e credenciais.
    3. Navegue até sys_properties.list e configure as seguintes propriedades:
      • sn_itom_pattern.k8s_midserver: Especifique um válido MID Servernome.
      • sn_itom_pattern.k8s_create_schedule_enabled: Defina o valor como verdadeiro .
        Nota:
        Habilitar a propriedade sn_itom_pattern.k8s_create_schedule_enabled cria automaticamente uma programação sem servidor para seus clusters de nuvem, eliminando a necessidade de programação manual. Se você tiver uma programação manual e quiser convertê-la em automática, habilite a propriedade. Sua programação manual será atualizada; nenhuma programação adicional será criada.
        .
    4. Se você não tiver contas locais com KubernetesE quiser melhorar a eficiência do padrão, navegue até MID Server > Propriedades e definir o. sn_itom_pattern.aks_fetch_local_ad_tokenpropriedade para falso .
    5. Execute um Azureprogramação de descoberta na nuvem.
    6. Configure o. MID Serverem Descobertaprograme 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 de cluster Descoberta programação MID Server

      Autenticação do MS Entra ID com KubernetesRBAC.

      Qualquer MID Server.

      Autenticação do MS Entra ID com AzureRBAC.

      Qualquer MID Server.

      Contas locais com KubernetesRBAC.

      Selecione MID Servercom o. AzureInterface de linha de comando (CLI) configurada. Configurando o. AzureAs credenciais da CLI concedem acesso ao cluster do AKS.

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

      Nota:
    Tabela 2. Outra configuração do 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 verdadeiro e executando descoberta: impeça a criação de registros duplicados excluindo todos Dockerregistros de imagem.

    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, apesar do novo valor de propriedade.

    Booliano falso
    sn_itom_k8s_run_cloud_discovery Quando habilitada, esta propriedade executa padrões K8s na nuvem, descobrindo clusters K8s sem criar cronogramas automáticos. Booliano falso
    Mid Server

    sn_itom_pattern.k8s_midserver

    [Padrão]

    Exemplo - Nome válido do MID Server

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_midserver

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

    Exemplo - Nome válido do MID Server

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_midserver

    [Com base no nome do cluster]

    Exemplo - Nome válido do MID Server

    Cadeia de caracteres

    sn_itom_pattern.kubernetes_collect_volume

    Quando a propriedade está definida como Verdadeiro , 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 da credencial

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_alias

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

    Exemplo: Nome de alias de credencial válido.

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_alias

    [Com base no nome do cluster]

    Exemplo: Nome de alias de credencial válido.

    Cadeia de caracteres
    URL do Prometheus

    sn_itom_pattern.k8s_ prometheusUrl

    [Padrão]

    Exemplo: URL válida do Prometheus

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_prometheusUrl

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

    Exemplo: URL válida do Prometheus

    Cadeia de caracteres

    sn_itom_pattern.k8s_<service_account_id>_<clustername>_prometheusUrl

    [Com base no nome do cluster]

    Exemplo: URL válida do Prometheus

    Cadeia de caracteres

    sn_itom_pattern.k8s_ execução

    [Execução do cronograma de descoberta compatível - Diariamente, sob demanda, dias da semana, fins de semana, mês último dia, fim do trimestre do calendário]

    Exemplo- Diariamente

    Cadeia de caracteres

    sn_itom_pattern.k8s_batch_count

    [Refere-se a quantos cronogramas executar em lote – padrão definido como 5]

    Exemplo - 5 (número de cronogramas a serem executados em 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ê pode usar a mesma ou pode usar nosso tempo dinâmico, que será 5 após o tempo atual do sistema. Os valores contêm no 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 de nuvem. Para obter mais informações, consulte: Crie cronogramas para descobrir recursos de nuvem em Descoberta na nuvem

    Kubernetes Descoberta sem credenciais ou mid-in-cluster

    Pré-requisitos para KubernetesDescoberta sem credenciais:

    Implantar o contêiner MID Serverpara Kubernetescluster. Configurando Kubernetesas credenciais são desnecessárias desde MID Serverem KubernetesO cluster descobre automaticamente o servidor de API e autentica.

    Tabela 3. Configurando 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 no KubernetesConfiguração da Descoberta. Insira um dos seguintes valores:

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

    Dados coletados por Descobertadurante a descoberta horizontal

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

    O identificador do Kubernetesporta do servidor de apiserver.

    namespace Este valor mostra os namespaces que o sistema passou no KubernetesConfiguração da Descoberta.
    event_timestamp O carimbo de data/hora do evento mais recente criado neste Kubernetescluster no momento da descoberta.
    Kubernetes Nó [cmdb_ci_kubernetes_node] O aspecto virtual do Kubernetesnó. Dados relacionados ao aspecto físico do Kuberneteso nó é armazenado em Linuxservidor.
    nome O nome do Kubernetesnó. O formato pode ser somente o nome da máquina ou o nome completo que consiste no nome e no nome do host: <name>.<hostname> .
    k8s_uid O identificador do KubernetesUUID do nó.
    cluster O nome do cluster que contém este recurso.
    operational_status O status operacional do Kubernetesnó.
    Kubernetes Serviço [cmdb_ci_kubernetes_service]
    nome O nome do Kubernetesserviço.
    seletor Uma lista delimitada por vírgulas dos seletores de rótulo especificados no Kubernetesconfiguração usada para selecionar pods de destino.
    namespace . Kubernetesnamespace para o qual este Kuberneteso serviço pertence.
    k8s_uid . KubernetesUUID do serviço.
    cluster O nome do cluster que contém este recurso.
    Kubernetes Pod [cmdb_ci_kubernetes_pod]
    nome O nome do Kubernetespod.
    k8s_uid . KubernetesUUID do pod.
    resourceVersion A versão do recurso do Kubernetespod.
    namespace . Kubernetesnamespace para o qual este Kuberneteso pod pertence.
    cluster O nome do cluster que contém este recurso.
    estado

    . Kubernetes Status do pod: Pendente, Em execução, Bem-sucedido, Falha, e. Desconhecido.

    Kubernetes Cronjob [cmdb_ci_kubernetes_cronjob]
    nome O nome do Kubernetescronjob
    namespace . Kubernetesnamespace para o qual este Kuberneteso pod pertence.
    k8s_uid . KubernetesUUID do cronjob.
    cluster O nome do cluster que contém este recurso.
    Kubernetes Trabalho [cmdb_ci_kubernetes_job]
    nome O nome do KubernetesTrabalho
    namespace . Kubernetesnamespace para o qual este Kuberneteso trabalho pertence.
    k8s_uid . KubernetesUUID do trabalho
    cluster O nome do cluster que contém Kubernetestrabalho.
    Kubernetes Daemonset [cmdb_ci_kubernetes_demonset]
    nome O nome do Kubernetesdaemonset.
    namespace . Kubernetesnamespace para o qual este Kuberneteso daemset pertence.
    k8s_uid . KubernetesUUID de daemonset.
    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 Falha.
    pods_running O número de pods na fase Em execução.
    pods_succeeded O número de pods na fase bem-sucedida.
    pods_waiting O número de pods na fase de espera.
    Kubernetes Entrada [cmdb_ci_kubernetes_ingresso]
    nome O nome do Kubernetesentrada
    namespace . Kubernetesnamespace para o qual este Kubernetesa entrada pertence.
    k8s_uid . KubernetesUID de entrada
    cluster O nome do cluster que contém este recurso.

    Kubernetes Implantação [cmdb_ci_kubernetes_deployment]

    Kubernetes Replicaset [cmdb_ci_kubernetes_replicaset]

    Kubernetes Controlador de replicação [cmdb_ci_kubernetes_replicationcontroller]

    Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset]

    nome O nome deste recurso
    namespace . Kubernetesnamespace ao qual este recurso pertence.
    K8s_uid . KubernetesUID 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 Kubernetescontê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 Tornando o identificador de contêiner docker independente [KB1443042] artigo no ServiceNow® Base de conhecimento.

    namespace . Kubernetesnamespace para o qual este Kuberneteso contêiner do docker 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 docker
    image_id O identificador do Kubernetesimagem da janela de encaixe
    nome O nome do Kubernetesimagem da janela de encaixe.
    image_url O URL para baixar a imagem do docker.
    namespace . Kubernetesnamespace para o qual este Kubernetesa imagem do docker pertence.
    Servidor Linux [cmdb_ci_linux_server] O servidor que hospeda o. Kubernetesnó.
    nome O nome do servidor Linux que aciona o. Kubernetesnó.
    nome do host O nome de host do servidor Linux.
    os O sistema operacional implantado neste servidor Linux.
    kernel_release A versão do sistema operacional do kernel Linux implantada neste servidor Linux.
    ram O tamanho da RAM instalada neste servidor Linux.
    ip_address O endereço IP do servidor Linux.
    Chave/Valor [cmdb_key_value] Este item de configuração contém Kubernetesrótulos. Os rótulos são pares de chave/valor anexados a objetos, como pods.
    chave A chave do Kubernetespod ou Kubernetesserviço Key Valueparâmetro.
    valor O valor de Kubernetespod ou Kubernetesserviço Key Valueparâmetro.
    Kubernetes Volume [cmdb_ci_kubernetes_volume]
    k8s_uid . KubernetesUUID do volume.
    mount_path O caminho para acessar isso Kubernetesvolume.
    nome O nome do Kubernetesvolume.
    namespace . Kubernetesnamespace para o qual este Kuberneteso volume pertence.
    cluster O nome do cluster que contém este recurso.
    volume_id O ID do Kubernetesvolume.
    OpenShift Configuração implantada [cmdb_ci_openshift_dep_conf] ​
    nome O nome do OpenShiftConfiguração de implantação.
    namespace O nome do namespace que contém a configuração de implantação.
    k8s_uid . KubernetesUUID do volume.
    URL O URL do OpenShiftconfiguração implantada.
    OpenShift Configuração de compilação [cmdb_ci_openshift_build_conf]
    nome O nome do OpenShiftcriar configuração.
    namespace O nome do OpenShiftnamespace que contém a configuração de compilação.
    k8s . KubernetesUUID do volume.
    URL O URL do OpenShiftcriar configuração.
    OpenShift Source2Image [cmdb_ci_openshift_source_2_image]
    nome O nome da imagem de origem do OpenShift.
    para Imagem relacionada.
    parent_id O ID do OpenShiftimagem de origem.
    OpenShift Rota [cmdb_ci_openshift_route]
    nome O nome do OpenShiftrota.
    namespace O nome do namespace que contém OpenShiftrota.
    k8s_uid . KubernetesUUID do volume.
    URL O URL do OpenShiftRota.
    Host O host de destino do OpenShiftrota.
    porta A porta de destino do OpenShiftrota.
    OpenShift Grupo [cmdb_ci_openshift_group]
    nome O nome do OpenShiftGrupo.
    k8s_uid . KubernetesUUID do volume.
    URL O URL do OpenShiftGrupo.
    OpenShift Usuário [cmdb_ci_openshift_user]
    nome O nome do OpenShiftusuário.
    k8s_uid . KubernetesUUID do volume.
    URL O URL do OpenShiftusuário.
    full_name O nome completo do OpenShiftusuário.
    OpenShift Projeto [cmdb_ci_openshift_project]
    nome O nome do OpenShiftprojeto.
    k8s_uid . KubernetesUUID do volume.
    URL O URL do OpenShiftProjeto.
    OpenShift Imagem [cmdb_ci_openshift_images]
    nome O nome do OpenShiftImagem.
    k8s_uid . KubernetesUUID do volume.
    URL O URL do OpenShiftImagem.
    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.
    tamanho O tamanho da imagem.
    nome do host O nome de host relacionado à imagem.
    OpenShift Fluxo de imagens [cmdb_ci_openshift_images_stream]
    nome O nome do OpenShiftFluxo de imagens.
    k8s_uid . KubernetesUUID do volume.
    URL O URL do OpenShiftFluxo de imagens .
    namespace O nome do namespace que contém OpenShiftfluxo de imagens.
    OpenShift Repositório de imagens do Docker [cmdb_ci_openshift_docker_images_repository]
    nome O nome do OpenShiftrepositório de imagens do docker.
    Parent_ID O ID do sistema primário.
    Namespace [cmdb_ci_kubernetes_namespace]
    nome O nome do KubernetesNamespace.
    estado

    . Kubernetes Fases do namespace: Ativo ou encerrando.

    Esses dados são coletados pelo Collect Container Repositoryseção de extensão.
    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 os ICs que fazem parte de Kubernetesdescoberta.
    Nota:
    Isso Visualizações de dependênciaso mapa foi simplificado para maior clareza. Seu KubernetesAs implantações podem conter muito mais ICs.
    Figura 1. Componentes do Kubernetesimplantação

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

    Componentes da implantação do Kubernetes, incluindo OpenShift

    Relacionamentos de IC coletados pelo padrão do Kubernetes

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

    Kubernetes Serviço [cmdb_ci_kubernetes_service]

    Contém::Contido por Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Contém::Contido por Kubernetes Entrada [cmdb_ci_kubernetes_ingresso]
    Contém::Contido por

    Kubernetes Namespace [cmdb_ci_kubernetes_namespace]

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

    Kubernetes Carga de trabalho [cmdb_ci_kubernetes_workload]

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

    Kubernetes Carga de trabalho [cmdb_ci_kubernetes_workload]

    Implantação do Kubernetes [cmdb_ci_kubernetes_deployment]

    ::Propriedade de

    Kubernetes Replicaset [cmdb_ci_kubernetes_replicaset]

    Kubernetes Replicaset [cmdb_ci_kubernetes_replicaset]

    IInstâncias:: Instanciado por Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Kubernetes Carga de trabalho [cmdb_ci_kubernetes_workload] Fornecido por::Fornece para Kubernetes Serviço [cmdb_ci_kubernetes_service]
    Kubernetes Implantação [cmdb_ci_kubernetes_deployment] Hosted on::Hosts Kubernetes Cluster [cmdb_ci_kubernetes_cluster]
    Kubernetes Daemonset [cmdb_ci_kubernetes_demonset] Hosted on::Hosts Kubernetes Cluster [cmdb_ci_kubernetes_cluster]
    Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset] Hosted on::Hosts Kubernetes Cluster [cmdb_ci_kubernetes_cluster]
    Kubernetes Namespace [cmdb_ci_kubernetes_namespace] ​ Contém::Contido por OpenShift Configuração implantada [cmdb_ci_openshift_dep_conf​]
    Contém::Contido por OpenShift Configuração de compilação [cmdb_ci_openshift_build_conf]
    Contém::Contido por OpenShift Rota [cmdb_ci_openshift_route]
    Contém::Contido por OpenShift Fluxo de imagens [cmdb_ci_openshift_images_stream]
    Imagem do docker [cmdb_ci_docker_image] Instancia::instanciado por Contêiner do docker [cmdb_ci_docker_container]
    Servidor Linux [cmdb_ci_linux_server] Contém::Contido por Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Execuções::execuções em Contêiner do docker [cmdb_ci_docker_container]
    Hosts::hospedado em Kubernetes Nó [cmdb_ci_kubernetes_node]
    OpenShift Configuração de implantação [cmdb_ci_openshift_dep_conf​] Contém::Contido por [cmdb_ci_config_file_tracked​]
    . Collect Container RepositoryA seção de extensão do padrão 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 do Istio Service Mesh

    Pré-requisitos para a extensão do Istio Service Mesh:

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

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

    IC Relacionamento IC
    Kubernetes Serviço [cmdb_ci_kubernetes_service] Connects to::Connected by Kubernetes Serviço [cmdb_ci_kubernetes_service]

    Relacionamentos de IC coletados pelo KubernetesPadrão de evento

    Esses relacionamentos são criados para oferecer suporte a. Kubernetesdescoberta de evento:
    IC Relacionamento IC
    Kubernetes Cluster [cmdb_ci_kubernetes_cluster] Contém::Contido por

    Kubernetes Serviço [cmdb_ci_kubernetes_service]

    Contém::Contido por Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Cluster of::Cluster Kubernetes Nó [cmdb_ci_kubernetes_node]
    Gerencia::Gerenciado por [cmdb_ci_linux_server]
    Kubernetes Pod [cmdb_ci_kubernetes_pod] Contém::Contido por Contêiner do docker [cmdb_ci_docker_container]
    Contém::Contido por Imagem do docker [cmdb_ci_docker_image]
    Contém::Contido por Kubernetes Volume [cmdb_ci_kubernetes_volume]
    Imagem do docker [cmdb_ci_docker_image] Instancia::instanciado por Contêiner do docker [cmdb_ci_docker_container]
    Servidor Linux [cmdb_ci_linux_server] Contém::Contido por Kubernetes Pod [cmdb_ci_kubernetes_pod]
    Execuções::execuções em Contêiner do docker [cmdb_ci_docker_container]
    Hosts::hospedado em Kubernetes Nó [cmdb_ci_kubernetes_node]

    Dados coletados por Mapeamento de serviçosdurante a descoberta baseada em marcador

    Mapeamento de serviçosusa a descoberta baseada em marcador para criar mapas de serviço de aplicações, incluindo o. Kubernetescomponentes. Mapeamento de serviçosVem com os seguintes relacionamentos de IC pré-configurados usados para descoberta baseada em marcador. Esses relacionamentos de IC estão disponíveis a partir da 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

    Após Descobertaconclui a descoberta de componentes do Kubernetesimplantação, você pode navegar até Espaços > Espaço do administrador da Descoberta > Informações e use o. Explorador Kubernetespainel para exibir o. Kubernetese recursos da sua organização. Para usar o aprimorado Kubernetespainel, verifique se você tem Espaço do administrador da Descobertaa partir de Versão 1.3.1 (agosto de 2024 Loja) . Para obter mais informações sobre Explorador Kubernetes, consulte Explorador Kubernetes.

    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. KubernetesPadrão no modo de depuração, consulte KB0832567 para obter informações operacionais.