ICAM μ—μ„œ Kubernetes ν΄λŸ¬μŠ€ν„° λͺ¨λ‹ˆν„°λ§ν•˜κΈ°

λ³Έ λ¬Έμ„œμ˜ μ„€μΉ˜ μŠ€ν…μ€ ICAM μ„€μΉ˜ 곡식 기술 λ¬Έμ„œμ™€ λ‹€λ¦„ν…Œν¬μ—μ„œ μž‘μ„±ν•˜μ‹  μ„€μΉ˜ λ¬Έμ„œλ₯Ό 기반으둜 함을 사전에 λ°νž™λ‹ˆλ‹€.

μ—¬λŸ¬λΆ„μ€ Kubernetes ν΄λŸ¬μŠ€ν„°λ₯Ό μ–΄λ–»κ²Œ λͺ¨λ‹ˆν„°λ§ ν•˜μ‹œλ‚˜μš”?
νŠΉνžˆλ‚˜ ν•œ λŒ€μ˜ ν΄λŸ¬μŠ€ν„°κ°€ μ•„λ‹Œ, μ—¬λŸ¬ λŒ€μΈ κ²½μš°μ—λŠ” 톡합 λͺ¨λ‹ˆν„°λ§μ„ μ–΄λ–»κ²Œ ν•˜μ‹œλ‚˜μš”?

IBM Cloud App Mgmt (μ΄ν•˜ ICAM) μ—μ„œλŠ” μ—¬λŸ¬ νƒ€μž…μ˜ Kubernetes ν΄λŸ¬μŠ€ν„°λ₯Ό ν†΅ν•©μ μœΌλ‘œ λͺ¨λ‹ˆν„°λ§ν•  수 μžˆμŠ΅λ‹ˆλ‹€. – OpenShift, IBM Cloud Private, Vanilla Kubernetes (μ˜€ν”ˆμ†ŒμŠ€) 지원

Kubernetes λͺ¨λ‹ˆν„°λ§μ„ μœ„ν•΄μ„œλŠ” μΌμ’…μ˜ Agent λ₯Ό 각 ν΄λŸ¬μŠ€ν„°μ— μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. 각 ν΄λŸ¬μŠ€ν„°μ—μ„œ λͺ¨λ‹ˆν„°λ§ 데이터λ₯Ό μˆ˜μ§‘ν•˜λŠ” μ—μ΄μ „νŠΈλ‘œ, “Data Collector (μ€„μ—¬μ„œ DC)” 라고 λͺ…μΉ­ν•©λ‹ˆλ‹€.

Kubernetes λͺ¨λ‹ˆν„°λ§μ„ μœ„ν•΄ DC (Data Collector) μ„€μΉ˜ν•˜κΈ°

λ³Έ νŠœν† λ¦¬μ–Όμ€ ICAM (λͺ¨λ‹ˆν„°λ§ μ„œλ²„)은 이미 μ„€μΉ˜λ˜μ–΄ μžˆλ‹€λŠ” κ°€μ • ν•˜μ—, λͺ¨λ‹ˆν„°λ§ λŒ€μƒ ν΄λŸ¬μŠ€ν„°λ₯Ό μ—°κ²°ν•˜κΈ° μœ„ν•΄ λŒ€μƒ ν΄λŸ¬μŠ€ν„°μ— DCλ₯Ό μ„€μΉ˜ν•˜λŠ” λ‚΄μš©μž…λ‹ˆλ‹€.
μƒμ„Έν•œ λ‚΄μš©μ€ λ‹€μŒ 곡식 기술 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

[κ·Έ μ™Έ μ°Έκ³  링크]

μ„€μΉ˜ 이미지 및 μ„€μ • 파일 λ‹€μš΄λ‘œλ“œ

  1. Data Collector μ„€μΉ˜ 이미지 λ‹€μš΄λ‘œλ“œ (part number CC47IEN)
    μ„€μΉ˜ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•˜μ—¬ μ€€λΉ„ν•©λ‹ˆλ‹€. (파일λͺ…: appMgtDataCollectors_2019.3.0.1.tar.gz)
  2. Data Collector μ„€μ • 파일 λ‹€μš΄λ‘œλ“œ
    1. ICAM 관리 μ½˜μ†”μ— λ‘œκ·ΈμΈν•˜μ—¬ Get Started 클릭 ν›„ Administration > Integration 으둜 이동
    2. New Integration λ²„νŠΌ 클릭
    3. ICAM Data Collector 클릭 ν›„ Configure 클릭

      Data Collector 둜 μ—°κ²°ν•  λŒ€μƒ 이름을 μž…λ ₯ ν›„, μ„€μ • 파일 λ‹€μš΄λ‘œλ“œ (ibm-cloud-apm-dc-configpack.tar)
  3. λ‹€μš΄λ‘œλ“œ 받은 μ„€μΉ˜ 이미지와 μ„€μ • νŒŒμΌμ„ λͺ¨λ‹ˆν„°λ§ λŒ€μƒ Kubernetes ν΄λŸ¬μŠ€ν„°λ‘œ λ³΅μ‚¬ν•©λ‹ˆλ‹€.
    scp <my_path_to_download>/app_mgmt_k8sdc.tar.gz root@my.env.com:/<my_path_to_destination>
    scp <my_path_to_download>/ibm-cloud-apm-dc-configpack.tar root@my.env.com:/<my_path_to_destination>

Kubernetes ν΄λŸ¬μŠ€ν„°μ— Data Collector μ„€μΉ˜

  1. λͺ¨λ‹ˆν„°λ§ λŒ€μƒ Kubernetes ν΄λŸ¬μŠ€ν„°μ— μ ‘μ†ν•˜μ—¬ ν΄λŸ¬μŠ€ν„° κ΄€λ¦¬μžλ‘œ λ‘œκ·ΈμΈν•©λ‹ˆλ‹€.
  2. Data Collector λ₯Ό μ„€μΉ˜ν•  Namespace λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. μ €λŠ” icam-vanilla λΌλŠ” Namespaceλ₯Ό μƒμ„±ν–ˆμŠ΅λ‹ˆλ‹€.
    kubectl create namespace icam-vanilla
  3. Helm 을 μ΄ˆκΈ°ν™” ν•©λ‹ˆλ‹€.
    helm init --tls
  4. ν΄λŸ¬μŠ€ν„°μ—μ„œ μ‚¬μš©ν•˜λŠ” Docker registry 에 λ‘œκ·ΈμΈν•©λ‹ˆλ‹€.
    docker login -u my_username -p my_password my_clustername:my_clusterport

    제 ν™˜κ²½μ—μ„œλŠ” λ‹€μŒκ³Ό 같이 λ‘œκ·ΈμΈν–ˆμŠ΅λ‹ˆλ‹€.

    docker login master.169.56.172.82.nip.io:30500
  5. Kubernetes Data Collector νŒ¨ν‚€μ§€μ™€ μ„€μ • 파일의 압좕을 ν’€μ–΄μ€λ‹ˆλ‹€.
    1. μ„€μΉ˜ μ΄λ―Έμ§€μ˜ νŒ¨ν‚€μ§€ μ••μΆ• ν•΄μ œ
      tar -xvf appMgtDataCollectors_2019.3.0.1.tar.gz
      cd appMgtDataCollectors_2019.3.0.1 
      tar -xvf app_mgmt_k8sdc.tar.gz
      cd app_mgmt_k8sdc
    2. μ„€μ • 파일 μ••μΆ• ν•΄μ œ
      tar -xvf ibm-cloud-apm-dc-configpack.tar
  6. μ„€μΉ˜ 파일의 Docker 이미지λ₯Ό λ‘œλ“œν•©λ‹ˆλ‹€.
    docker load -i appMgtDataCollectors_2019.3.0/app_mgmt_k8sdc/app_mgmt_k8sdc_docker.tar.gz
  7. 이미지 νƒœκΉ… ν›„ λ ˆμ§€μŠ€νŠΈλ¦¬μ— μ €μž₯ (Push) ν•©λ‹ˆλ‹€. – 각 Worker Node μ—μ„œ μ»¨ν…Œμ΄λ„ˆ μ‹€ν–‰μ‹œ 이미지λ₯Ό κ°€μ Έμ˜¬ 수 μžˆλ„λ‘ ν•˜κΈ° μœ„ν•¨μž„
    docker tag icam-k8-monitor:APM_201909192049 <image-registry-url>:<image-registry-port>/<namespace>/k8-monitor:APM_201909192049
    docker push <image-registry-url>:<image-registry-port>/<namespace>/k8-monitor:APM_201909192049
    제 ν™˜κ²½μ—μ„œλŠ” μ•„λž˜ μ½”λ“œμ²˜λŸΌ λͺ…λ Ήμ–΄λ₯Ό μ‹€ν–‰ν–ˆμŠ΅λ‹ˆλ‹€.
    
    docker tag icam-k8-monitor:APM_201909192049 master.169.56.172.82.nip.io:30500/icam-vanilla/k8-monitor:APM_201909192049
    docker push master.169.56.172.82.nip.io:30500/icam-vanilla/k8-monitor:APM_201909192049
  8. ν•„μš”ν•œ μ„€μ •κ°’ 및 Secret을 μƒμ„±ν•©λ‹ˆλ‹€. μ—¬κΈ°μ„œ λ§ν•˜λŠ” μ„€μ •κ°’μ—λŠ” ICAM μ„œλ²„μ™€μ˜ 톡신을 μœ„ν•΄ ν•„μš”ν•œ 데이터 등이 ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
    kubectl -n icam-vanilla create -f ./ibm-cloud-apm-dc-configpack/dc-secret.yaml 
    kubectl -n icam-vanilla create secret generic ibm-agent-https-secret --from-file=./ibm-cloud-apm-dc-configpack/keyfiles/cert.pem --from-file=./ibm-cloud-apm-dc-configpack/keyfiles/ca.pem --from-file=./ibm-cloud-apm-dc-configpack/keyfiles/key.pem

     

  9. Helm Chart λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.
    helm install ./appMgtDataCollectors_2019.3.0/app_mgmt_k8sdc/app_mgmt_k8sdc_helm.tar.gz --name 'icam-cloud-resources' --namespace 'icam-vanilla' --set image.repository='master.169.56.172.82.nip.io:30500' --set clusterName='ksa-k8s' --set imageNamePrefix='icam-vanilla/' --set imageTag='APM_201909192049' --set ibmAgentConfigSecret='dc-secret' --set ibmAgentHTTPSSecret='ibm-agent-https-secret' --tls

    μ„€μΉ˜ ν›„ μƒνƒœ 확인

    helm status icam-cloud-resources --tls

  10. λͺ¨λ“  Pod κ°€ Running 인지 확인

    watch kubectl get pods -n <namespace>

    watch kubectl get pods -n icam-vanilla
  11. ICAM λŒ€μ‹œλ³΄λ“œμ—μ„œ Kubernetes λ¦¬μ†ŒμŠ€κ°€ μƒκ²ΌμŒμ„ 확인
    메뉴 > Resources > All resource types

Kubernetes ν΄λŸ¬μŠ€ν„° λͺ¨λ‹ˆν„°λ§ λŒ€μ‹œλ³΄λ“œ

이제 Kubernetes ν΄λŸ¬μŠ€ν„°λ₯Ό λͺ¨λ‹ˆν„°λ§ν•  수 있게 λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ‹ˆν„°λ§μ‹œ μ–΄λ–€ 정보듀을 λ³Ό 수 μžˆλŠ”μ§€ λΉ λ₯΄κ²Œ μ‚΄νŽ΄λ³ΌκΉŒμš”?

Kubernetes Cluster 클릭 μ‹œ μ œκ°€ λͺ¨λ‹ˆν„°λ§ν•˜κ³ μž ν–ˆλ˜ ν΄λŸ¬μŠ€ν„° 이름이 λ³΄μž…λ‹ˆλ‹€.

ν΄λŸ¬μŠ€ν„° 전체 ν˜„ν™©μ΄ λ‚˜μ˜΅λ‹ˆλ‹€.

  • Events timeline : μ΄λ²€νŠΈκ°€ λ°œμƒν•œ μ‹œμ μ΄ ν‘œμ‹œλ˜λ©° νŠΉμ • μ‹œμ μ˜ λͺ¨λ‹ˆν„°λ§ 데이터λ₯Ό 확인할 수 있음
  • Deployment topology : ν˜„μž¬ λͺ¨λ‹ˆν„°λ§ν•˜κ³  μžˆλŠ” λ¦¬μ†ŒμŠ€μ˜ 배포 ν† ν΄λ‘œμ§€ 확인. λ³Έ λ¦¬μ†ŒμŠ€λŠ” ν΄λŸ¬μŠ€ν„°μ΄λ―€λ‘œ ν΄λŸ¬μŠ€ν„°λ₯Ό κ΅¬μ„±ν•˜κ³  μžˆλŠ” Node κ°€ ν‘œμ‹œλ¨
  • CPU / Top Nodes : ν΄λŸ¬μŠ€ν„°μ˜ 전체 CPU ν˜„ν™© 및 CPU 점유율이 높은 순으둜 Node ν‘œμ‹œ
  • Memory / Top Nodes : ν΄λŸ¬μŠ€ν„°μ˜ 전체 Memory ν˜„ν™© 및 Memory 점유율이 높은 순으둜 Node ν‘œμ‹œ
  • Relates Resources : λ³Έ λ¦¬μ†ŒμŠ€μ™€ κ΄€λ ¨λœ 연계 λ¦¬μ†ŒμŠ€λ“€μ„ ν•œ λˆˆμ— ν‘œμ‹œν•˜μ—¬, 문제 λ°œμƒμ‹œ 원인을 μ‰½κ²Œ νŒŒμ•…ν•  수 있음. 예λ₯Ό λ“€μ–΄, Node1 ν΄λ¦­μ‹œ μ•„λž˜ ν™”λ©΄κ³Ό 같이 Node 의 λͺ¨λ‹ˆν„°λ§ ν˜„ν™©μ„ ν•œ λˆˆμ— 확인할 수 있음. μ΄λ ‡κ²Œ 연속적, λ‹¨κ³„μ μœΌλ‘œ Hop 별 λͺ¨λ‹ˆν„°λ§μ„ ν•  수 μžˆμœΌλ―€λ‘œ Troubleshooting μ‹œ λΉ λ₯΄κ³  μ •ν™•ν•˜κ²Œ 문제의 원인을 진단 κ°€λŠ₯
  • File System: 파일 μ‹œμŠ€ν…œ ν˜„ν™©
  • Availability : 전체 Deployment 및 StatefulSet 의 ν˜„ν™©

글을 마치며..

μ˜€λŠ˜μ€ μ΄λ ‡κ²Œ Kubernetes ν΄λŸ¬μŠ€ν„°λ₯Ό λͺ¨λ‹ˆν„°λ§ν•˜λŠ” 방법을 μ‚΄νŽ΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

ICAM 은 μ΄λ ‡κ²Œ λ‹€μ΄λ‚˜λ―Ήν•˜κ²Œ λ³€ν™”ν•˜λŠ” ν΄λΌμš°λ“œ λ¦¬μ†ŒμŠ€λ₯Ό λ™μ μœΌλ‘œ λͺ¨λ‹ˆν„°λ§ν•  수 μžˆλ„λ‘ ν•˜λŠ” μ—¬λŸ¬ λ©”νŠΈλ¦­ 및 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. νŠΉνžˆλ‚˜, Kubernetes 의 경우 Stateless ν•œ νŠΉμ„±μ„ 기반으둜 ν•˜κΈ° λ•Œλ¬Έμ— 맀우 λ™μ μœΌλ‘œ λ¦¬μ†ŒμŠ€κ°€ 생기기도, 사라지기도 ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ λ³΅μž‘ν•œ ν™˜κ²½μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν–ˆμ„ λ•ŒλŠ” ν•΄λ‹Ή 문제의 원인이 λ‚΄κ°€ λͺ¨λ‹ˆν„°λ§ν•˜κ³  μžˆλŠ” κ·Έ λ¦¬μ†ŒμŠ€μ— μžˆμ§€ μ•Šκ³  κ΄€λ ¨λœ λ‹€λ₯Έ 곳에 μœ„μΉ˜ν•˜κ³  μžˆμ„ μˆ˜λ„ μžˆκ² μ§€μš”. 예λ₯Ό λ“€λ©΄, Podμ—μ„œ μ—λŸ¬κ°€ λ°œμƒν•˜μ˜€μœΌλ‚˜ κ·Έ 원인은 Podκ°€ μ‹€ν–‰λ˜κ³  μžˆλŠ” Node ν•˜λ‹¨μ˜ κ°€μƒμ„œλ²„μ— λ¬Έμ œκ°€ μžˆλŠ” 경우일 μˆ˜λ„ μžˆκ³ μš”.

이런 경우 ICAM μ—μ„œ μ œκ³΅ν•˜λŠ” Event timeline μ΄λ‚˜ Related Resource 둜 Hop λ³„λ‘œ μΆ”μ ν•˜λŠ” κΈ°λŠ₯이 맀우 μœ μš©ν•˜κ²Œ μ‚¬μš©λ  수 μžˆκ² μŠ΅λ‹ˆλ‹€.

μžμ„Έν•œ 데λͺ¨λŠ” μ•„λž˜ λ§ν¬μ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.
IBM Cloud App Management – Manage Kubernetes environments with speed and precision

μ˜€λŠ˜μ€ μ—¬κΈ°κΉŒμ§€ Kubernetes λͺ¨λ‹ˆν„°λ§ ν¬μŠ€νŒ…μ„ 마치고 λ‹€μŒλ²ˆμ—λŠ” λͺ¨λ‹ˆν„°λ§/이벀트 관리 κ΄€λ ¨ ν¬μŠ€νŒ…μœΌλ‘œ μ°Ύμ•„λ΅™κ² μŠ΅λ‹ˆλ‹€.