제어 영역에 대한 액세스 제한
보안 상황을 개선하기 위해 승인된 네트워크와Google Cloud 콘솔 및 Cloud Shell만 클러스터의 컨프롤 플레인에 액세스하도록 허용합니다.
승인된 네트워크 구성
Google Cloud 콘솔에서 GKE 클러스터 페이지로 이동합니다.
이름 열에서 클러스터 이름(hello-world-cluster)을 클릭합니다.
네트워크 테이블의
제어 영역 승인 네트워크 행에서 수정을 클릭합니다.컨트롤 플레인 승인된 네트워크 수정 대화상자에서 컨트롤 플레인 승인된 네트워크 사용 설정을 선택합니다.
Google Cloud 공개 IP 주소를 통한 액세스 허용을 선택합니다.
이렇게 하면 Google Cloud 콘솔과 Cloud Shell에서 클러스터를 관리할 수 있습니다.
승인된 네트워크 추가를 클릭합니다.
내 예시 온프렘 네트워크와 같은 이름을 입력합니다.
네트워크에서 클러스터 컨트롤 플레인에 대해 액세스를 부여하려는 IP 주소 범위를 입력합니다. CIDR 표기법을 사용하세요.
예를 들어 다음 범위를 입력합니다.
198.51.100.0/24
완료를 클릭합니다.
변경사항 저장을 클릭합니다.
이 작업을 완료하는 데 몇 분 정도 걸립니다.
알림 버튼을 클릭하고 Kubernetes Engine 클러스터 'hello-world-cluster'에서 제어 영역 승인 네트워크 설정 업데이트 여에 녹색 체크표시가 나타날 때까지 기다립니다.
승인된 네트워크와 Google Cloud 공개 IP 주소(Google Cloud 콘솔과 Cloud Shell에서 클러스터 관리 지원)에서만 액세스할 수 있는 클러스터 컨트롤 플레인을 구성했습니다.
클러스터 제어 영역의 IP 주소를 보고 승인된 네트워크의 주소를 확인하려면 다음을 클릭합니다.
IP 주소 보기
GKE 클러스터 페이지로 이동합니다.
이름 열에서 클러스터 이름(hello-world-cluster)을 클릭합니다.
클러스터 기본사항 테이블의 외부 엔드포인트 행에 클러스터 컨트롤 플레인의 IP 주소가 표시됩니다.
네트워킹 테이블에서 제어 영역 승인된 네트워크 행에는 승인된 네트워크의 IP 주소가 표시됩니다.
이제 승인된 네트워크,Google Cloud 콘솔, Cloud Shell에서만 클러스터 컨트롤 플레인에 액세스할 수 있습니다.
컴퓨팅 클래스 지정
기본적으로 GKE Autopilot 포드는 범용 워크로드에 최적화된 컴퓨팅 리소스를 사용합니다. 최적 확장이 필요하거나 다른 고유 요구사항이 있는 워크로드의 경우 다른 컴퓨팅 클래스를 지정할 수 있습니다.
배포 사양 업데이트
Google Cloud 콘솔에서 GKE 워크로드 페이지로 이동합니다.
이름 열에서 배포한 앱 이름 hello-world-app을 클릭합니다.
수정 을 클릭하여 배포 사양을 수정합니다.YAML 탭에서
containers:
로 시작하는 줄을 찾습니다.이 줄 바로 위에 다음 줄을 추가합니다.
nodeSelector: cloud.google.com/compute-class: "Scale-Out"
파일이 다음 예시의 들여쓰기와 일치하는지 확인합니다.
apiVersion: apps/v1 kind: Deployment ... spec: ... template: ... spec: nodeSelector: cloud.google.com/compute-class: "Scale-Out" containers: - name: hello-app image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
이 파일을 다운로드하고 다른 워크로드 구성의 기본으로 사용하려면
다운로드 를 클릭합니다.저장을 클릭합니다.
워크로드를 실행하기 위해 생성된 모든 포드 복제본에 지정한 컴퓨팅 클래스가 사용됩니다.
자동 확장 테스트
효율적으로 확장되는 워크로드를 만들었으므로 워크로드가 더 쉽게 확장될 수 있도록 자동 확장 설정을 업데이트합니다. 그런 후 자동 확장을 트리거하는 로드를 생성합니다.
포드 자동 확장 설정 업데이트
GKE 워크로드 페이지로 이동합니다.
이름 열에서 배포 이름 hello-world-app을 클릭합니다.
작업 을 클릭합니다.자동 확장을 선택하고 수평형 포드 자동 확장을 클릭합니다.
수평형 포드 자동 확장 처리 구성 대화상자의 자동 확장 측정항목에서 CPU를 클릭합니다.
대상 값을 2로 변경하면 구성된 CPU 리소스의 2% 이상을 사용하는 경우 포드가 자동으로 확장됩니다 이 낮은 대상 값을 통해 다음 단계에서 자동 확장을 쉽게 트리거할 수 있습니다.
저장을 클릭합니다.
자동 확장을 트리거하려면 다음을 클릭합니다.
자동 확장 트리거 로드 생성
Cloud Shell 을 클릭하여 Cloud Shell을 엽니다.다음 명령어를 Cloud Shell에 붙여넣습니다.
for i in $(seq -s' ' 1 10000); do wget -q -O- <var>external-IP-address</var>; done
external-IP-address를
엔드포인트 열에 표시된 IP 주소로 바꿉니다.Enter 키를 눌러서 명령어를 실행하고 hello-world-app에 10,000개 요청을 전송합니다.
wget
명령어 실행이 완료되고 명령줄 프롬프트가 다시 표시될 때까지 기다립니다.wget
명령어가 완료되면 Cloud Shell을 닫을 수 있습니다.
증가한 트래픽을 수용하도록 워크로드 규모를 확인하려면 다음을 클릭합니다.
워크로드 확장 확인
워크로드의 배포 세부정보 페이지의
CPU 차트에서 CPU 사용량에 급증이 있는지 확인합니다.급증을 확인하려면 최대 5분까지 기다려야 할 수 있습니다.
새로고침 을 클릭하여 배포 세부정보 페이지에 최신 데이터가 표시되는지 확인합니다.관리형 포드 테이블에서 워크로드의 세 가지 복제본이 현재 실행되고 있는지 확인합니다.
처음에 예약할 수 없는 포드에 대해 오류가 표시될 수 있지만 이러한 메시지는 복제가 시작됨에 따라 곧 사라집니다.
10분간 대기한 후
새로고침을 클릭하면 CPU 사용량이 감소하여 관리형 포드의 포드 수가 1로 돌아가는 것을 확인할 수 있습니다.
자동 확장을 테스트하고 워크로드 확장을 확인했습니다.
로그 보관 조정
기본적으로 Cloud Logging은 GKE 클러스터에서 모든 로그를 수집합니다. 대량의 로그 데이터를 수집하면 비용이 발생할 수 있습니다. 스테이징 환경에 필요한 로그 데이터만 수집하도록 보장하기 위해 로그 보관을 조정합니다.
로그 필터 만들기
-
Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.
쿼리 결과 창에 프로젝트의 모든 리소스 로그가 표시됩니다. 쿼리 결과에 따라 다음을 수행합니다.
리소스 를 클릭합니다.Kubernetes 클러스터를 검색하고 클릭합니다.
us-central-1을 클릭합니다.
hello-world-cluster를 클릭합니다.
적용을 클릭합니다.
심각도 를 클릭하고 정보를 선택합니다(커서를 위로 가져갔을 때 정보 이상의 수준으로 변경됨).쿼리 실행 을 클릭합니다.쿼리 결과에 이제 스테이징 클러스터의 INFO 메시지만 포함됩니다.
쿼리 편집기에서 쿼리를 복사합니다. 로그 싱크에 대해 필터를 만들 때 이 쿼리를 붙여넣습니다.
로그 싱크 및 스토리지 버킷을 만들기 위해 다음을 클릭합니다.
로그 싱크 및 스토리지 버킷 만들기
Logging 로그 라우터 페이지로 이동합니다.
싱크 만들기 를 클릭합니다.이름에 다음 이름을 입력합니다.
hello-world-cluster-sink
다음을 클릭합니다.
싱크 서비스 선택에서 Logging 버킷을 선택합니다.
로그 버킷 선택에서 새 로그 버킷 만들기를 선택합니다.
버킷 세부정보에 다음과 같이 고유한 이름을 입력합니다.
hello-world-bucket-<var>user-id</var>
버킷 만들기를 클릭합니다.
싱크 대상에서 다음을 클릭합니다.
포함 필터 빌드에서 로그 탐색기에서 만든 쿼리를 붙여넣습니다.
싱크 만들기를 클릭합니다.
자신이 만든 로그 버킷에 저장된 클러스터의 로그를 보려면 다음을 클릭합니다.
클러스터 로그 보기
-
Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Logging인 결과를 선택합니다.
범위 상세검색 을 클릭합니다.로그 뷰를 선택합니다.
로그 버킷의 _AllLogs 뷰를 선택합니다.
적용을 클릭합니다.
쿼리 결과에는 로그 버킷에 저장된 로그만 표시됩니다.
지금까지 스테이징 클러스터가 DEBUG 메시지를 저장하지 않도록 로그 보관을 조정했습니다. 특정 사용자만 클러스터 버킷의 로그를 볼 수 있도록 권한을 설정할 수 있습니다.
보안 상황 대시보드 사용 설정
보안 상황 대시보드는 GKE 클러스터 및 워크로드를 스캔하여 보안 상황을 개선할 수 있는 실행 가능한 독자적인 권장사항을 제공합니다.
문제 살펴보기
GKE 보안 상황 페이지로 이동합니다.
Container Security API를 사용 설정하라는 메시지가 표시되면 사용 설정을 클릭합니다.
대시보드 탭에 프로젝트의 클러스터 및 워크로드에 대한 문제가 요약해서 표시됩니다.
문제 탭을 클릭합니다.
탭에 문제가 있는 경우 해당 문제를 클릭하여 자세한 내용을 확인하세요.
지금까지 앱 스테이징 및 테스트를 위해 클러스터 구성에 대한 일부 기본 태스크를 완료했습니다.