Kubernetes 검색
ServiceNow ITOM 가시성는 Kubernetes 및 OpenShift 구성요소를 찾고 이들을 포함하는 애플리케이션 서비스를 생성합니다. 검색는 또한 Kubernetes 이벤트를 찾고 동적인 Kubernetes 환경을 반영하기 위해 CMDB를 자주 업데이트합니다.
- Kubernetes 패턴의 Collect OpenShift info 확장 섹션은 Kubernetes 배포의 OpenShift 구성요소를 검색합니다. OpenShift 빌드 구성 확장 섹션은 2019년 10월 릴리스, 스토어 버전 1.0.53에서 사용 가능합니다. Now Platform London 패치 10, Madrid 패치 5, New York에서 지원됩니다.
- Service Mesh 확장은 서비스 메시 상세 정보를 검색합니다. 이 정보를 사용하여 패턴에서 Connects to::Connected로 나타나는 서비스 간 관계를 생성할 수 있습니다. 서비스 메시 검색을 위해서는 K8s(Kubernetes) 클러스터에 Istio를 배포해야 합니다. 서비스 메시 확장 섹션은 Kubernetes 확장 클래스에서 사용할 수 있습니다. Madrid 릴리스 이상을 사용하는 Now Platform에서 지원됩니다.
- Collect Container Repository 및 확장 섹션에서는 이러한 레지스트리에서 컨테이너 레지스트리와 이미지를 찾습니다.
또한 검색는 Kubernetes 이벤트 패턴을 사용하여 Kubernetes 버전 1.21에 대한 Kubernetes 구성요소의 이벤트를 검색합니다.
ServiceNow Store의 1.0.68 릴리스부터 서비스 매핑에서 CI 관계를 사용하여 태그 기반 검색 중에 Kubernetes 구성요소를 애플리케이션 서비스에 추가할 수 있습니다.
- GCP(Google Cloud Platform) – Kubernetes Discovery 및 Schedule Creator. 릴리스 버전: 1.0.89 - 2022년 4월.
- Amazon Web Services(AWS) - Kubernetes Discovery 및 Schedule Creator. 릴리스 버전: 1.0.90 - 2022년 5월.
- Microsoft Azure Cloud Computing Services - Kubernetes Discovery 및 Schedule Creator. 릴리스 버전: 1.0.91 - 2022년 7월.
스토어에서 앱 요청
ServiceNow Store 웹 사이트를 방문하면 사용 가능한 모든 앱을 확인하고 스토어에 요청을 제출하는 방법에 대한 정보를 참조할 수 있습니다. 출시된 모든 앱의 누적 릴리스 정보는 ServiceNow Store 버전 기록 릴리스 정보를 참조하십시오.
필요 조건
- ServiceNow Store에서 최신 Discovery and Service Mapping Patterns 애플리케이션을 배포합니다.
- 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명령을 사용합니다. - 출력에는 모든 계정과 모든 토큰이 표시됩니다. 유효한 토큰을 찾습니다.
kubectl이 일반 Kubernetes 계정인 경우describe는 일반 kubectl 메서드입니다.secret매개변수는 Kubernetes 클러스터에서 기본 토큰이 secret 유형의 객체 내부에 포함되어 보호됨을 반영합니다.kubectl describe secret명령 출력은 BASE64 인코딩 형식입니다. 기본 토큰 이름이 없으면
kubectl describe secret default-token-g6pwc명령을 사용합니다.default-token-g6pwc는 g6pwc에 대한 기본 토큰의 매개변수 값을 반영합니다.- 출력은 이 Kubernetes 계정에 대한 모든 기존 토큰을 보여줍니다.
ServiceNow 플랫폼에서 Kubernetes 자격 증명을 구성하는 데 사용할 토큰 하나를 선택합니다.
- 기본 토큰 이름이 없으면
- kubeapi 서버의 URL을 찾습니다.
- 성공적인 Kubernetes 검색을 위해 MID Server에서 API 서버에 연결할 수 있는지 확인합니다.
- Kubernetes 플랫폼에서 구성된 사용자에게 다음 /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
- Kubernetes 배포의 OpenShift 구성요소를 검색하려면, Kubernetes 플랫폼에서 구성된 사용자에게 다음 /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
서비스 메시 정보를 검색하려면 다음을 수행합니다.- K8s 클러스터에 Istio를 배포합니다.
- Prometheus URL을 입력합니다.
- Istio에서 메트릭을 스크레이핑하도록 Prometheus를 구성합니다.
- Kubernetes 구성 파일 가져오기 확장을 활성화하여 다음을 수행합니다.
- 구성 파일을 검색합니다.
- 추적된 구성 파일을 생성합니다.
- 관계를 사용하여 구성 파일을 작업 부하와 서비스에 매핑합니다.
주:추적된 파일의 컨텐츠는 버전 1.0.92 이상인 경우 JSON 형식입니다. 추적된 파일의 컨텐츠는 버전 1.0.91 이하인 경우 YAML 형식입니다. - ServiceNow 플랫폼에 Kubernetes 자격 증명을 생성합니다.
- ServiceNow 플랫폼에서 다음으로 이동합니다. .
- 새로 만들기를 선택합니다.
- Kubernetes 자격 증명을 선택합니다.
- 양식 필드를 구성합니다(테이블 참조).
필드 설명 이름 이 자격 증명을 설명하는 고유한 이름을 입력합니다. 사용자 이름 자격 증명 테이블에 생성할 사용자 이름을 입력합니다. 사용자 이름에 선행 또는 후행 공백을 넣지 않도록 합니다. 플랫폼이 사용자 이름에서 선행 또는 후행 공백을 탐지하면 경고가 표시됩니다. 암호 이 자격 증명의 암호를 입력합니다. 전달자 토큰 전달자 토큰을 사용하는 고급 인증의 경우 접근할 Kubernetes때 인증에 사용하는 전달자 토큰을 검색 입력합니다. 문자 시퀀스를 토큰으로 사용합니다(예: 31ada4fd-adec-460c-809a-9e56ceb75269). 주:전달자 토큰은 BASE64 인코딩 형식이어야 합니다.전달자 토큰 인증 전달자 토큰을 사용하는 고급 인증의 경우 이 확인란을 선택합니다. 자격 증명 별칭 별칭을 구성하면 Kubernetes 이외의 장치 및 애플리케이션에 Kubernetes 자격 증명을 사용할 수 있습니다. 또한 이 별칭을 사용하여 Kubernetes 배포를 검색하기 위한 서버리스 Discovery 일정을 정의할 수 있습니다. - 자물쇠 아이콘을 선택한 다음 검색 아이콘을 선택합니다.
- 연결 및 자격 증명 별칭 양식에서 새로 만들기를 선택합니다.
- 자격 증명 별칭 기록의 이름을 지정합니다.
- 별칭에 대한 속성을 정의합니다. Type을 자격 증명으로 설정합니다.
- 양식 헤더를 마우스 오른쪽 버튼으로 클릭하고 저장을 선택한 다음 업데이트를 선택합니다.
- 연결 및 자격 증명 별칭 양식에서 새로 추가한 별칭을 선택합니다.
자격 증명 별칭 필드에 별칭이 나타납니다.
- Kubernetes 자격 증명 양식에서 업데이트를 선택합니다.
- Kubernetes 패턴을 위해 서버리스 검색 일정을 생성합니다.제품 설명서에 설명된 대로 서버리스 실행 패턴을 생성하고 정의합니다. 다음과 같이 Kubernetes 패턴에 필요한 매개변수를 구성합니다.
표 1. 실행 패턴 속성 구성 필드 설명 url Kubernetes apiserver의 호스트이름, IP 또는 FQDN 및 포트에 대한 식별자입니다. example_hostname: example_port 또는 xample_ip:example_port 형식을 사용합니다. URL에 올바른 프로토콜(HTTP 또는 HTTPS)을 입력합니다. namespace 시스템이 Kubernetes Discovery 구성에서 전달하는 네임스페이스입니다. 다음 값 중 하나를 입력합니다. - 개별 네임스페이스: 네임스페이스를 입력한 다음 "kube-system"을 입력합니다. 예: dev,kube-system
- 기본값: default, kube-system 입력
- 다수의 네임스페이스: 네임스페이스를 입력하고 쉼표(,)로 값을 구분한 다음 "kube-system"을 입력합니다. 예: automation,application,test,kube-system
- 모든 네임스페이스: 별표(*)를 사용하여 모든 네임스페이스를 입력합니다.
자격 증명 별칭 이전에 생성한 Kubernetes 자격 증명과 관련된 별칭입니다. 클러스터 이름 Kubernetes 클러스터의 이름으로, <serviceaccountid><space><clustername> 형식입니다. 제공자 클라우드 제공자: GCP 또는 AWS 또는 Azure입니다. - Kubernetes 이벤트 패턴에 대한 서버리스 검색 일정을 생성합니다. 5분 또는 10분마다 실행하도록 일정을 구성합니다. 주:패턴을 처음 실행하면 event_timestamp가 저장됩니다. 이후에는 타임스탬프를 기반으로 델타 이벤트만 수집됩니다. 패턴이 더 자주 실행될수록 필요한 CMDB IRE 업데이트가 줄어듭니다.
검색 일정에 대해 서버리스 실행 패턴을 생성하여 Kubernetes 이벤트 패턴에 할당합니다. 실행 패턴 속성 구성 문서에 설명된 대로 Kubernetes 패턴에 필요한 매개변수를 구성합니다.
- 검색된 구성 요소를 애플리케이션 서비스에 포함하려면 서비스 매핑의 태그 기반 검색에 사용되는 CI 관계를 활성화합니다. 이 CI 관계는 ServiceNow Store에서 1.0.68 릴리스부터 사용할 수 있습니다. 운영 단계는 태그 기반 검색 구성 문서를 참조하십시오.
Kubernetes 클라우드 인프라 검색의 필수 조건
Google Cloud Platform(GCP) - Kubernetes Discovery 및 Schedule Creator 패턴의 경우 다음을 수행합니다.
- ServiceNow 인스턴스에서 유효한 자격 증명과 권한이 있는 Google Cloud Platform(GCP) 서비스 계정을 설정합니다.
- GCP 인프라에서 모든 클라우드 API에 대한 전체 액세스 권한을 보유하도록 MID 서버를 설정합니다. 클라우드 API의 액세스 범위를 "모든 클라우드 API에 대한 전체 액세스 허용"으로 설정합니다. MID Server 인스턴스는 프로젝트에 해당하는 클러스터에만 액세스할 수 있습니다.
sys_properties.list로 이동하여 다음 속성을 구성합니다.- sn_itom_pattern.k8s_midserver: 올바른 MID Server 이름을 지정합니다.
- sn_itom_pattern.k8s_create_schedule_enabled: 값을 true로 설정합니다.
- API를 사용하여 서버리스 일정을 생성하려면 KB1168613에 첨부된 업데이트 세트를 임포트합니다(Tokyo 이전 릴리스 버전만 해당).
- Google Cloud 검색를 생성하고 실행합니다. 주:
GKE Kubernetes 일정을 실행하는 동안 전달자 토큰을 가져오려면 다음 gcloud 명령을 사용합니다.
gcloud config config-helper --format="value(credential.access_token)"MID Server 인스턴스에서 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로 설정합니다.
- API를 사용하여 서버리스 일정을 생성하려면 KB1168613 에 첨부된 업데이트 세트를 임포트합니다(Tokyo 이전 릴리스 버전만 해당).
AWS Cloud Discovery 일정을 생성하고 실행합니다.
- ServiceNow 인스턴스에서 유효한 자격 증명과 권한이 있는 Azure 서비스 계정을 구성합니다.
- AZ CLI(명령줄 인터페이스)를 구성하여 MID Server를 설정합니다. Azure CLI 자격 증명을 구성하면 AKS 클러스터에 대한 액세스 권한이 부여됩니다.주:
- 시스템에 로그인한 사용자는 MID Server 사용자와 같아야 합니다.
- AKS 클러스터 검색 구성에 대한 자세한 내용은 Now Support 지식베이스에서 AKS 클러스터 검색 구성 상세 정보 [KB1220553] 문서를 참조하십시오.
sys_properties.list로 이동하여 다음 속성을 구성합니다.- sn_itom_pattern.k8s_midserver: 유효한 MID Server 이름을 지정합니다.
- sn_itom_pattern.k8s_create_schedule_enabled: 값을 True로 설정합니다.
- API를 사용하여 서버리스 일정을 생성하려면 KB1168613에 첨부된 업데이트 세트를 임포트합니다(Tokyo 이전 릴리스 버전만 해당).
- Azure 클라우드 검색 일정을 생성하고 실행합니다.주:AKS Kubernetes 일정을 실행하는 동안 전달자 토큰을 가져오려면 Az CLI 명령
az aks get-credentials --name <cluster_name> --overwrite-existing --resource-group <resourceGroup_name> --file -을 사용합니다.토큰을 생성하려면 MID Server 인스턴스에 구성된 AZ CLI가 AKS 클러스터에 접근할 수 있어야 합니다.
| 속성 이름 | 속성 설명 | 유형 | 기본값 | |
|---|---|---|---|---|
|
sn_itom_pattern.manifest_digest_image_id | 부울 |
false 주:
이 속성을 true로 설정하고 검색을 실행하기 전에 모든 Docker 이미지 기록을 삭제하여 중복 기록이 생성되지 않도록 합니다. |
||
|
sn_itom_pattern.k8s_create_schedule_enabled |
패턴 실행 제어를 담당하는 시스템 속성에서 활성화/비활성화할 수 있는 기능 플래그입니다. |
부울 | false | |
| MID Server |
sn_itom_pattern.k8s_midserver |
[기본] 예 - 유효한 MID Server 이름 |
문자열 | |
|
sn_itom_pattern.k8s_<service_account_id>_midserver |
[서비스 계정 수준 기준] 예 - 유효한 MID Server 이름 |
문자열 | ||
|
sn_itom_pattern.k8s_<service_account_id>_<clustername>_midserver |
[클러스터 이름 기준] 예 - 유효한 MID Server 이름 |
문자열 | ||
|
sn_itom_pattern.kubernetes_collect_volume |
속성이 True로 설정되면 Kubernetes 볼륨 [cmdb_ci_kubernetes_volume]에 대한 데이터가 채워집니다. |
문자열 | 아니오 | |
| 자격 증명 별칭 |
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 |
[지원되는 Discovery 일정 실행 - 매일, 요청 시, 평일, 주말, 한 달의 마지막 날, 달력 분기 말] 예 - 매일 |
문자열 | ||
|
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 자격 증명 없는 검색의 필수 조건:
Kubernetes 클러스터에 컨테이너화된 MID Server를 배포합니다. Kubernetes 클러스터의 MID Server가 자동으로 API 서버를 검색하고 인증하기 때문에 Kubernetes 자격 증명을 구성할 필요가 없습니다.
| 필드 | 설명 |
|---|---|
| URL | URL 필드에 다음 값 중 하나를 입력합니다. https://cluster 또는 https://kubernetes.default.svc |
| namespace | 시스템이 Kubernetes Discovery 구성에서 전달하는 네임스페이스입니다. 다음 값 중 하나를 입력합니다.
|
| 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 | OpenShift 배포 구성의 URL입니다. |
| OpenShift 빌드 구성 [cmdb_ci_openshift_build_conf] | |
| name | OpenShift 빌드 구성의 이름입니다. |
| namespace | 빌드 구성을 포함하는 OpenShift 네임스페이스의 이름입니다. |
| k8s | Kubernetes 볼륨 UUID입니다. |
| url | OpenShift 빌드 구성의 URL입니다. |
| 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 | OpenShift 경로의 URL입니다. |
| host | OpenShift 경로의 대상 호스트입니다. |
| port | OpenShift 경로의 대상 포트입니다. |
| OpenShift 그룹 [cmdb_ci_openshift_group] | |
| name | OpenShift 그룹의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| url | OpenShift 그룹의 URL입니다. |
| OpenShift 사용자 [cmdb_ci_openshift_user] | |
| name | OpenShift 사용자의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| url | OpenShift 사용자의 URL입니다. |
| full_name | OpenShift 사용자의 전체 이름입니다. |
| OpenShift 프로젝트 [cmdb_ci_openshift_project] | |
| name | OpenShift 프로젝트의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| url | OpenShift 프로젝트의 URL입니다. |
| OpenShift 이미지 [cmdb_ci_openshift_images] | |
| name | OpenShift 이미지의 이름입니다. |
| k8s_uid | Kubernetes 볼륨 UUID입니다. |
| url | OpenShift 이미지의 URL입니다. |
| 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 | OpenShift 이미지 스트림의 URL입니다. |
| namespace | 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] | |
| 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 있습니다. 자세한 내용은 Kubernetes 대시보드를 참조하십시오.
문제 해결
| 증상 | 원인 | 솔루션 |
|---|---|---|
| 검색에 실패했습니다. 검색 메시지에는 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를 참조하십시오.