Kubernetes 패턴을 사용한 검색
ServiceNow ITOM 가시성 패턴을 사용하여 구성요소를 OpenShift 찾고 Kubernetes 이를 포함하는 애플리케이션 서비스를 생성합니다. 디스커버리 또한 이벤트를 찾고 Kubernetes 자주 업데이트 CMDB 하여 동적 Kubernetes 환경을 반영합니다.
- Kubernetes 패턴의 Collect OpenShift info 확장 섹션은 Kubernetes 배포의 OpenShift 구성요소를 디스커버리합니다. OpenShift 빌드 구성 확장 섹션은 스토어 버전 1.0.53에서 사용 가능합니다.
- Service Mesh 확장은 서비스 메시 상세 정보를 디스커버리합니다. 이 정보를 사용하여 패턴에서 Connects to::Connected로 나타나는 서비스 간 관계를 생성할 수 있습니다. 서비스 메시 검색을 위해서는 K8s(Kubernetes) 클러스터에 Istio를 배포해야 합니다. 서비스 메시 확장 섹션은 Kubernetes 확장 클래스에서 사용할 수 있습니다. Madrid 릴리스 이상을 사용하는 ServiceNow AI Platform에서 지원됩니다.
- Collect Container Repository 및 확장 섹션에서는 이러한 레지스트리에서 컨테이너 레지스트리와 이미지를 찾습니다.
또한 디스커버리는 Kubernetes 이벤트 패턴을 사용하여 Kubernetes 버전 1.21에 대한 Kubernetes 구성요소의 이벤트를 검색합니다.
ServiceNow Store의 1.0.68 릴리스부터 서비스 매핑에서 CI 관계를 사용하여 태그 기반 검색 중에 Kubernetes 구성요소를 애플리케이션 서비스에 추가할 수 있습니다.
- GCP(Google Cloud Platform) – 클러스터를 가져옵니다Kubernetes .
- Amazon AWS - 클러스터 가져오기Kubernetes .
- Azure - 클러스터를 가져옵니다Kubernetes .
스토어에서 앱 요청
ServiceNow Store 웹 사이트를 방문하면 사용 가능한 모든 앱을 확인하고 스토어에 요청을 제출하는 방법에 대한 정보를 참조할 수 있습니다. 출시된 모든 앱의 누적 릴리스 정보는 ServiceNow Store 버전 기록 릴리스 정보를 참조하십시오.
필요 조건
- ServiceNow Store에서 최신 검색 및 서비스 매핑 패턴 애플리케이션을 배포합니다.
- Kubernetes 플랫폼에서 Kubernetes 검색을 설정할 매개변수를 찾습니다.
- kubeapi 서버의 URL을 찾습니다.
- Kubernetes 플랫폼에서 다음 명령을 실행합니다.
kubectl cluster-info - 출력에서 kubeapi 서버의 URL을 나타내는 줄을 찾습니다. 예를 들어 다음 위치에서 Kubernetes 컨트롤 플레인이 실행 중입니다.
https://10.154.144.146:443
- Kubernetes 플랫폼에서 다음 명령을 실행합니다.
- Kubeapi 서버의 네임스페이스를 찾습니다.
- Kubernetes 플랫폼에서 다음 명령을 실행합니다.
kubectl get namespaces - 출력에서 네임스페이스를 나타내는 줄을 찾습니다. 예를 들어
kube-system입니다.
- Kubernetes 플랫폼에서 다음 명령을 실행합니다.
- Kubernetes 사용자 이름과 암호를 찾습니다.
- Kubernetes 플랫폼에서 다음 명령을 실행합니다.
kubectl config view - 출력에서 사용자 이름과 암호를 찾습니다. 주:특정 환경에서
kubectl config view명령으로 예상 상세 정보가 표시되지 않는 경우 Kubernetes admin에서supported명령을 사용하여 사용자 이름 및 암호 상세 정보를 가져옵니다.
- Kubernetes 플랫폼에서 다음 명령을 실행합니다.
- 적합한 권한이 있는 유효한 전달자 토큰을 찾습니다.
-
기본 토큰 이름을 알고 있는 경우
kubectl describe secret <default-token-token name>형식으로 명령을 사용합니다.예:
kubectl describe secret default-token-g6pwc. - 기본 토큰 이름을 모르는 경우
kubectl describe secret명령을 사용합니다.
-
- kubeapi 서버의 URL을 찾습니다.
- 성공적인 Kubernetes 디스커버리를 위해 MID 서버 API 서버에서 연결할 수 있는지 확인하십시오.
- 플랫폼에 구성된 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
- 배포의 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를 구성합니다.
- Kubernetes 구성 파일 가져오기 확장을 활성화하여 다음을 수행합니다.
- 구성 파일을 검색합니다.
- 추적된 구성 파일을 생성합니다.
- 관계를 사용하여 구성 파일을 작업 부하와 서비스에 매핑합니다.
주:추적된 파일의 컨텐츠는 버전 1.0.92의 JSON 형식입니다. 추적된 파일의 컨텐츠는 버전 1.0.91 이하인 경우 YAML 형식입니다. - ServiceNow 플랫폼에 Kubernetes 자격 증명을 생성합니다.
- 에서 ServiceNow AI Platform다음으로 이동합니다. .
- 새로 만들기를 선택합니다.
- Kubernetes 자격 증명을 선택합니다.
- 양식에서 필드를 채웁니다.
필드 설명 이름 이 자격 증명에 대한 고유하고 설명적인 이름입니다. 사용자 이름 이 자격 증명과 연결된 사용자 이름입니다. 선행 또는 후행 공백은 피해야 합니다. 하나라도 감지되면 경고가 나타납니다. 인증 방법은 사용자 이름과 암호 또는 전달자 토큰 하나만 사용해야 합니다. 둘 다 사용하지 마십시오.
암호 이 자격 증명과 연결된 암호입니다. 인증 방법은 사용자 이름과 암호 또는 전달자 토큰 하나만 사용해야 합니다. 둘 다 사용하지 마십시오.
전달자 토큰 인증 이 옵션은 전달자 토큰을 사용하여 고급 인증을 사용하도록 설정합니다. 이 확인란을 선택하면 전달자 토큰 필드가 표시됩니다.
전달자 토큰 디스커버리 는 액세스 Kubernetes시 고급 인증을 위해 전달자 토큰을 사용합니다. 전달자 토큰은 문자 시퀀스를 토큰으로 사용하여 BASE64 인코딩 형식이어야 합니다. 예: 31ada4fd-adec-460c-809a-9e56ceb75269
인증 방법은 사용자 이름과 암호 또는 전달자 토큰 하나만 사용해야 합니다. 둘 다 사용하지 마십시오.
자격 증명 별칭 별칭은 이외의 장치 및 애플리케이션에 Kubernetes대한 자격 증명을 사용하도록 Kubernetes 구성됩니다. 이 별칭은 배포를 검색 Kubernetes 하기 위한 서버리스 검색 일정을 정의할 때도 사용됩니다. - 자물쇠 아이콘을 선택한 다음 검색 아이콘을 선택합니다.
- 연결 및 자격 증명 별칭 양식에서 새로 만들기를 선택합니다.
- 자격 증명 별칭 기록의 이름을 지정합니다.
- 별칭에 대한 속성을 정의합니다. Type을 자격 증명으로 설정합니다.
- 양식 헤더를 마우스 오른쪽 버튼으로 클릭하고 저장을 선택한 다음 업데이트를 선택합니다.
- 연결 및 자격 증명 별칭 양식에서 새로 추가한 별칭을 선택합니다.
자격 증명 별칭 필드에 별칭이 나타납니다.
- Kubernetes 자격 증명 양식에서 업데이트를 선택합니다.
- Kubernetes 패턴을 위해 서버리스 검색 일정을 생성합니다.제품 설명서에 설명된 대로 서버리스 실행 패턴을 생성하고 정의합니다. 다음과 같이 Kubernetes 패턴에 필요한 매개변수를 구성합니다.
표 1. 실행 패턴 속성 구성 필드 설명 url Kubernetes apiserver의 호스트이름, IP 또는 FQDN 및 포트에 대한 식별자입니다. example_hostname: example_port 또는 xample_ip:example_port 형식을 사용합니다. URL에 올바른 프로토콜(HTTP 또는 HTTPS)을 입력합니다. namespace 시스템이 Kubernetes 검색 구성에서 전달하는 네임스페이스입니다. 다음 값 중 하나를 입력합니다. - 개별 네임스페이스: 네임스페이스를 입력한 다음 "kube-system"을 입력합니다. 예: dev,kube-system
- 기본값: default, kube-system 입력
- 다수의 네임스페이스: 네임스페이스를 입력하고 쉼표(,)로 값을 구분한 다음 "kube-system"을 입력합니다. 예: automation,application,test,kube-system
- 모든 네임스페이스: 별표(*)를 사용하여 모든 네임스페이스를 입력합니다.
자격 증명 별칭 이전에 생성한 Kubernetes 자격 증명과 관련된 별칭입니다. 클러스터 이름 Kubernetes 클러스터의 이름으로, <serviceaccountid><space><clustername> 형식입니다. 제공자 클라우드 제공자: GCP 또는 AWS 또는 Azure입니다. cluster_resource_id 클러스터 자원 ID 예: - Azure Kubernetes 클러스터 - 자원 ID입니다.
- AWS - 클러스터 ARN입니다.
- GCP - 클러스터 전역 이름입니다.
- Kubernetes 이벤트 패턴에 대한 서버리스 검색 일정을 생성합니다. 5분 또는 10분마다 실행하도록 일정을 구성합니다. 주:패턴을 처음 실행하면 event_timestamp가 저장됩니다. 이후에는 타임스탬프를 기반으로 델타 이벤트만 수집됩니다. 패턴이 더 자주 실행될수록 필요한 CMDB IRE 업데이트가 줄어듭니다.
검색 일정에 대해 서버리스 실행 패턴을 생성하여 Kubernetes 이벤트 패턴에 할당합니다. 실행 패턴 속성 구성 문서에 설명된 대로 Kubernetes 패턴에 필요한 매개변수를 구성합니다.
- 검색된 구성요소를 서비스 인스턴스에 포함하려면 의 서비스 매핑태그 기반 검색에 사용되는 CI 관계를 활성화합니다. 이 CI 관계는 ServiceNow Store에서 1.0.68 릴리스부터 사용할 수 있습니다. 운영 단계는 태그 기반 검색 구성 문서를 참조하십시오.
Kubernetes 클라우드 인프라 검색의 필수 조건
GCP(Google Cloud Platform)의 경우 - Kubernetes 클러스터 패턴을 가져오려면 다음을 수행합니다.
- ServiceNow 인스턴스에서 유효한 자격 증명과 권한이 있는 GCP(Google Cloud Platform) 서비스 계정을 설정합니다.
- GCP 인프라에서 모든 클라우드 API에 대한 전체 액세스 권한을 보유하도록 MID 서버를 설정합니다. 클라우드 API의 액세스 범위를 "모든 클라우드 API에 대한 전체 액세스 허용"으로 설정합니다. MID 서버 인스턴스는 프로젝트에 해당하는 클러스터에만 액세스할 수 있습니다.
sys_properties.list로 이동하여 다음 속성을 구성합니다.- sn_itom_pattern.k8s_midserver: 올바른 MID 서버 이름을 지정합니다.
- sn_itom_pattern.k8s_create_schedule_enabled: 값을 true로 설정합니다.주:sn_itom_pattern.k8s_create_schedule_enabled 속성을 사용하도록 설정하면 클라우드 클러스터에 대한 서버리스 일정이 자동으로 생성되므로 수동 예약이 필요하지 않습니다. 기존 수동 일정이 있고 이를 자동 일정으로 변환하려면 해당 속성을 활성화합니다. 수동 일정이 업데이트됩니다. 추가 일정이 생성되지 않습니다.
- Google Cloud 디스커버리를 생성하고 실행합니다. 주:
GKE Kubernetes 일정을 실행하는 동안 전달자 토큰을 가져오려면 다음 gcloud 명령을 사용합니다.
gcloud config config-helper --format="value(credential.access_token)"MID 서버 인스턴스에서 gcloud를 구성하면 토큰을 가져올 GKE 클러스터에 대한 접근 권한이 부여됩니다.
Amazon Elastic Kubernetes Service(EKS) 클러스터 검색의 경우 다음을 수행합니다.
- ServiceNow 인스턴스에서 유효한 관리 계정 자격 증명과 권한이 있는 AWS 서비스 계정을 설정합니다.
- Amazon Elastic Kubernetes Service(EKS) 클러스터에 모든 자원에 대한 읽기 전용 권한이 있는 클러스터 역할이 있는지 확인합니다.
- 클러스터 역할과 Kubernetes 사용자 간에 클러스터 역할 바인딩을 생성합니다. 예를 들어 읽기 전용사용자입니다.
- 정책 EKSReadOnly로 AWS IAM 역할을 생성합니다.
- 다음 방법 중 하나로 IAM 역할을 Kubernetes 사용자와 연결합니다.
- 클러스터에서 aws-auth ConfigMap을 편집합니다.
- 다음 명령을 실행합니다.
eksctl create iamidentitymapping --cluster yourClusterName --arnarn:aws:iam::yourAccountID:role/yourIAMRoleName --username read-only-user
-
AWS CLI(명령줄 인터페이스)를 사용하거나 AWS CLI를 사용하지 않는 두 가지 방법 중 하나로 Amazon Elastic Kubernetes Service(EKS) 클러스터 검색을 실행합니다. 먼저 선택한 모델을 사용하도록 시스템 속성을 sn_itom_pattern.k8s_aws_cli_to_generate_token 설정합니다. 기본적으로 시스템 속성은 true로 설정됩니다.
-
AWS CLI를 사용하여 토큰을 생성하려면 이 시스템 속성을 true로 설정합니다.
-
역할 위임을 사용하여 토큰을 생성하려면 이 시스템 속성을 false로 설정합니다.
-
AWS CLI를 사용하여 Amazon Elastic Kubernetes Service(EKS) 클러스터 검색을 실행합니다.
-
AWS CLI가 구성된 상태로 MID 서버를 설정합니다. AWS CLI 자격 증명을 구성하면 Amazon Elastic Kubernetes Service(EKS) 클러스터에 대한 접근 권한이 부여됩니다.
주:시스템에 로그인한 사용자는 MID 서버 사용자와 같아야 합니다. -
전달자 토큰을 생성하려면 Amazon Elastic Kubernetes Service(EKS) 일정을 실행하는 동안 AWS CLI 명령
aws eks get-token --cluster-name <cluster_name>을 사용합니다.MID 서버 인스턴스에서 AWS CLI 사용자/역할을 구성하면 토큰을 생성할 Amazon Elastic Kubernetes Service(EKS) 클러스터에 대한 접근 권한이 부여됩니다.
-
-
AWS CLI를 사용하지 않고 Amazon Elastic Kubernetes Service(EKS) 클러스터 검색을 실행합니다.
주:이 기능은 2022년 12월자 디스커버리 및 서비스 매핑 패턴 버전 1.0.96에서 지원됩니다.
자세한 지침은 KB1182188: AWS CLI 없이 STS AssumeRoles를 사용하여 EKS 클러스터 검색 KB를 참조하십시오.
-
sys_properties.list로 이동하여 다음 속성을 구성합니다.- sn_itom_pattern.k8s_midserver: 올바른 MID 서버 이름을 지정합니다.
- sn_itom_pattern.k8s_create_schedule_enabled: 값을 true로 설정합니다.주:sn_itom_pattern.k8s_create_schedule_enabled 속성을 사용하도록 설정하면 클라우드 클러스터에 대한 서버리스 일정이 자동으로 생성되므로 수동 예약이 필요하지 않습니다. 기존 수동 일정이 있고 이를 자동 일정으로 변환하려면 해당 속성을 활성화합니다. 수동 일정이 업데이트됩니다. 추가 일정이 생성되지 않습니다.
-
AWS 클라우드 검색 일정을 생성하고 실행합니다.
Microsoft Azure Kubernetes 서비스(AKS) - Kubernetes 클러스터 검색의 경우 다음을 수행합니다.
- 최신 디스커버리 및 서비스 매핑 패턴 버전으로 업데이트합니다.
- ServiceNow 인스턴스에서 유효한 Azure 자격 증명과 권한이 있는 Azure 서비스 계정을 구성합니다.
sys_properties.list로 이동하여 다음 속성을 구성합니다.- sn_itom_pattern.k8s_midserver: 올바른 MID 서버 이름을 지정합니다.
- sn_itom_pattern.k8s_create_schedule_enabled: 값을 true로 설정합니다.주:.sn_itom_pattern.k8s_create_schedule_enabled 속성을 사용하도록 설정하면 클라우드 클러스터에 대한 서버리스 일정이 자동으로 생성되므로 수동 예약이 필요하지 않습니다. 기존 수동 일정이 있고 이를 자동 일정으로 변환하려면 해당 속성을 활성화합니다. 수동 일정이 업데이트됩니다. 추가 일정이 생성되지 않습니다.
- RBAC가 있는 Kubernetes 로컬 계정이 없고 패턴 효율성을 개선하려면 다음으로 이동합니다. 을 클릭하고 속성을 false로 설정합니다sn_itom_pattern.aks_fetch_local_ad_token.
- Azure 클라우드 검색 일정을 실행합니다.
-
클러스터 계정 유형에 따라 디스커버리 일정에서 MID 서버를 구성합니다. RBAC가 있는 로컬 계정이 없는 경우 이 단계를 무시할 수 있습니다.
클러스터 계정 유형 디스커버리 일정 MID 서버 Kubernetes RBAC를 사용하는 MS Entra ID 인증입니다.
모든 MID 서버.
Azure RBAC를 사용하는 MS Entra ID 인증입니다.
모든 MID 서버.
Kubernetes RBAC가 있는 로컬 계정입니다.
Azure CLI(명령줄 인터페이스)를 구성하여 MID 서버를 설정합니다. Azure CLI 자격 증명을 구성하면 AKS 클러스터에 대한 액세스 권한이 부여됩니다.
AKS Kubernetes 일정을 실행하는 동안 전달자 토큰을 가져오려면 Azure CLI 명령
az aks get-credentials --name <cluster_name> --overwrite-existing --resource-group <resourceGroup_name> --file -을 사용합니다.주:- 시스템에 로그인한 사용자는 MID 서버 사용자와 같아야 합니다.
- AKS 클러스터 검색 구성에 대한 자세한 내용은 에서 AKS 클러스터 검색 구성 세부 정보 [KB1220553] 문서를 참조하십시오.Now Support 지식베이스
| 속성 이름 | 속성 설명 | 유형 | 기본값 | |
|---|---|---|---|---|
|
sn_itom_pattern.manifest_digest_image_id | 부울 |
false 주:
이 속성을 true로 설정하고 검색을 실행하기 전에 모든 Docker 이미지 기록을 삭제하여 중복 기록이 생성되지 않도록 합니다. |
||
|
sn_itom_pattern.k8s_create_schedule_enabled |
패턴 실행 제어를 담당하는 시스템 속성에서 활성화/비활성화할 수 있는 기능 플래그입니다. 이 옵션을 사용하면 새 속성 값에도 불구하고 검색 일정이 작성됩니다. |
부울 | false | |
| sn_itom_k8s_run_cloud_discovery | 활성화하면 이 속성이 클라우드 k8s 패턴을 실행하여 자동 일정을 생성하지 않고 k8s 클러스터를 검색합니다. | 부울 | false | |
| MID 서버 |
sn_itom_pattern.k8s_midserver |
[기본] 예 - 유효한 MID 서버 이름 |
문자열 | |
|
sn_itom_pattern.k8s_<service_account_id>_midserver |
[서비스 계정 수준 기준] 예 - 유효한 MID 서버 이름 |
문자열 | ||
|
sn_itom_pattern.k8s_<service_account_id>_<clustername>_midserver |
[클러스터 이름 기준] 예 - 유효한 MID 서버 이름 |
문자열 | ||
|
sn_itom_pattern.kubernetes_collect_volume |
속성을 True로 설정하면 Kubernetes 볼륨[cmdb_ci_kubernetes_volume]에 대한 데이터가 채워집니다. |
문자열 | false | |
| 자격 증명 별칭 |
sn_itom_pattern.k8s_ cred_alias |
[기본] 예 - 자격 증명 별칭 이름 |
문자열 | |
|
sn_itom_pattern.k8s_<service_account_id>_alias |
[서비스 계정 수준 기준] 예 - 유효한 자격 증명 별칭 이름. |
문자열 | ||
|
sn_itom_pattern.k8s_<service_account_id>_<clustername>_alias |
[클러스터 이름 기준] 예 - 유효한 자격 증명 별칭 이름. |
문자열 | ||
| Prometheus URL |
sn_itom_pattern.k8s_ prometheusUrl |
[기본] 예 - 유효한 Prometheus URL |
문자열 | |
|
sn_itom_pattern.k8s_<service_account_id>_prometheusUrl |
[서비스 계정 수준 기준] 예 - 유효한 Prometheus URL |
문자열 | ||
|
sn_itom_pattern.k8s_<service_account_id>_<clustername>_prometheusUrl |
[클러스터 이름 기준] 예 - 유효한 Prometheus URL |
문자열 | ||
|
sn_itom_pattern.k8s_ run |
[지원되는 검색 일정 실행 - 매일, 요청 시, 평일, 주말, 한 달의 마지막 날, 달력 분기 말] 예 - 매일 |
문자열 | ||
|
sn_itom_pattern.k8s_batch_count |
[배치로 실행할 일정 수 참조 – 기본값은 5로 설정] 예 - 5(배치에서 실행할 일정 수) |
정수 | 5 | |
|
sn_itom_pattern.k8s_schedule_batch_delay |
[두 배치 사이의 시간차 값을 초 단위로 확인] 예 - 300(초) |
정수 | ||
|
sn_itom_pattern.k8s_run_time |
[배치의 현재 시간 확인] 이 속성이 설정된 경우 동일한 시간을 사용하거나 시스템 현재 타이밍 이후 5 분 후인 동적 타이밍을 사용할 수 있습니다. 값은 HH:MM:SS 형식입니다. 예 - 10:11:12(HH:MM:SS) |
문자열 |
<service_account_id>는 클라우드 서비스 계정의 계정 ID 이름입니다. 자세한 내용은 클라우드 디스커버리에서 클라우드 자원 검색 일정 생성 문서를 참조하십시오.Kubernetes 자격 증명 없는 검색 또는 클러스터 내 MID 검색
Kubernetes 자격 증명 없는 검색의 필수 조건:
클러스터에 컨테이너화된 MID 서버 것을 Kubernetes 배포합니다. 클러스터 내에서 Kubernetes API 서버를 자동으로 검색하고 인증하므로 MID 서버 자격 증명을 구성할 Kubernetes 필요가 없습니다.
| 필드 | 설명 |
|---|---|
| URL |
URL 필드에 다음 값 중 하나를 입력합니다. https://cluster 또는 https://kubernetes.default.svc |
| namespace |
시스템이 Kubernetes 검색 구성에서 전달하는 네임스페이스입니다. 다음 값 중 하나를 입력합니다.
|
| cluster_name | 고유한 이름을 입력합니다. |
가로 검색 중 디스커버리에서 수집하는 데이터
| 테이블 및 필드 | 설명 |
|---|---|
| Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] | |
| 이름 | kube-controller-manager 리더의 이름입니다. |
| K8s_uid | kube-system 네임스페이스 UID입니다. [지원되는 버전: 1.0.92 이상] |
| ip_address | Kubernetes apiserver의 host_ip에 대한 식별자입니다. |
| port |
Kubernetes apiserver 포트의 식별자입니다. |
| namespace | 이 값은 Kubernetes 검색 구성에서 시스템이 전달한 네임스페이스를 표시합니다. |
| event_timestamp | 검색 시점에 이 Kubernetes 클러스터에 생성된 최신 이벤트의 타임스탬프입니다. |
| Kubernetes 노드 [cmdb_ci_kubernetes_node] | Kubernetes 노드의 가상 측면입니다. Kubernetes 노드의 실제 측면과 관련된 데이터는 Linux 서버에 저장됩니다. |
| name | Kubernetes 노드의 이름입니다. 형식은 이름과 호스트 이름(<이름>.<호스트 이름>)으로 구성된 컴퓨터의 이름 또는 전체 이름만 가능합니다. |
| k8s_uid | Kubernetes 노드 UUID의 식별자입니다. |
| cluster | 이 자원을 포함하는 클러스터의 이름입니다. |
| operational_status | Kubernetes 노드의 운영 상태입니다. |
| Kubernetes 서비스 [cmdb_ci_kubernetes_service] | |
| name | Kubernetes 서비스의 이름입니다. |
| selector | 대상 포드를 선택하는 데 사용되는 Kubernetes 구성에 지정된 레이블 선택기의 목록으로, 쉼표로 구분됩니다. |
| namespace | Kubernetes 서비스가 속한 Kubernetes 네임스페이스입니다. |
| k8s_uid | Kubernetes 서비스 UUID입니다. |
| cluster | 이 자원을 포함하는 클러스터의 이름입니다. |
| Kubernetes 포드 [cmdb_ci_kubernetes_pod] | |
| name | Kubernetes 포드의 이름입니다. |
| k8s_uid | Kubernetes 포드 UUID입니다. |
| resourceVersion | Kubernetes 포드의 자원 버전입니다. |
| namespace | Kubernetes 포드가 속한 Kubernetes 네임스페이스입니다. |
| cluster | 이 자원을 포함하는 클러스터의 이름입니다. |
| state |
Kubernetes 포드 상태: 보류 중, 실행 중, 성공, 실패, 알 수 없음. |
| Kubernetes Cronjob [cmdb_ci_kubernetes_cronjob] | |
| name | Kubernetes cronjob의 이름입니다. |
| namespace | Kubernetes 포드가 속한 Kubernetes 네임스페이스입니다. |
| k8s_uid | Kubernetes cronjob UUID입니다. |
| cluster | 이 자원을 포함하는 클러스터의 이름입니다. |
| Kubernetes 작업 [cmdb_ci_kubernetes_job] | |
| name | Kubernetes 작업의 이름입니다. |
| namespace | Kubernetes 작업이 속한 Kubernetes 네임스페이스입니다. |
| k8s_uid | Kubernetes 작업 UUID입니다. |
| cluster | Kubernetes 작업을 포함하는 클러스터의 이름입니다. |
| Kubernetes 디먼 세트 [cmdb_ci_kubernetes_daemonset] | |
| name | Kubernetes 디먼 세트의 이름입니다. |
| namespace | Kubernetes 디먼 세트가 속한 Kubernetes 네임스페이스입니다. |
| k8s_uid | Kubernetes 디먼 세트 UUID입니다. |
| cluster | 이 자원을 포함하는 클러스터의 이름입니다. |
| pods_avail | 사용 가능한 포드 수입니다. |
| pods_failed | 실패 단계의 포드 수입니다. |
| pods_running | 실행 중 단계의 포드 수입니다. |
| pods_succeeded | 성공 단계의 포드 수입니다. |
| pods_waiting | 대기 중 단계의 포드 수입니다. |
| Kubernetes 수신 [cmdb_ci_kubernetes_ingress] | |
| name | Kubernetes 수신의 이름입니다. |
| namespace | Kubernetes 수신이 속한 Kubernetes 네임스페이스입니다. |
| k8s_uid | Kubernetes 수신 UID입니다. |
| cluster | 이 자원을 포함하는 클러스터의 이름입니다. |
|
Kubernetes 배포 [cmdb_ci_kubernetes_deployment] Kubernetes Replicaset [cmdb_ci_kubernetes_replicaset] Kubernetes 복제 컨트롤러 [cmdb_ci_kubernetes_replicationcontroller] Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset] |
|
| name | 이 자원의 이름입니다. |
| namespace | 이 자원이 속한 Kubernetes 네임스페이스입니다. |
| K8s_uid | 이 자원의 Kubernetes UID입니다. |
| cluster | 이 자원을 포함하는 클러스터의 이름입니다. |
| total_replicas | 이 자원의 복제본 수입니다. |
| desired_replicas | 올바른 상태 단계의 복제본 수입니다. |
| available_replicas | 사용 가능한 복제본 수입니다. |
| unavailable_replicas | 사용 불가능 단계의 복제본 수입니다. |
| updated_replicas | 업데이트된 복제본 수입니다. |
| Docker 컨테이너 [cmdb_ci_docker_container] | Docker 이미지를 실행하는 구성요소입니다. |
| container_id | Kubernetes docker 컨테이너의 고유 식별자입니다. 중복 기록이 생성되는 경우 검색이 실행되면 중복 제거 작업이 나타납니다. 이러한 작업을 해결하는 방법에 대한 자세한 내용은 ServiceNow® 지식베이스의 독립적인 Docker 컨테이너 식별자 만들기 [KB1443042] 문서를 참조하십시오. |
| namespace | Kubernetes docker 컨테이너가 속한 Kubernetes 네임스페이스입니다. |
| Docker 이미지 [cmdb_ci_docker_image] | Docker 컨테이너로 인스턴스화할 수 있는 애플리케이션과 관련 소프트웨어의 실행 가능한 패키지입니다. |
| image_id | Kubernetes docker 이미지의 식별자입니다. |
| name | Kubernetes docker 이미지의 이름입니다. |
| image_url | Docker 이미지를 다운로드할 URL입니다. |
| namespace | Kubernetes docker 이미지가 속한 Kubernetes 네임스페이스입니다. |
| Linux 서버 [cmdb_ci_linux_server] | Kubernetes 노드를 호스팅하는 서버입니다. |
| name | Kubernetes 노드를 작동하는 Linux 서버의 이름입니다. |
| hostname | Linux 서버의 호스트 이름입니다. |
| os | 이 Linux 서버에 배포된 운영 체제입니다. |
| kernel_release | 이 Linux 서버에 배포된 Linux 커널 운영 체제의 버전입니다. |
| ram | 이 Linux 서버에 설치된 RAM의 크기입니다. |
| ip_address | Linux 서버의 IP 주소입니다. |
| 키 값 [cmdb_key_value] | 이 구성 항목에는 Kubernetes 레이블이 포함되어 있습니다. 레이블은 포드와 같은 객체에 연결된 키/값 쌍입니다. |
| key | Kubernetes 포드 또는 Kubernetes 서비스 Key Value 매개변수의 키입니다. |
| value | Kubernetes 포드 또는 Kubernetes 서비스 Key Value 매개변수의 값입니다. |
| Kubernetes 볼륨 [cmdb_ci_kubernetes_volume] | |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| mount_path | 이 Kubernetes 볼륨에 접근하기 위한 경로입니다. |
| name | Kubernetes 볼륨의 이름입니다. |
| namespace | Kubernetes 볼륨이 속한 Kubernetes 네임스페이스입니다. |
| cluster | 이 자원을 포함하는 클러스터의 이름입니다. |
| volume_id | Kubernetes 볼륨의 ID입니다. |
| OpenShift 배포 구성 [cmdb_ci_openshift_dep_conf] | |
| name | OpenShift 배포 구성의 이름입니다. |
| namespace | 배포 구성을 포함하는 네임스페이스의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| URL | 배포된 구성의 URL OpenShift 로, 1.16 이전 버전에서만 Kubernetes 사용할 수 있습니다. |
| OpenShift 빌드 구성 [cmdb_ci_openshift_build_conf] | |
| name | OpenShift 빌드 구성의 이름입니다. |
| namespace | 빌드 구성을 포함하는 OpenShift 네임스페이스의 이름입니다. |
| k8s | Kubernetes 볼륨 UUID입니다. |
| URL | 빌드 구성의 URL OpenShift 로, 1.16 이전 버전에서만 Kubernetes 사용할 수 있습니다. |
| OpenShift Source2Image [cmdb_ci_openshift_source_2_image] | |
| name | OpenShift 소스 이미지의 이름입니다. |
| to | 관련 이미지입니다. |
| parent_id | OpenShift 소스 이미지의 ID입니다. |
| OpenShift 경로 [cmdb_ci_openshift_route] | |
| name | OpenShift 경로의 이름입니다. |
| namespace | OpenShift 경로를 포함하는 네임스페이스의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| URL | 경로의 URL은 OpenShift 1.16 이전 버전에서만 Kubernetes 사용할 수 있습니다. |
| 호스트 | OpenShift 경로의 대상 호스트입니다. |
| port | OpenShift 경로의 대상 포트입니다. |
| OpenShift 그룹 [cmdb_ci_openshift_group] | |
| name | OpenShift 그룹의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| URL | 그룹의 URL로 OpenShift , 1.16 이전 버전에서만 Kubernetes 사용할 수 있습니다. |
| OpenShift 사용자 [cmdb_ci_openshift_user] | |
| name | OpenShift 사용자의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| URL | 사용자의 URL로 OpenShift , 1.16 이전 버전에서만 Kubernetes 사용할 수 있습니다. |
| full_name | OpenShift 사용자의 전체 이름입니다. |
| OpenShift 프로젝트 [cmdb_ci_openshift_project] | |
| name | OpenShift 프로젝트의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| URL | 프로젝트의 URL로 OpenShift , 1.16 이전 버전에서만 Kubernetes 사용할 수 있습니다. |
| OpenShift 이미지 [cmdb_ci_openshift_images] | |
| name | OpenShift 이미지의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| URL | 1.16 이전 버전에서만 Kubernetes 사용할 수 있는 이미지의 URL OpenShift 입니다. |
| docker_image_metadata_id | Docker 이미지의 ID입니다. |
| docker_image_metadata_parent_id | 이미지 상위 ID의 ID입니다. |
| arch | 이미지의 아키텍처입니다. |
| size | 이미지 크기입니다. |
| hostname | 이미지와 관련된 호스트 이름입니다. |
| OpenShift 이미지 스트림 [cmdb_ci_openshift_images_stream] | |
| name | OpenShift 이미지 스트림의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| URL | 이미지 스트림의 URL로 OpenShift , 1.16 이전 버전에서만 Kubernetes 사용할 수 있습니다. |
| 네임스페이스 | OpenShift 이미지 스트림을 포함하는 네임스페이스의 이름입니다. |
| OpenShift Docker 이미지 리포지토리 [cmdb_ci_openshift_docker_images_repository] | |
| name | OpenShift Docker 이미지 리포지토리의 이름입니다. |
| parent_ID | 상위 시스템의 ID입니다. |
| 네임스페이스 [cmdb_ci_kubernetes_namespace] | |
| name | Kubernetes 네임스페이스의 이름입니다. |
| state |
Kubernetes 네임스페이스 단계: 활성 또는 종료 중. |
| 테이블 및 필드 | 설명 |
|---|---|
| 컨테이너 리포지토리 [cmdb_ci_container_repository] | |
| 이름 [name] | 컨테이너 리포지토리의 이름입니다. |
| 컨테이너 리포지토리 항목 [cmdb_ci_container_repository_entry] | |
| 이름 [name] | 컨테이너 리포지토리 항목의 이름입니다. |
| 범주 [category] | 컨테이너 리포지토리 항목의 범주입니다. |
Kubernetes 패턴으로 수집되는 CI 관계
| CI | 관계 | CI |
|---|---|---|
| Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] | Contains::Contained By |
Kubernetes 서비스 [cmdb_ci_kubernetes_service] |
| Contains::Contained By | Kubernetes 포드 [cmdb_ci_kubernetes_pod] | |
| Contains::Contained By | Kubernetes 수신 [cmdb_ci_kubernetes_ingress] | |
| Contains::Contained By |
Kubernetes 네임스페이스 [cmdb_ci_kubernetes_namespace] |
|
| Contains::Contained By | [cmdb_ci_openshift_source_2_image] | |
| Contains::Contained By | OpenShift 그룹 [cmdb_ci_openshift_group] | |
| Contains::Contained By | OpenShift 사용자 [cmdb_ci_openshift_user] | |
| Contains::Contained By | OpenShift 프로젝트 [cmdb_ci_openshift_project] | |
| Contains::Contained By | OpenShift 이미지 [cmdb_ci_openshift_images] | |
| Contains::Contained By | OpenShift Docker 이미지 리포지토리 [cmdb_ci_openshift_docker_images_repository] | |
| Cluster of::Cluster | Kubernetes 노드 [cmdb_ci_kubernetes_node] | |
| Manages::Managed by | Linux 서버 [cmdb_ci_linux_server] | |
| Contained by::Contains | 자원 그룹 [cmdb_ci_resource_group] | |
| Kubernetes 포드 [cmdb_ci_kubernetes_pod] | Contains::Contained By | Docker 컨테이너 [cmdb_ci_docker_container] |
| Contains::Contained By | Docker 이미지 [cmdb_ci_docker_image] | |
| Contains::Contained By | Kubernetes 볼륨 [cmdb_ci_kubernetes_volume] | |
|
Kubernetes 작업 부하 [cmdb_ci_kubernetes_workload] |
Hosted on::Hosts | Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] |
| Kubernetes 서비스 [cmdb_ci_kubernetes_service] | Provides::Provided By |
Kubernetes 작업 부하 [cmdb_ci_kubernetes_workload] |
|
Kubernetes 배포 [cmdb_ci_kubernetes_deployment] |
Owns::Owned By |
Kubernetes Replicaset [cmdb_ci_kubernetes_replicaset] |
|
Kubernetes Replicaset [cmdb_ci_kubernetes_replicaset] |
iInstantiates:: Instantiated By | Kubernetes 포드 [cmdb_ci_kubernetes_pod] |
| Kubernetes 작업 부하 [cmdb_ci_kubernetes_workload] | Provided By::Provides To | Kubernetes 서비스 [cmdb_ci_kubernetes_service] |
| Kubernetes 배포 [cmdb_ci_kubernetes_deployment] | Hosted on::Hosts | Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] |
| Kubernetes 디먼 세트 [cmdb_ci_kubernetes_daemonset] | Hosted on::Hosts | Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] |
| Kubernetes Statefulset [cmdb_ci_kubernetes_statefulset] | Hosted on::Hosts | Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] |
| Kubernetes 네임스페이스 [cmdb_ci_kubernetes_namespace] | Contains::Contained By | OpenShift 배포 구성 [cmdb_ci_openshift_dep_conf] |
| Contains::Contained By | OpenShift 빌드 구성 [cmdb_ci_openshift_build_conf] | |
| Contains::Contained By | OpenShift 경로 [cmdb_ci_openshift_route] | |
| Contains::Contained By | OpenShift 이미지 스트림 [cmdb_ci_openshift_images_stream] | |
| Docker 이미지 [cmdb_ci_docker_image] | Instantiates::Instantiated by | Docker 컨테이너 [cmdb_ci_docker_container] |
| Linux 서버 [cmdb_ci_linux_server] | Contains::Contained By | Kubernetes 포드 [cmdb_ci_kubernetes_pod] |
| Runs::Runs on | Docker 컨테이너 [cmdb_ci_docker_container] | |
| Hosts::Hosted on | Kubernetes 노드 [cmdb_ci_kubernetes_node] | |
| OpenShift 배포 구성 [cmdb_ci_openshift_dep_conf] | Contains::Contained By | [cmdb_ci_config_file_tracked] |
| CI | 관계 | CI |
|---|---|---|
| Docker 이미지 [cmdb_ci_docker_image] | Provisioned From::Provisioned | 컨테이너 리포지토리 항목 [cmdb_ci_container_repository_entry] |
| 컨테이너 리포지토리 항목 [cmdb_ci_container_repository_entry] | Hosted on::Hosts | 컨테이너 리포지토리 [cmdb_ci_container_repository] |
Istio Service Mesh 확장에서 수집하는 CI 관계
Istio Service Mesh 확장의 필수 조건:
- Istio Service Mesh 및 Prometheus 구성요소가 Kubernetes 클러스터에 구성되어 있어야 합니다.
- Prometheus가
queryistio_requests_total명령을 사용하여 서비스 연결 정보를 검색해야 합니다. - 애플리케이션 서비스가 연결되어 있는지 확인하고 Kiali 그래프에서 서비스 간 트래픽 플로우를 확인합니다.
Bookinfo 애플리케이션에 대한 자세한 내용은 https://istio.io/latest/docs/examples/bookinfo/ 문서를 참조하십시오.
| CI | 관계 | CI |
|---|---|---|
| Kubernetes 서비스 [cmdb_ci_kubernetes_servi ce] | Connects to::Connected by | Kubernetes 서비스 [cmdb_ci_kubernetes_servi ce] |
Kubernetes 이벤트 패턴으로 수집되는 CI 관계
| CI | 관계 | CI |
|---|---|---|
| Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] | Contains::Contained By |
Kubernetes 서비스 [cmdb_ci_kubernetes_service] |
| Contains::Contained By | Kubernetes 포드 [cmdb_ci_kubernetes_pod] | |
| Cluster of::Cluster | Kubernetes 노드 [cmdb_ci_kubernetes_node] | |
| Manages::Managed by | [cmdb_ci_linux_server] | |
| Kubernetes 포드 [cmdb_ci_kubernetes_pod] | Contains::Contained By | Docker 컨테이너 [cmdb_ci_docker_container] |
| Contains::Contained By | Docker 이미지 [cmdb_ci_docker_image] | |
| Contains::Contained By | Kubernetes 볼륨 [cmdb_ci_kubernetes_volume] | |
| Docker 이미지 [cmdb_ci_docker_image] | Instantiates::Instantiated by | Docker 컨테이너 [cmdb_ci_docker_container] |
| Linux 서버 [cmdb_ci_linux_server] | Contains::Contained By | Kubernetes 포드 [cmdb_ci_kubernetes_pod] |
| Runs::Runs on | Docker 컨테이너 [cmdb_ci_docker_container] | |
| Hosts::Hosted on | Kubernetes 노드 [cmdb_ci_kubernetes_node] |
태그 기반 검색 중 서비스 매핑에서 수집하는 데이터
| CI | 관계 | CI |
|---|---|---|
| Kubernetes 서비스 [cmdb_ci_kubernetes_service] | Contained By::Contains | Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] |
| OpenShift 프로젝트 [cmdb_ci_openshift_project] | Contained by::Contains | Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] |
| Kubernetes 포드 [cmdb_ci_kubernetes_pod] | Contained by::Contains | Kubernetes 클러스터 [cmdb_ci_kubernetes_cluster] |
| Kubernetes 포드 [cmdb_ci_kubernetes_pod] | Cluster::Cluster of | Kubernetes 서비스 [cmdb_ci_kubernetes_service] |
| Kubernetes 네임스페이스 [cmdb_ci_kubernetes_namespace] | Contains::Contained By | OpenShift 배포된 구성 [cmdb_ci_openshift_dep_conf] |
| Kubernetes 네임스페이스 [cmdb_ci_kubernetes_namespace] | Contains::Contained By | OpenShift 빌드 구성 [cmdb_ci_openshift_build_conf] |
| Kubernetes 네임스페이스 [cmdb_ci_kubernetes_namespace] | Contains::Contained By | OpenShift 경로 [cmdb_ci_openshift_route] |
| Kubernetes 네임스페이스 [cmdb_ci_kubernetes_namespace] | Contains::Contained By | OpenShift 이미지 스트림 [cmdb_ci_openshift_images_stream] |
Kubernetes 대시보드
배포의 Kubernetes 구성요소 검색을 마친 후 디스커버리 다음으로 이동할 수 있습니다. 대시보드를 사용하여 Kubernetes Explorer 조직의 환경과 자원을 봅니다 Kubernetes . 향상된 Kubernetes 대시보드를 사용하려면 버전 1.3.1(2024년 8월 스토어)부터 시작해야 디스커버리 관리자 작업 공간 하는지 확인합니다. Kubernetes Explorer에 대한 자세한 내용은 Kubernetes Explorer 문서를 참조하십시오.
문제 해결
| 증상 | 원인 | 솔루션 |
|---|---|---|
| 검색에 실패했습니다. 검색 메시지에는 REST 시간 제한으로 인해 발생한 오류 정보가 포함되어 있습니다. | 배포에는 REST 호출 응답을 보내는 CI가 많습니다. MID 서버에서는 mid.sa.cloud.request_timeout 매개변수로 제어되는 시간 제한을 초과하지 않고 REST 호출 응답을 처리할 수 없습니다. | 기본적으로 mid.sa.cloud.request_timeout 매개변수는 3만 밀리초로 설정되어 있습니다. 관련 MID 서버에 대한 이 매개변수의 값을 늘리고 검색을 다시 실행합니다. 주: 관련 MID 서버의 구성 매개변수 관련 목록에 이 매개변수가 표시되지 않으면 추가해야 할 수 있습니다. |
| 세션 디버그 중에 패턴 디자이너가 실패합니다. 패턴 디자이너 메시지에는 시간 제한으로 인해 발생한 오류 정보가 포함되어 있습니다. | 패턴 디버깅 중(검색 중 아님) 시간 초과로 인해 패턴 디자이너가 실패합니다. | 기본적으로 sa.debugger.max_timeout 매개변수는 240초로 설정되어 있습니다. 관련 MID 서버에 대한 이 매개변수의 값을 늘립니다. |
디버그 모드에서 Kubernetes 패턴을 실행하려면 운영 정보를 위해 KB0832567를 참조하십시오.