Kubernetes 패턴을 사용한 검색

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2026년 03월 23일
  • 소요 시간: 44분
  • 패턴을 ServiceNow ITOM 가시성 사용하여 구성 요소를 찾고 OpenShiftKubernetes 패턴을 포함하는 애플리케이션 서비스를 생성합니다.디스커버리 또한 이벤트를 찾고 Kubernetes 자주 업데이트 CMDB 하여 동적 Kubernetes 환경을 반영합니다.

    디스커버리 는 패턴과 해당 확장 섹션을 Kubernetes 사용하여 구성요소를 검색 Kubernetes 합니다.
    • Kubernetes 패턴의 Collect OpenShift info 확장 섹션은 Kubernetes 배포의 OpenShift 구성요소를 디스커버리합니다. OpenShift 빌드 구성 확장 섹션은 스토어 버전 1.0.53에서 사용 가능합니다.
    • Service Mesh 확장은 서비스 메시 상세 정보를 디스커버리합니다. 이 정보를 사용하여 패턴에서 Connects to::Connected로 나타나는 서비스 간 관계를 생성할 수 있습니다. 서비스 메시 검색을 위해서는 K8s(Kubernetes) 클러스터에 Istio를 배포해야 합니다. 서비스 메시 확장 섹션은 Kubernetes 확장 클래스에서 사용할 수 있습니다. Madrid 릴리스 이상을 사용하는 Now Platform에서 지원됩니다.
    • Collect Container Repository 및 확장 섹션에서는 이러한 레지스트리에서 컨테이너 레지스트리와 이미지를 찾습니다.

    또한 는 디스커버리 이벤트 패턴을 Kubernetes 사용하여 구성요소에 대한 Kubernetes 이벤트를 검색합니다.

    ServiceNow Store의 1.0.68 릴리스부터 서비스 매핑에서 CI 관계를 사용하여 태그 기반 검색 중에 Kubernetes 구성요소를 애플리케이션 서비스에 추가할 수 있습니다.

    디스커버리 는 다음 패턴을 사용하여 , AWSAzure에 배포된 GCP전체 Kubernetes 인프라를 검색합니다.
    • GCP(Google Cloud Platform)– 클러스터를 가져옵니다Kubernetes .
    • Amazon AWS Cloud- 클러스터를 가져옵니다Kubernetes .
    • Microsoft Azure- 클러스터를 가져옵니다Kubernetes .
    이러한 패턴은 클라우드를 쿼리하고, 모든 Kubernetes 클러스터에 대한 데이터를 수집하며, 각 클러스터에 대해 서버리스 일정을 생성합니다. 클러스터가 삭제되면 일정이 비활성으로 표시됩니다. 이 기능은 클러스터당 여러 자격 증명 및 서버리스 검색 일정을 생성하고 관리하는 오버헤드를 제거합니다. 클라우드 인프라 패턴은 표준 클라우드 검색을 통해 트리거됩니다.

    지원되는 버전

    패턴은 다음 Kubernetes 버전으로 Red Hat OpenShift 확인되었습니다.
    표 1. 확인됨 KubernetesOpenShift 버전
    플랫폼/패턴 확인된 버전
    온프레미스 Kubernetes 1.34
    Google Kubernetes Engine(GKE) 1.34
    Azure Kubernetes Engine(AKS) 1.34
    Amazon Elastic Kubernetes Service(EKS) 1.34
    Kubernetes 이벤트 패턴 1.34
    OpenShift 4.19.20

    스토어에서 앱 요청

    ServiceNow Store 웹 사이트를 방문하면 사용 가능한 모든 앱을 확인하고 스토어에 요청을 제출하는 방법에 대한 정보를 참조할 수 있습니다. 출시된 모든 앱의 누적 릴리스 정보는 ServiceNow Store 버전 기록 릴리스 정보를 참조하십시오.

    필수 구성요소

    주:
    Kubernetes Cloud 인프라 검색의 필요 조건은 아래를 참조하십시오.
    주:
    자동 서버리스 Kubernetes 일정을 실행하면 전달자 토큰을 가져옵니다. 자격 증명을 추가할 필요는 없습니다.
    패턴을 사용하여 성공적으로 찾을 Kubernetes수 있도록 디스커버리 다음 단계를 수행합니다.
    1. 에서 ServiceNow Store최신 디스커버리 및 서비스 매핑 패턴 애플리케이션을 배포합니다.
    2. Kubernetes 플랫폼에서 Kubernetes 검색을 설정할 매개변수를 찾습니다.
      • kubeapi 서버의 URL을 찾습니다.
        1. Kubernetes 플랫폼에서 다음 명령을 실행합니다.

          kubectl cluster-info

        2. 출력에서 kubeapi 서버의 URL을 나타내는 줄을 찾습니다. 예를 들어 다음 위치에서 Kubernetes 컨트롤 플레인이 실행 중입니다.

          https://10.154.144.146:443

      • Kubeapi 서버의 네임스페이스를 찾습니다.
        1. Kubernetes 플랫폼에서 다음 명령을 실행합니다.

          kubectl get namespaces

        2. 출력에서 네임스페이스를 나타내는 줄을 찾습니다. 예를 들어 kube-system입니다.
      • Kubernetes 사용자 이름과 암호를 찾습니다.
        1. Kubernetes 플랫폼에서 다음 명령을 실행합니다.

          kubectl config view

        2. 출력에서 사용자 이름과 암호를 찾습니다. 암호와 사용자 이름에 대한 정보가 포함된 줄을 찾습니다.
          주:
          특정 환경에서 kubectl config view 명령으로 예상 상세 정보가 표시되지 않는 경우 Kubernetes admin에서 supported 명령을 사용하여 사용자 이름 및 암호 상세 정보를 가져옵니다.
      • 적합한 권한이 있는 유효한 전달자 토큰을 찾습니다.
        • 기본 토큰 이름을 알고 있는 경우 kubectl describe secret<default-token-token name> 형식의 명령을 사용합니다.

          예: kubectl describe secret default-token-g6pwc.

        • 기본 토큰 이름을 모르는 경우 kubectl describe secret 명령을 사용합니다.
    3. 성공적인 검색을 위해 Kubernetes 에서 API 서버에 연결할 수 있는지 확인합니다.MID 서버
    4. 플랫폼에 Kubernetes 구성된 사용자에게 다음 /api/v1 요소를 실행할 수 있는 GET 권한이 있는지 확인합니다.
      • 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. 배포의 Kubernetes 구성요소를 검색 OpenShift 하려면 플랫폼에 Kubernetes 구성된 사용자에게 다음 /api/v1 요소를 실행할 수 있는 GET 권한이 있는지 확인합니다.
      • /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
      서비스 메시 정보를 검색하려면 다음을 수행합니다.
      • K8s 클러스터에 Istio를 배포합니다.
      • Prometheus URL을 입력합니다.
      • Istio에서 메트릭을 스크레이핑하도록 Prometheus를 구성합니다.
    6. Kubernetes 구성 파일 가져오기 확장을 활성화하여 다음을 수행합니다.
      • 구성 파일을 검색합니다.
      • 추적된 구성 파일을 생성합니다.
      • 관계를 사용하여 구성 파일을 작업 부하와 서비스에 매핑합니다.
      주:
      추적된 파일의 컨텐츠는 버전 1.0.92의 형식입니다 JSON . 추적된 파일의 컨텐츠는 버전 1.0.91 이하인 경우 YAML 형식입니다.
    7. ServiceNow 플랫폼에 Kubernetes 자격 증명을 생성합니다.
      1. Now Platform 에서 다음으로 이동합니다.모두 > 디스커버리 > 자격 증명.
      2. 새로 만들기를 선택합니다.
      3. Kubernetes 자격 증명을 선택합니다.
      4. 양식에서 필드를 채웁니다.
        필드 설명
        이름 이 자격 증명에 대한 고유하고 설명적인 이름입니다.
        사용자 이름 이 자격 증명과 관련된 사용자 이름입니다. 선행 또는 후행 공백은 피해야 합니다. 탐지되면 경고가 나타납니다.

        인증 방법은 사용자 이름과 암호 또는 전달자 토큰 중 하나만 사용해야 합니다. 둘 다 사용하지 마십시오.

        암호 이 자격 증명과 관련된 암호입니다.

        인증 방법은 사용자 이름과 암호 또는 전달자 토큰 중 하나만 사용해야 합니다. 둘 다 사용하지 마십시오.

        전달자 토큰 인증 이 옵션을 사용하면 전달자 토큰을 사용하는 고급 인증을 사용할 수 있습니다.

        확인란을 선택하면 전달자 토큰 필드가 표시됩니다.

        전달자 토큰 디스커버리 는 액세스 시 Kubernetes고급 인증을 위해 전달자 토큰을 사용합니다.

        전달자 토큰은 문자 시퀀스를 토큰으로 사용하는 BASE64 인코딩 형식이어야 합니다. 예: 31ada4fd-adec-460c-809a-9e56ceb75269

        인증 방법은 사용자 이름과 암호 또는 전달자 토큰 중 하나만 사용해야 합니다. 둘 다 사용하지 마십시오.

        자격 증명 별칭 별칭이 이 자격 증명을 사용하여 이 자격 증명을 Kubernetes 사용하는 Kubernetes경우 이외의 장치 및 애플리케이션에 대해 구성되어 있습니다. 이 별칭은 배포 검색 Kubernetes 을 위한 서버리스 검색 일정을 정의할 때도 사용됩니다.
        1. 자물쇠 아이콘을 선택한 다음 검색 아이콘을 선택합니다.
        2. 연결 및 자격 증명 별칭 양식에서 새로 만들기를 선택합니다.
        3. 자격 증명 별칭 기록의 이름을 지정합니다.
        4. 별칭에 대한 속성을 정의합니다. Type자격 증명으로 설정합니다.
        5. 양식 헤더를 길게 누르거나 마우스 오른쪽 버튼으로 클릭하고 저장을 선택한 다음 업데이트를 선택합니다.
        6. 연결 및 자격 증명 별칭 양식에서 새로 추가한 별칭을 선택합니다.

          자격 증명 별칭 필드에 별칭이 나타납니다.

      5. Kubernetes 자격 증명 양식에서 업데이트를 선택합니다.
    8. Kubernetes 패턴을 위해 서버리스 검색 일정을 생성합니다.
      제품 설명서에 설명된 대로 서버리스 실행 패턴을 생성하고 정의합니다. 다음과 같이 Kubernetes 패턴에 필요한 매개변수를 구성합니다.
      표 2. 실행 패턴 속성 구성
      필드 설명
      url Kubernetes apiserver의 호스트이름, IP 또는 FQDN 및 포트에 대한 식별자입니다. example_hostname: example_port 또는 xample_ip:example_port 형식을 사용합니다. URL에 올바른 프로토콜(HTTP 또는 HTTPS)을 입력합니다.
      네임스페이스 시스템이 구성에서 전달하는 네임스페이스입니다.Kubernetes 디스커버리 다음 값 중 하나를 입력합니다.
      • 개별 네임스페이스: 네임스페이스를 입력한 다음 "kube-system"을 입력합니다. 예: dev,kube-system
      • 기본값: default, kube-system 입력
      • 다수의 네임스페이스: 네임스페이스를 입력하고 쉼표(,)로 값을 구분한 다음 "kube-system"을 입력합니다. 예: automation,application,test,kube-system
      • 모든 네임스페이스: 별표(*)를 사용하여 모든 네임스페이스를 입력합니다.
      자격 증명 별칭 이전에 생성한 Kubernetes 자격 증명과 관련된 별칭입니다.
      클러스터 이름 Kubernetes 클러스터의 이름으로, <serviceaccountid><space><clustername> 형식입니다.
      제공자 클라우드 제공자: GCP 또는 AWSAzure또는 .
      cluster_resource_id 클러스터 자원 ID 예:
      • Azure Kubernetes clusters - 자원 ID입니다.
      • AWS- 클러스터 ARN입니다.
      • GCP- 클러스터 전역 이름입니다.
    9. Kubernetes 이벤트 패턴에 대한 서버리스 검색 일정을 생성합니다. 5분 또는 10분마다 실행하도록 일정을 구성합니다.
      주:
      패턴을 처음 실행하면 event_timestamp가 저장됩니다. 이후에는 타임스탬프를 기반으로 델타 이벤트만 수집됩니다. 패턴이 더 자주 실행될수록 필요한 업데이트 CMDB IRE 횟수가 줄어듭니다.

      검색 일정에 대해 서버리스 실행 패턴을 생성하여 Kubernetes 이벤트 패턴에 할당합니다. 실행 패턴 속성 구성 문서에 설명된 대로 Kubernetes 패턴에 필요한 매개변수를 구성합니다.

    10. 검색된 구성요소를 서비스 인스턴스에 포함하려면 에서 태그 기반 검색 서비스 매핑에 사용되는 CI 관계를 활성화합니다. 이 CI 관계는 ServiceNow Store에서 1.0.68 릴리스부터 사용할 수 있습니다. 운영 단계는 태그 기반 검색 구성 문서를 참조하십시오.

    Kubernetes 클라우드 인프라 검색의 필수 조건

    GCP(Google Cloud Platform)의 경우 - Kubernetes 클러스터 패턴을 가져오려면 다음을 수행합니다.

    1. ServiceNow 인스턴스에서 유효한 자격 증명과 권한이 있는 GCP(Google Cloud Platform) 서비스 계정을 설정합니다.
    2. GCP 인프라에서 모든 클라우드 API에 대한 전체 액세스 권한을 보유하도록 MID 서버를 설정합니다. 클라우드 API의 액세스 범위를 "모든 클라우드 API에 대한 전체 액세스 허용"으로 설정합니다. 인스턴스는 MID 서버 프로젝트에 특정한 클러스터에만 액세스할 수 있습니다.
    3. sys_properties.list로 이동하여 다음 속성을 구성합니다.
      • sn_itom_pattern.k8s_midserver: 올바른 MID 서버 이름을 지정합니다.
      • sn_itom_pattern.k8s_create_schedule_enabled: 값을 true로 설정합니다.
        주:
        속성을 사용하도록 설정 sn_itom_pattern.k8s_create_schedule_enabled 하면 클라우드 클러스터에 대한 서버리스 일정이 자동으로 생성되므로 수동으로 예약할 필요가 없습니다. 기존 수동 일정이 있고 이를 자동 일정으로 변환하려면 속성을 사용하도록 설정합니다. 수동 일정이 업데이트됩니다. 추가 일정이 생성되지 않습니다.
    4. Google Cloud 디스커버리를 생성하고 실행합니다.
      주:

      GKE Kubernetes 일정을 실행하는 동안 전달자 토큰을 가져오려면 다음 gcloud 명령을 사용합니다.

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

      인스턴스에서 MID 서버 gcloud를 구성하면 토큰을 가져올 GKE 클러스터에 대한 액세스 권한이 부여됩니다.

    Amazon Elastic Kubernetes Service(EKS) 클러스터 검색의 경우 다음을 수행합니다.

    1. ServiceNow 인스턴스에서 유효한 관리 계정 자격 증명과 권한이 있는 AWS 서비스 계정을 설정합니다.
      1. 클러스터에 모든 자원에 대한 읽기 전용 액세스 권한이 있는 클러스터 역할이 있는지 확인합니다 Amazon Elastic Kubernetes Service(EKS) .
      2. 클러스터 역할과 Kubernetes 사용자 간에 클러스터 역할 바인딩을 생성합니다. 예를 들어 읽기 전용사용자입니다.
      3. 정책 EKSReadOnly로 AWS IAM 역할을 생성합니다.
      4. 다음 방법 중 하나로 IAM 역할을 Kubernetes 사용자와 연결합니다.
        • 클러스터에서 aws-auth ConfigMap을 편집합니다.
        • 다음 명령을 실행합니다.

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

    2. AWS CLI(명령줄 인터페이스)를 사용하거나 AWS CLI를 사용하지 않는 두 가지 방법 중 하나로 Amazon Elastic Kubernetes Service(EKS) 클러스터 검색을 실행합니다. 먼저 선택한 모델을 사용하도록 시스템 속성을 sn_itom_pattern.k8s_aws_cli_to_generate_token 설정합니다. 기본적으로 시스템 속성은 true로 설정됩니다.

      • AWS CLI를 사용하여 토큰을 생성하려면 이 시스템 속성을 true로 설정합니다.

      • 역할 위임을 사용하여 토큰을 생성하려면 이 시스템 속성을 false로 설정합니다.

      1. AWS CLI를 사용하여 Amazon Elastic Kubernetes Service(EKS) 클러스터 검색을 실행합니다.

        1. AWS CLI가 구성된 상태로 MID 서버를 설정합니다. AWS CLI 자격 증명을 구성하면 Amazon Elastic Kubernetes Service(EKS) 클러스터에 대한 접근 권한이 부여됩니다.

          주:
          시스템에 로그인한 사용자는 MID 서버 사용자와 같아야 합니다.
        2. 전달자 토큰을 생성하려면 Amazon Elastic Kubernetes Service(EKS) 일정을 실행하는 동안 AWS CLI 명령 aws eks get-token --cluster-name <cluster_name>을 사용합니다.

          MID 서버 인스턴스에서 AWS CLI 사용자/역할을 구성하면 토큰을 생성할 Amazon Elastic Kubernetes Service(EKS) 클러스터에 대한 접근 권한이 부여됩니다.

      2. AWS CLI를 사용하지 않고 Amazon Elastic Kubernetes Service(EKS) 클러스터 검색을 실행합니다.

        주:

        이 기능은 2022년 12월자 디스커버리 및 서비스 매핑 패턴 버전 1.0.96에서 지원됩니다.

        자세한 지침은 KB1182188: AWS CLI 없이 STS AssumeRoles를 사용하여 EKS 클러스터 검색 KB를 참조하십시오.

    3. sys_properties.list로 이동하여 다음 속성을 구성합니다.
      • sn_itom_pattern.k8s_midserver: 올바른 MID 서버 이름을 지정합니다.
      • sn_itom_pattern.k8s_create_schedule_enabled: 값을 true로 설정합니다.
        주:
        속성을 사용하도록 설정 sn_itom_pattern.k8s_create_schedule_enabled 하면 클라우드 클러스터에 대한 서버리스 일정이 자동으로 생성되므로 수동으로 예약할 필요가 없습니다. 기존 수동 일정이 있고 이를 자동 일정으로 변환하려면 속성을 사용하도록 설정합니다. 수동 일정이 업데이트됩니다. 추가 일정이 생성되지 않습니다.
    4. 일정을 만들고 실행합니다.AWS 클라우드 디스커버리

    Microsoft Azure Kubernetes 서비스(AKS) - Kubernetes 클러스터 검색의 경우 다음을 수행합니다.

    1. 최신 디스커버리 및 서비스 매핑 패턴 버전으로 업데이트합니다.
    2. ServiceNow 인스턴스에서 유효한 Azure 자격 증명과 권한이 있는 Azure 서비스 계정을 구성합니다.
    3. sys_properties.list로 이동하여 다음 속성을 구성합니다.
      • sn_itom_pattern.k8s_midserver: 올바른 MID 서버 이름을 지정합니다.
      • sn_itom_pattern.k8s_create_schedule_enabled: 값을 true로 설정합니다.
        주:
        속성을 사용하도록 설정 sn_itom_pattern.k8s_create_schedule_enabled 하면 클라우드 클러스터에 대한 서버리스 일정이 자동으로 생성되므로 수동으로 예약할 필요가 없습니다. 기존 수동 일정이 있고 이를 자동 일정으로 변환하려면 속성을 사용하도록 설정합니다. 수동 일정이 업데이트됩니다. 추가 일정이 생성되지 않습니다.
        .
    4. RBAC가 있는 Kubernetes 로컬 계정이 없고 패턴 효율성을 개선하려면 MID 서버 > 속성 속성을 false로 설정합니다sn_itom_pattern.aks_fetch_local_ad_token.
    5. Azure 클라우드 검색 일정을 실행합니다.
    6. 클러스터 계정 유형에 따라 디스커버리 일정에서 MID 서버를 구성합니다. RBAC가 있는 로컬 계정이 없는 경우 이 단계를 무시할 수 있습니다.

      클러스터 계정 유형 디스커버리 일정 MID 서버

      Kubernetes RBAC를 사용하는 MS Entra ID 인증입니다.

      모든 MID 서버.

      Azure RBAC를 사용하는 MS Entra ID 인증입니다.

      모든 MID 서버.

      Kubernetes RBAC가 있는 로컬 계정입니다.

      Azure CLI(명령줄 인터페이스)를 구성하여