IBM Cloud Kubernetes Service 로그 데이터를 IBM Cloud Logs로 전송합니다
이 튜토리얼에서는 IBM Cloud® Kubernetes Service 직접 로그를 전송하도록 IBM Cloud Logs 설정합니다. 이러한 로그는 문제를 해결하고 Kubernetes 클러스터 및 앱의 상태와 성능을 개선하는 데 도움이 됩니다.
목표
이 튜토리얼에서는 이렇게 합니다:
-
기존 로깅 에이전트 클러스터에 IBM Cloud Kubernetes Service를 배포합니다.
-
로그 데이터가 IBM Cloud Logs 인스턴스로 흘러가는지 확인합니다.
시작하기 전에
시작하기 전에 전제 조건이 충족되었는지 확인하세요.
-
IBM Cloud® Kubernetes Service 인스턴스를 생성하고, IBM Cloud Logs 의 프로비저닝을 수행합니다.
-
IBM Cloud CLI를 설치하십시오.
-
Kubernetes 커맨드라인 도구인 kubectl를 설치합니다.
-
JSON CLI 프로세서 (
jq)를 설치합니다. -
YAML CLI 프로세서 (
yq)를 설치합니다.
IBM Cloud CLI, kubectl, jq 및 yq 을 설치하는 대신 IBM Cloud 셸를 사용하는 방법이 있습니다
클러스터에 연결
IBM Cloud Kubernetes Service 클러스터에 연결합니다. 클러스터에 연결하면 클러스터에서 kubectl 명령을 실행할 수 있습니다.
-
IBM Cloud 계정에 로그인하십시오. 페더레이션 ID를 사용하는 경우
--sso옵션을 포함하세요.ibmcloud login -
IBM Cloud Kubernetes Service CLI 플러그인 설치
ibmcloud plugin install ks -
사용 가능한 클러스터를 나열하고 연결할 클러스터를 메모해 두세요.
ibmcloud ks clusters -
클러스터에 연결합니다.
<cluster_name>을 클러스터 이름으로 바꿉니다.ibmcloud ks cluster config --cluster <cluster_name> -
모든 네임스페이스에서 실행 중인 모든 파드를 나열하여 클러스터에 연결되어 있고
kubectl명령을 실행할 수 있는지 확인합니다.kubectl get pods --all-namespaces
API 키 만들기
로깅 에이전트를 데몬셋으로 프로비저닝하기 전에 IAM API 키와 로깅 수집 엔드포인트가 필요합니다. IBM Cloud CLI를 사용하여 이 정보를 얻습니다.
먼저 서비스 ID를 생성하고 API 키를 받습니다.
-
다음 명령을 실행하여 서비스 ID 를 생성합니다.
ibmcloud iam service-id-create kubernetes-logs-agent --description "Service ID for sending logs from IKS" -
다음 명령을 실행하여 생성된 서비스 ID에 IBM Cloud Logs의
Sender역할을 부여합니다.ibmcloud iam service-policy-create kubernetes-logs-agent --service-name logs --roles Sender -
다음 명령을 실행하여 IAM API 키를 만듭니다. 필요한 경우 키 이름(
kubernetes-logs-agent-apikey)과 설명(--d)을 사용자 지정할 수 있습니다.ibmcloud iam service-api-key-create kubernetes-logs-agent-apikey kubernetes-logs-agent --description "API key for sending logs to the IBM Cloud Logs service"API 키는 다음 출력에
API Key으로 반환됩니다:ID ApiKey-xxxxxxxx-b815-46c7-bc9f-516115bc31c6 Name kubernetes-logs-agent-apikey Description API key for sending logs to the IBM Cloud Logs service Created At 2024-09-18T17:17+0000 API Key <apikey is displayed here> Locked false
참고:
-
API 키를 만들 때마다 새로운 IAM 비밀 번호가 생성됩니다.
-
API 키에는 민감한 정보가 포함되어 있으므로 안전하게 보관해야 합니다.
로깅 엔드포인트 결정하기
두 번째로 필요한 정보는 IBM Cloud Logs 인스턴스에 대한 수집 엔드포인트입니다. 이 명령어를 사용하여 URL 검색하십시오:
ibmcloud resource service-instances --service-name logs --long --output JSON | jq '[.[] | {name: .name, id: .id, region: .region_id, ingestion_endpoint: .extensions.external_ingress}]'
엔드포인트는 다음과 유사합니다:
ingestion_endpoint: 3a622101-7521-4002-bf91-8c26e17eedcf.ingress.eu-de.logs.cloud.ibm.com
상담원 YAML 파일 만들기
이 단계에서는 에이전트 데몬 세트를 구성하는 데 사용되는 YAML 파일을 만듭니다.
-
다음 내용으로
logs-values.yaml이라는 파일을 만듭니다:이 파일에는 배포에 특정한 구성이 포함되어 있습니다.
metadata: name: "logs-agent" image: version: "1.4.0" # required clusterName: "" # Enter the name of your cluster. This information is used to improve the metadata and help with your filtering. env: # ingestionHost is a required field. For example: # ingestionHost: "<logs instance>.ingress.us-east.logs.cloud.ibm.com" ingestionHost: "" # required # If you are using private CSE proxy, then use port number "3443" # If you are using private VPE Gateway, then use port number "443" # If you are using the public endpoint, then use port number "443" ingestionPort: "" # required iamMode: "TrustedProfile" # trustedProfileID - trusted profile id - required for iam trusted profile mode trustedProfileID: "Profile-yyyyyyyy-xxxx-xxxx-yyyy-zzzzzzzzzzzz" # required if iamMode is set to TrustedProfile -
Yaml 파일의 필드를 사용자 환경에 맞는 값으로 업데이트합니다.
데몬 세트 배포
API 키, 엔드포인트 URL, YAML 파일을 사용하여 에이전트를 클러스터에 배포합니다.
-
helm registry login명령을 실행하여 Helm 레지스트리에 로그인합니다:helm registry login -u iambearer -p $(ibmcloud iam oauth-tokens --output json | jq -r .iam_token | cut -d " " -f2) icr.ioWindows Windows PowerShell 사용자는 다음 명령을 대신 사용해야 합니다
helm registry login -u iambearer -p ((ibmcloud iam oauth-tokens --output json | ConvertFrom-Json).iam_token -replace 'Bearer ', '') icr.io자세한 내용은 ' ' Container Registry'에서 ' Helm 차트 사용: 다른 레지스트리 또는 ' Helm 리포지토리에서 차트 가져오기 을 참조하세요.
-
에이전트를 배포합니다.
서비스 ID API 키(
iamMode=IAMAPIKey)를 사용하는 경우 다음 명령을 실행합니다:helm install <install-name> oci://icr.io/ibm/observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --create-namespace --set secret.iamAPIKey=<APIKey-value>여기서,
<install-name>Helm 의 설치 이름입니다(logs-agent)<chart-version>'은 헬름 차트의 버전입니다. Helm 차트 버전은 에이전트 이미지 버전과 일치해야 합니다. 자세한 내용은 Helm 차트 버전을 참조하세요.<PATH>'은 'logs-values.yaml파일이 있는 디렉토리 경로입니다.<APIKey-value>'은 ' ServiceID ' 1단계의 설정'과 연결된 IAM 아피키입니다
신뢰할 수 있는 프로필을 사용하여 상담원을 배포할 수도 있습니다. 자세한 내용은 Helm 차트를 사용하여 Kubernetes 클러스터용 로깅 에이전트 배포하기를 참조한다.
로그가 전송되고 있는지 확인
IBM Cloud® Kubernetes Service 로그가 IBM Cloud Logs로 성공적으로 흘러가도록 하려면 다음 단계를 수행하세요:
-
IBM Cloud Logs UI 에 액세스하고
Livetail 를 클릭합니다.
-
Start을 클릭하면 실시간으로 도착하는 로그를 볼 수 있습니다.
kube-system 애플리케이션에서 로그 데이터의 연속적인 흐름을 볼 수 있어야 합니다. 이 로그는 클러스터에서 가져온 것입니다.