이 페이지에서는 Cloud Code에서의 Kubernetes 개발에 대해 간략하게 설명합니다.
Cloud Code에서 Kubernetes 섹션 사용
Kubernetes 섹션을 사용하면 IDE에서 직접 클러스터, 노드, 워크로드 등에 대한 정보에 액세스할 수 있습니다. 또한 Kubernetes 섹션을 사용하여 현재 컨텍스트 설정, 로그 스트리밍 및 보기, 대화형 터미널 열기, 리소스 설명 조회를 수행할 수 있습니다.
![Cloud Code Kubernetes 섹션](https://cloud.google.com/static/code/docs/vscode/images/vscode-k8s-section-dev-section.png?authuser=6&hl=ko)
Cloud Code는 MacOS/Linux의 $HOME/.kube
디렉터리 또는 Windows의 %USERPROFILE%\.kube
에 있는 기본 kubeconfig 파일을 사용하여 Kubernetes 리소스를 검색합니다. Kubernetes 섹션 내에서 새 Kubeconfig 파일을 전환하거나 추가할 수 있습니다. Kubeconfig 파일은 클러스터에 인증하기 위한 Kubernetes 클러스터 세부정보, 인증서, 보안 비밀 토큰이 포함된 YAML 파일입니다.
기본 kubeconfig 이외의 kubeconfig 파일을 사용하려면 kubeconfig 파일 작업 가이드를 참조하세요.
Kubernetes 섹션 액세스
Kubernetes 리소스를 보고 관리하려면디버깅을 시도할 때 애플리케이션을 로컬에서 실행하고 디버깅하도록 사용자 인증 정보를 인증하라는 메시지가 표시될 수 있습니다.
개발 세션 섹션 액세스
개발 세션을 사용하여 Kubernetes 애플리케이션을 실행 또는 디버깅하거나 템플릿을 사용하여 샘플 애플리케이션을 만듭니다.
개발 또는 디버깅 세션을 시작하면 개발 세션 섹션에 구조화된 로깅 뷰가 표시됩니다.
기본 작업
Kubernetes 섹션은 kubectl
을 기반으로 합니다. 클러스터에 액세스하도록 kubectl
구성 파일을 구성했다면 Kubernetes 섹션을 사용하여 클러스터를 추가하고 컨텍스트가 활성 상태이든 비활성 상태이든 사용 가능한 모든 네임스페이스, 리소스, 클러스터용 노드를 찾아볼 수 있습니다.
Kubernetes 섹션
Kubernetes 섹션의 아이콘을 통해 액세스할 수 있는 일반 Kubernetes 작업은 다음과 같습니다.
- KubeConfig 추가
- refresh Kubernetes 섹션 새로고침
- question_mark 웹브라우저에서 Cloud Code Kubernetes 문서 열기
개발 세션 섹션
Kubernetes 개발 세션 섹션의 아이콘을 통해 액세스할 수 있는 Kubernetes 작업은 다음과 같습니다.
Kubernetes 샘플 애플리케이션 열기
- play_row 애플리케이션 실행
애플리케이션 디버깅
리소스 이름 복사
모든 Kubernetes 리소스 이름을 클립보드에 복사할 수 있습니다(컨테이너 및 클러스터 이름 포함). 리소스 이름을 복사하려면 리소스를 마우스 오른쪽 버튼으로 클릭하고 리소스 이름 복사를 선택합니다.
![마우스 오른쪽 버튼 클릭 메뉴를 사용하여 리소스 이름 복사](https://cloud.google.com/static/code/docs/vscode/images/vscode-copy-resource-name.png?authuser=6&hl=ko)
리소스 새로고침
Kubernetes 섹션은 변경 사항을 감시하고 업데이트를 반영하도록 자동으로 새로고침합니다. Kubernetes 리소스를 새로고침하여 최신 정보를 가져 오려면 리소스를 마우스 오른쪽 버튼으로 클릭하고 새로고침을 선택합니다.
![마우스 오른쪽 버튼 클릭 메뉴를 사용하여 포드 새로고침](https://cloud.google.com/static/code/docs/vscode/images/vscode-refresh-resource.png?authuser=6&hl=ko)
![Kubernetes 섹션 새로고침 버튼](https://cloud.google.com/static/code/docs/vscode/images/vscode-k8s-refresh-section.png?authuser=6&hl=ko)
리소스 설명
클러스터가 아닌 리소스의 세부정보를 표시하려면 리소스를 마우스 오른쪽 버튼으로 클릭한 후 설명을 선택합니다. 터미널이 열리고 리소스 정보가 표시됩니다.![마우스 오른쪽 버튼 클릭 메뉴의 리소스 세부정보 설명](https://cloud.google.com/static/code/docs/vscode/images/vscode-describe-resource.png?authuser=6&hl=ko)
시작 구성 맞춤설정
애플리케이션 실행 방법을 구성하려면 skaffold.yaml
파일을 맞춤설정하면 됩니다.
.vscode/launch.json
파일의 cloudcode.kubernetes
구성에서 다음 필드를 지정하여 실행을 구성할 수도 있습니다.
- skaffoldConfig: 빌드 및 배포 설정이 포함된 Skaffold 구성 파일을 지정합니다.
- profile: 원하는 Skaffold 프로필을 지정합니다. 정의되지 않으면 기본 프로필이 사용됩니다.
- imageRegistry: 이미지를 푸시할 이미지 레지스트리를 지정합니다.
- watch: 작업 공간에서 변경사항을 감시할지 여부를 지정하고 애플리케이션을 다시 실행합니다. 명시적으로 false로 설정하지 않는 한 기본적으로 true입니다.
- cleanUp: 애플리케이션이 종료된 후 클러스터에서 배포된 Kubernetes 리소스를 삭제할지 여부를 지정합니다. 명시적으로 false로 설정하지 않는 한 기본적으로 true입니다.
- portForward: 클러스터에서 노출된 Kubernetes 리소스에 대해 로컬 머신으로 포트를 전달할지 여부를 지정합니다. 명시적으로 false로 설정하지 않는 한 기본적으로 true입니다.
원격 YAML 보기
클러스터에 있는 리소스의 YAML을 보려면![](https://cloud.google.com/static/code/docs/vscode/images/vscode-edit-yaml-icon.png?authuser=6&hl=ko)
![](https://cloud.google.com/static/code/docs/vscode/images/vscode-view-yaml-icon.png?authuser=6&hl=ko)
![YAML 보기 아이콘을 사용하여 연 Kubernetes 포드 YAML](https://cloud.google.com/static/code/docs/vscode/images/vscode-view-yaml.png?authuser=6&hl=ko)
로그 보기
Kubernetes 리소스의 로그를 Kubernetes 섹션 콘솔로 스트리밍하고 확인하여 진행 상황을 모니터링할 수 있습니다.
로그 뷰어를 열려면Ctrl/Cmd+Shift+P
를 누르거나 뷰 > 명령어 팔레트를 클릭한 다음, Cloud Code: 로그 보기를 선택합니다.
새 편집기 탭에서 로그 뷰어가 열립니다.
포드 또는 컨테이너의 로그를 보려면 리소스를 마우스 오른쪽 버튼으로 클릭하고 로그 보기를 선택합니다.
터미널 실행
포드 및 컨테이너의 경우 포드 또는 컨테이너를 마우스 오른쪽 버튼으로 클릭하고 터미널 열기를 선택하여 대화형 터미널을 열 수 있습니다.
![대화형 터미널 열기](https://cloud.google.com/static/code/docs/shell/images/shell-get-terminal.png?authuser=6&hl=ko)
리소스 관련 작업
Kubernetes 섹션에는 클러스터, 네임스페이스, 노드, 워크로드(예: 배포, 복제본, pod, 컨테이너 등), 서비스 및 인그레스, 구성(보안 비밀, 구성 맵 등), 스토리지(볼륨 등)가 표시됩니다. Kubernetes 섹션을 사용하면 이러한 리소스 중 일부에 대해 고유한 작업을 수행할 수 있습니다.
클러스터
- Kubeconfig에 클러스터 추가: 기존 GKE 또는 minikube 클러스터를 추가하거나 새 클러스터를 만듭니다.
클러스터 추가 대화상자가 나타나고 사용할 프로젝트 및 클러스터를 선택하거나 새 클러스터를 만들 수 있습니다.
![클러스터 플랫폼 선택](https://cloud.google.com/static/code/docs/shell/images/shell-cluster-choose-platform.png?authuser=6&hl=ko)
활성 클러스터로 설정: 구성된
kubectl
컨텍스트가 기본적으로 이 클러스터에 액세스할 수 있도록 지정된 클러스터를 활성으로 설정합니다.
Kubernetes 섹션이 자동으로 새로고침되고 해당하는 클러스터 옆에 Kubernetes 기호가 표시됩니다.
클러스터에 여러 컨텍스트가 구성되어 있으면 사용 가능한 컨텍스트 중 하나를 선택하여 현재 컨텍스트로 설정할 수 있습니다.
네임스페이스
활성 네임스페이스로 설정: 구성된
kubectl
컨텍스트가 기본적으로 이 네임스페이스에 액세스할 수 있도록 네임스페이스를 활성으로 설정합니다.활성으로 설정할 네임스페이스를 마우스 오른쪽 버튼으로 클릭합니다.
Kubernetes 컨텍스트는 클러스터의 네임스페이스에 빠르게 액세스할 수 있는 단축키입니다. 일반적으로 minikube 또는 GKE 클러스터를 시작할 때 컨텍스트가 자동으로 생성됩니다. 지정된 네임스페이스에 현재 컨텍스트로 설정 옵션이 표시되지 않은 상태에서 관련 컨텍스트를 만들려면 kubectl config set-context
명령어를 사용하여 원하는 클러스터, 사용자, 네임스페이스로 컨텍스트를 설정합니다.
포드
- 로그 보기: 포드에서 Kubernetes 섹션 콘솔로의 로그를 확인합니다.
터미널 열기: Kubernetes 섹션 콘솔에서 포드의 터미널을 엽니다.
또한 실행 중인 pod에는 라벨 옆에 색이 지정된 상태 표시가 있습니다.
- 빨간색: pod가 실패 상태입니다.
- 노란색: pod가 시작 또는 종료 중입니다.
- 녹색: pod가 정상이고 실행 중입니다.
![포드 옆에 정상 상태를 나타내는 녹색 체크표시](https://cloud.google.com/static/code/docs/vscode/images/vscode-pod-status-green.png?authuser=6&hl=ko)
컨테이너
배포
로그 보기: 배포에서 Kubernetes 섹션 콘솔로의 로그를 확인합니다.
라이브 배포에는 라벨 및 현재/총 복제본 수 옆에 색이 지정된 상태 표시가 있습니다.
- 노란색: 배포에 최소 가용성이 없거나 이미지 문제가 있습니다.
- 녹색: 배포가 정상이며 최소 가용성이 있습니다.
![정상 상태를 나타내는 녹색 배포 아이콘](https://cloud.google.com/static/code/docs/vscode/images/vscode-deploy-status-green.png?authuser=6&hl=ko)
노드
클러스터의 노드에는 이름 옆에 색이 지정된 상태 표시가 있습니다.
- 노란색: 노드에 메모리 또는 디스크 가용성과 같은 리소스 문제가 있습니다.
- 녹색: 노드가 정상입니다.
커스텀 리소스 정의(CRD)
Kubernetes 섹션에는 클러스터에 설치되어 사용 가능한 모든 커스텀 리소스 정의(CRD)가 나열됩니다.
![섹션의 커스텀 리소스 정의 목록](https://cloud.google.com/static/code/docs/vscode/images/vscode-crd-list.png?authuser=6&hl=ko)
다음 단계
- 코드 샘플에서 Kubernetes 애플리케이션을 만들고 배포하여 Kubernetes의 VS Code용 Cloud Code 시작하기
- 파일 동기화 및 핫 리로드를 사용하여 개발 속도 높이기
- Cloud Code에서 애플리케이션 디버깅