
시작하기 전에
- 실습에서는 정해진 기간 동안 Google Cloud 프로젝트와 리소스를 만듭니다.
- 실습에는 시간 제한이 있으며 일시중지 기능이 없습니다. 실습을 종료하면 처음부터 다시 시작해야 합니다.
- 화면 왼쪽 상단에서 실습 시작을 클릭하여 시작합니다.
Configuring a GKE cluster with Kubernetes Engine Monitoring and deploy a sample workload
/ 30
Deploy the GCP-GKE-Monitor-Test application
/ 35
Creating Alerts with Stackdriver Kubernetes Engine Monitoring
/ 35
이 실습에서는 GKE 클러스터를 빌드한 다음 Kubernetes Engine Monitoring과 함께 사용할 포드를 배포합니다. 차트 및 커스텀 대시보드를 생성하고, 커스텀 측정항목을 활용하며, 알림을 생성하거나 알림에 응답합니다.
이 실습에서는 다음 작업을 수행하는 방법을 알아봅니다.
각 실습에서는 정해진 기간 동안 새 Google Cloud 프로젝트와 리소스 집합이 무료로 제공됩니다.
실습 시작 버튼을 클릭합니다. 실습 비용을 결제해야 하는 경우 결제 수단을 선택할 수 있는 팝업이 열립니다. 왼쪽에는 다음과 같은 항목이 포함된 실습 세부정보 패널이 있습니다.
Google Cloud 콘솔 열기를 클릭합니다(Chrome 브라우저를 실행 중인 경우 마우스 오른쪽 버튼으로 클릭하고 시크릿 창에서 링크 열기를 선택합니다).
실습에서 리소스가 가동되면 다른 탭이 열리고 로그인 페이지가 표시됩니다.
팁: 두 개의 탭을 각각 별도의 창으로 나란히 정렬하세요.
필요한 경우 아래의 사용자 이름을 복사하여 로그인 대화상자에 붙여넣습니다.
실습 세부정보 패널에서도 사용자 이름을 확인할 수 있습니다.
다음을 클릭합니다.
아래의 비밀번호를 복사하여 시작하기 대화상자에 붙여넣습니다.
실습 세부정보 패널에서도 비밀번호를 확인할 수 있습니다.
다음을 클릭합니다.
이후에 표시되는 페이지를 클릭하여 넘깁니다.
잠시 후 Google Cloud 콘솔이 이 탭에서 열립니다.
Google Cloud Shell은 다양한 개발 도구가 탑재된 가상 머신으로, 5GB의 영구 홈 디렉터리를 제공하며 Google Cloud에서 실행됩니다.
Google Cloud Shell을 사용하면 명령줄을 통해 Google Cloud 리소스에 액세스할 수 있습니다.
Cloud 콘솔의 오른쪽 상단 툴바에서 'Cloud Shell 열기' 버튼을 클릭합니다.
계속을 클릭합니다.
환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다. 연결되면 사용자가 미리 인증되어 프로젝트가 PROJECT_ID로 설정됩니다. 예:
gcloud는 Google Cloud의 명령줄 도구입니다. Cloud Shell에 사전 설치되어 있으며 명령줄 자동 완성을 지원합니다.
출력:
출력 예시:
출력:
출력 예시:
Google Kubernetes Engine에 Monitoring에 대한 관리형 지원이 포함됩니다.
이 작업에서는 Kubernetes Engine Monitoring 지원으로 새 클러스터를 만든 다음, Kubernetes Engine 모니터링 및 로깅 인터페이스를 이용해 기본 모니터링 작업을 수행합니다.
이 작업에서는 Kubernetes Engine Monitoring을 사용 설정하여 GKE 클러스터를 생성합니다. 그런 다음 이 실습에서 나중에 사용할 샘플 워크로드를 GKE 클러스터에 배포합니다.
Google Cloud 콘솔의 탐색 메뉴()에서 Kubernetes Engine > 클러스터를 클릭합니다.
클러스터 이름 standard-cluster-1을 클릭하여 클러스터의 세부정보를 확인합니다.
페이지를 아래로 스크롤하면 세부정보를 확인할 수 있습니다.
특성 제목 아래에서 Logging 및 Cloud Monitoring 설정을 볼 수 있습니다. 이 설정에서 로깅 유형이 시스템으로 설정됩니다.
이제 샘플 워크로드를 GKE 클러스터의 기본 네임스페이스에 배포합니다. 이 워크로드는 간단한 Hello World 데모 애플리케이션을 실행하는 세 개의 포드 배포로 구성되어 있습니다. 이 실습의 후반부에 Monitoring에서 이 워크로드의 상태를 모니터링할 수 있습니다.
이 배포 매니페스트는 간단한 Hello World 데모 애플리케이션을 실행하는 세 개의 포드를 생성합니다.
이 명령어의 출력을 보면 다음과 같이 기본 네임스페이스에서 hello-v2
애플리케이션이 실행 중임을 알 수 있습니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이제 GCP-GKE-Monitor-Test 애플리케이션을 GKE 클러스터의 기본 네임스페이스에 배포합니다. 이 워크로드는 단일 포드로 구성된 배포를 보유하고 있으며, LoadBalancer 서비스를 통해 인터넷에 노출됩니다.
또는 Docker를 직접 사용하여 이미지를 빌드하고 gcr.io에 푸시할 수도 있습니다.
gcp-gke-monitor-test.yaml
파일의 자리표시자 값을 앞서 gcr.io로 푸시한 Docker 이미지로 대체합니다.이 명령어의 출력을 보면 다음과 같이 기본 네임스페이스에서 hello-v2
애플리케이션이 실행 중임을 알 수 있습니다.
이 명령어의 출력을 보면 기본 네임스페이스에서 gcp-gke-monitor-test-service
가 실행 중임을 알 수 있습니다. 이 서비스에 외부 IP 주소가 할당될 때까지 이 명령어를 여러 번 실행해야 할 수도 있습니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이 작업에서는 GCP-GKE-Monitor-Test 애플리케이션을 사용해 Kubernetes Engine Monitoring의 여러 측면을 살펴봅니다. 이 도구는 다음 네 개의 섹션으로 구성됩니다.
첫 섹션인 CPU 부하 생성에서는 버튼을 눌러 CPU 부하 생성기를 시작하고 종료할 수 있습니다. 이 도구는 전체 CPU 코어를 사용하는 수학 연산 루프를 시작합니다. CPU 포화로 인한 포드 제어 실패를 방지하기 위해, 해당 루프는 100나노초 동안 주기적으로 프로세서를 생성합니다. 이를 통해 포드를 중단하지 않고 CPU 부하 생성기를 신속히 중지할 수 있습니다.
두 번째 섹션인 커스텀 측정항목을 통해 Cloud Monitoring에서 커스텀 측정항목 모니터링을 살펴볼 수 있습니다. '모니터링 시작'을 클릭하면 이 도구는 먼저 필요한 '커스텀 측정항목 설명'을 생성한 다음 루프를 시작해 커스텀 측정항목 값을 60초마다 Monitoring에 전송합니다. 이 도구에 코딩된 커스텀 측정항목은 연결되어 있는 활성 사용자 수를 추적해 해당 수치를 외부 서비스에 보고할 수 있는 애플리케이션을 시뮬레이션하도록 설계되었습니다.
이 커스텀 측정항목을 활용하려면 애플리케이션 코드 내에서 일부 추가 계측이 필요할 수도 있습니다. 이 실습에서는 '사용자 증가' 또는 '사용자 감소' 버튼을 클릭해 사용자의 연결 또는 연결 해제를 시뮬레이션할 수 있습니다.
웹 도구를 통해 사용자 수를 실시간으로 변경할 수는 있지만(실제 상황에서 사용자가 실시간으로 연결하거나 연결 해제하는 것과 같이), Cloud Monitoring API는 도구가 현재 값을 분당 1회씩만 전송할 수 있도록 한다는 것에 유의하세요. 이는 Cloud Monitoring 차트가 분당 업데이트 시점 사이에 발생하는 변경사항을 반영하지 않는다는 것을 의미합니다.
세 번째 섹션인 로그 테스트를 통해서는 다양한 텍스트 문자열을 컨테이너의 표준 출력(콘솔)으로 전송할 수 있습니다. 그런 다음 해당 문자열은 Cloud Monitoring에서 수집되어 포드 및 컨테이너와 연결된 로그 메시지로 저장됩니다. 원하는 경우 디버그 수준 로깅을 사용 설정해 로그에서 보다 많은 항목을 확인할 수 있습니다. 이렇게 하면 커스텀 측정항목 섹션에서 사용자 수를 늘릴 때나 CPU 부하 생성기를 사용 설정 또는 사용 중지할 때 로그 내의 메시지를 확인할 수 있게 됩니다. 이러한 로그는 JSON 형식 메시지를 지원하지 않는 기존 애플리케이션을 시뮬레이션하기 위해 일반 텍스트 형식으로 전송됩니다. Logging의 로그를 확인해 보면 포드의 JSON 기반 Kubernetes 이벤트 로그가 비정형 로그에서 사용 가능한 것보다 훨씬 강력한 필터링 및 쿼리 옵션을 갖추고 있음을 확인할 수 있습니다.
네 번째이자 마지막 섹션인 포드의 비정상 종료에서는 버튼을 클릭하여 포드를 비정상 종료할 수 있습니다. 이 도구는 미처리 오류가 포함된 코드 섹션을 실행하며 이를 통해 포드를 비정상 종료하고 배포를 트리거하여 그 자리에 새 포드를 다시 시작합니다. 이 도구를 사용해 Kubernetes Engine의 오류 복구 속도를 살펴볼 수 있습니다. 또한 각 포드가 고유 세션을 중앙 위치에 저장하지 않고 포드에 유지하므로 작업 중인 세션 상태의 손실을 확인할 수도 있습니다. 포드가 다시 시작되면 모든 전환 버튼 및 설정이 기본값으로 돌아갑니다.
이제 웹브라우저를 열고 GCP-GKE-Monitor-Test 도구에 연결하여 CPU 부하 생성기를 시작합니다.
이제 GCP-GKE-Monitor-Test 도구 내에서 프로세스를 시작해 Cloud Monitoring의 커스텀 측정항목 설명을 생성합니다. 나중에 이 도구에서 커스텀 측정항목 데이터를 전송하기 시작하면 Monitoring이 해당 데이터를 이 측정항목 설명과 연결합니다. 커스텀 측정항목 데이터 전송 시 Monitoring에서 대부분 자동으로 커스텀 측정항목 설명을 생성하지만, 설명을 수동으로 생성하면 Monitoring 인터페이스에 표시되는 텍스트를 더욱 효과적으로 제어할 수 있으므로 측정항목 탐색기의 데이터를 더 쉽게 찾을 수 있다는 점을 염두에 두세요.
이제 '사용자 증가' 및 '사용자 감소' 버튼을 클릭하여 '상태' 텍스트 아래에 표시되는 '현재 사용자 수'를 변경할 수 있습니다.
첫 번째 데이터 포인트가 Monitoring에 표시되기까지 2~3분이 소요될 수 있습니다. 이후 단계에서는 Cloud Monitoring에서 이 커스텀 측정항목을 확인할 수 있습니다.
이제 GCP-GKE-Monitor-Test 도구를 사용하여 나중에 Cloud Monitoring에 표시될 텍스트 기반 로그 샘플을 생성합니다.
이 작업에서는 Kubernetes Engine Monitoring을 사용해 GKE 클러스터 및 여기에서 실행되는 두 워크로드의 현재 상태를 살펴봅니다.
이제 Google Cloud 프로젝트에 연결된 Monitoring 작업공간을 설정해 보겠습니다. 다음 단계에 따라 Monitoring 무료 체험이 포함된 새 계정을 만들 수 있습니다.
Google Cloud 콘솔 제목 표시줄의 검색창에 Monitoring을 입력한 다음 검색 결과에서 Monitoring(인프라 및 애플리케이션 품질 검사)을 클릭합니다.
Observability Monitoring 옆에 있는 고정을 클릭합니다.
작업공간이 프로비저닝되기를 기다립니다.
Monitoring 대시보드가 열리면 작업공간이 준비된 것입니다.
이제 Kubernetes Engine Monitoring 인터페이스에 있는 세 개의 섹션을 열고 살펴봅니다. 세 개의 섹션은 '인프라', '워크로드', '서비스'입니다.
Monitoring 인터페이스에서 대시보드 섹션의 GKE를 클릭하여 새 모니터링 인터페이스를 살펴봅니다.
모니터링 인터페이스를 검토합니다. 이 대시보드는 GKE 클러스터 및 해당 워크로드의 상태를 보여줍니다. 다음 사항에 유의합니다.
클러스터, 노드, 포드 섹션을 통해 특정 클러스터 요소의 상태를 확인할 수 있습니다. 또한 이를 사용해 클러스터의 특정 노드에서 실행되는 포드를 검사할 수도 있습니다.
클러스터의 세부정보를 보려면 클러스터 요소를 클릭합니다.
워크로드 섹션은 특히 서비스가 노출되지 않은 워크로드 검색 시 매우 유용합니다.
Kubernetes 서비스 섹션은 해당 환경에 구성된 서비스를 클러스터별로, 네임스페이스(클러스터 내 관리 장벽 또는 파티션)별로 차례로 조직한 다음, 해당 네임스페이스 내에서 사용자가 이용할 수 있는 여러 서비스를 보여줍니다. 서비스별 세부정보는 서비스의 이름을 클릭해 확인할 수 있습니다.
네임스페이스 섹션에서는 클러스터 내에 있는 네임스페이스의 목록을 보여줍니다.
모니터링 인터페이스에서 배포 및 포드에 대해 더 많은 세부정보를 확인할 수 있습니다.
모두 보기
클릭)를 클릭한 후 측정항목 탭을 클릭하여 더 많은 측정항목을 확인합니다.포드의 CPU 요청 사용률 값을 기록합니다. 이 수치는 클러스터에서 원래 요청한 CPU 리소스 양 대비 포드가 사용한 양을 나타냅니다.
포드 세부정보 창의 오른쪽 상단에 있는 X를 클릭합니다.
이제 gcp-gke-monitor-test로 시작하는 포드를 클릭하여 더 많은 세부정보를 확인합니다.
포드 대신 네임스페이스를 선택하는 경우 약간 다른 정보가 표시됩니다.
측정항목 탭을 클릭하여 CPU 요청 사용률 및 CPU 사용 시간과 같은 보다 자세한 측정항목을 확인합니다.
포드 세부정보 창에서 로그 탭을 클릭하여 해당 포드의 로그 활동을 확인합니다.
여기에는 포드가 생성한 로그 메시지 및 시간 경과에 따른 포드의 로깅 활동을 표시하는 그래프가 표시됩니다. 도구에서 직접 생성한 샘플 로그 일부를 여기에서 볼 수 있습니다.
Monitoring에서 커스텀 대시보드를 생성해 CPU 사용률, 컨테이너 다시 시작, 연결된 사용자 수의 커스텀 측정항목 등의 주요한 측정항목이 표시되도록 할 수 있습니다.
Observability Monitoring 페이지의 왼쪽에 있는 탐색 메뉴에서 측정항목 탐색기를 클릭해 대시보드 빌드를 시작합니다.
측정항목 선택을 클릭합니다.
그러면 새 Kubernetes Engine Monitoring 도구가 지원하는 리소스 유형으로 목록이 필터링됩니다.
Kubernetes 컨테이너 > 인기 측정항목 > CPU 요청 사용률을 선택합니다.
적용을 클릭합니다.
앞서 fluentbit-gke-xxxx 포드 검토 시 확인했던 차트와 동일한 CPU 요청 사용률 차트지만, 이제 이 차트에는 모든 포드의 측정항목이 표시됩니다.
이제 화면의 오른쪽 상단에 있는 차트 저장 버튼을 클릭합니다.
차트 제목에 컨테이너 CPU 요청과 같은 이름을 지정한 후 대시보드를 클릭합니다.
해당 차트 이름은 이 차트를 표시하는 데만 사용됩니다. 다음 단계에서 전체 대시보드의 이름을 지정할 수 있습니다.
새 대시보드를 클릭합니다.
대시보드 이름을 컨테이너 대시보드로 지정합니다.
차트 저장을 클릭합니다.
이제 탐색창의 대시보드를 클릭한 다음 새 대시보드의 이름을 선택하여 대시보드를 실행할 수 있습니다.
이제 해당 대시보드에 표준 Monitoring 측정항목이 포함된 단일 차트가 표시됩니다. 다음으로 커스텀 Monitoring 측정항목이 포함된 차트를 생성한 다음 이 대시보드에 추가합니다.
측정항목 탐색기를 클릭합니다.
측정항목 선택을 클릭합니다.
Kubernetes 포드 > 커스텀 측정항목 > 웹 앱 - 활성 사용자를 선택합니다.
적용을 클릭합니다.
차트 저장을 클릭합니다.
새 차트의 이름(예: 활성 사용자)을 지정합니다.
대시보드 드롭다운에서 컨테이너 대시보드를 선택합니다.
차트 저장을 클릭합니다.
컨테이너 대시보드로 돌아가서 톱니바퀴 아이콘을 클릭하여 설정 메뉴를 표시합니다.
그런 다음 범례 > 표를 클릭하면 각 차트 아래에 텍스트가 표시됩니다.
각 차트의 오른쪽에서 값이라는 단어 옆에 있는 세 개의 수직 막대를 클릭합니다.
애플리케이션 서버에서 전송한 timeSeries 데이터에 포함되어 있던 다양한 라벨이 포함된 팝업이 표시됩니다. 이 정보를 사용해 차트의 데이터를 필터링하거나 집계할 수도 있습니다.
이 작업에서는 Kubernetes Engine Monitoring 내에서 알림을 구성한 다음 대시보드를 사용해 사고를 확인하고 대응합니다.
이제 알림 정책을 만들어 컨테이너의 높은 CPU 사용률을 감지합니다.
알림 채널 옆에 있는 드롭다운 화살표를 클릭한 후 알림 채널 관리를 클릭합니다. 그러면 알림 채널 페이지가 새로운 탭에서 열립니다.
페이지를 아래로 스크롤하고 이메일에 대해 새로 추가를 클릭합니다.
이메일 주소 필드와 표시 이름에 개인 이메일을 입력합니다.
저장을 클릭합니다.
이전의 알림 정책 만들기 탭으로 돌아갑니다.
알림 채널을 다시 클릭한 다음 새로고침 아이콘을 클릭하여 이전 단계에서 언급한 표시 이름을 가져옵니다. 필요한 경우 알림 채널을 다시 클릭합니다.
이제 표시 이름을 선택하고 확인을 클릭합니다.
알림 이름을 CPU 요청 사용률
로 지정합니다.
다음을 클릭합니다.
알림을 검토한 후 정책 만들기를 클릭합니다.
내 진행 상황 확인하기를 클릭하여 목표를 확인합니다.
이제 모니터링 대시보드로 돌아가면 컨테이너 중 하나에 대한 사고가 보고된 것을 확인할 수 있습니다.
실습을 완료하면 실습 종료를 클릭합니다. Google Cloud Skills Boost에서 사용된 리소스를 자동으로 삭제하고 계정을 지웁니다.
실습 경험을 평가할 수 있습니다. 해당하는 별표 수를 선택하고 의견을 입력한 후 제출을 클릭합니다.
별점의 의미는 다음과 같습니다.
의견을 제공하고 싶지 않다면 대화상자를 닫으면 됩니다.
의견이나 제안 또는 수정할 사항이 있다면 지원 탭을 사용하세요.
Copyright 2020 Google LLC All rights reserved. Google 및 Google 로고는 Google LLC의 상표입니다. 기타 모든 회사명 및 제품명은 해당 업체의 상표일 수 있습니다.
현재 이 콘텐츠를 이용할 수 없습니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
감사합니다
이용할 수 있게 되면 이메일로 알려드리겠습니다.
한 번에 실습 1개만 가능
모든 기존 실습을 종료하고 이 실습을 시작할지 확인하세요.