Cloud Code를 사용하면 샘플 또는 기존 프로젝트를 기반으로 Kubernetes 애플리케이션을 만들 수 있습니다.
템플릿에서 애플리케이션 만들기
Cloud Code에는 빠른 시작을 위한 코드 샘플 템플릿 모음이 포함되어 있습니다. 기존 샘플을 사용하여 Kubernetes 애플리케이션을 만들려면 다음 단계를 따르세요.
- 명령어 팔레트를 시작한 다음(
Ctrl
/Cmd
+Shift
+P
를 누르거나 보기 > 명령어 팔레트를 클릭) Cloud Code: New Application을 실행합니다. - 샘플 유형으로 Kubernetes 애플리케이션을 선택합니다.
- 사용할 수 있는 옵션(NodeJS, Go, Python, 자바) 중에서 사용할 언어에 맞는 샘플을 선택합니다.
로컬 머신에서 원하는 애플리케이션 위치를 선택한 후 새 애플리케이션 만들기를 클릭하여 저장합니다.
Cloud Code는 선택한 샘플을 클론하여 사용할 새로운 프로젝트를 엽니다.
샘플 애플리케이션 구조
모든 언어 샘플 애플리케이션의 구조는 거의 동일합니다. 이 구조가 지원되는 유일한 구조는 아니지만 시작 시 권장되는 구조입니다.
예를 들어 Node.js 방명록 애플리케이션 구조는 다음과 같습니다.
.
|---- .vscode
| └---- launch.json
|---- kubernetes-manifests
| |---- guestbook-backend.deployment.yaml
| |---- guestbook-backend.service.yaml
| |---- guestbook-frontend.deployment.yaml
| |---- guestbook-frontend.service.yaml
| |---- mongo.deployment.yaml
| └---- mongo.service.yaml
|---- src
| |---- backend
| | |---- Dockerfile
| | |---- index.js
| | |---- app.js
| | └---- package.json
| |---- frontend
| |---- Dockerfile
| |---- index.js
| | |---- app.js
| └---- package.json
└---- skaffold.yaml
이 Kubernetes 방명록 Node.js 샘플 앱을 자세히 살펴보면 다음과 같은 몇 가지 핵심 파일과 용도가 있습니다.
- .vscode
extensions.json
: 이 프로젝트를 열면 관련 확장 프로그램 다운로드를 요청하는 메시지 표시launch.json
: Kubernetes 애플리케이션을 실행하거나 디버깅하는cloudcode.kubernetes
유형의 실행 구성tasks.json
: Visual Studio Code 태스크의 구성 정보
- kubernetes-manifests
guestbook-backend.deployment.yaml
: 백엔드 노드의 포드 사양guestbook-frontend.deployment.yaml
: 프런트엔드 노드의 포드 사양mongo.deployment.yaml
: 데이터베이스의 포드 사양
- src
(backend|frontend)/app.js
: 웹 서버 로직이 있는 Node.js 코드(backend|frontend)/Dockerfile
: 프로그램용 컨테이너 이미지 빌드에 사용
skaffold.yaml
: Cloud Code가 Kubernetes 애플리케이션을 빌드, 배포, 디버그하는 데 사용되는 Skaffold의 구성 파일
자체 애플리케이션 사용
기존 프로젝트를 사용하는 단계는 기존 Kubernetes 애플리케이션과 함께 Cloud Code 사용을 참조하세요.
Kubernetes 컨텍스트 설정
애플리케이션을 실행하기 전 원하는 Kubernetes 컨텍스트에 앱을 배포하도록 설정되었는지 확인합니다. 이는 구성에서 지정할 수 있습니다.
구성
Cloud Code: Develop on Kubernetes 실행 구성을 사용하는 경우 사용 가능한 설정을 구성하여 배포를 맞춤설정할 수 있습니다.
구성을 추가하거나 수정하려면 실행 > 구성 열기로 이동한 다음 구성을 수정하거나 추가합니다.빌드 설정
Cloud Code는 Docker, Jib, Buildpacks 아티팩트 유형을 지원합니다. 원하는 빌더 및 관련 설정을 설정하는 방법에 대한 자세한 내용은 컨테이너 이미지 빌드 환경설정 구성 가이드를 참조하세요.
시작 구성 맞춤설정
애플리케이션 실행 방법을 구성하려면 skaffold.yaml
파일을 맞춤설정하면 됩니다.
.vscode/launch.json
파일에서 cloudcode.kubernetes
구성을 수정하여 실행을 구성할 수도 있습니다.
실행 구성 맞춤설정에 대한 자세한 내용은 Cloud Code의 Kubernetes를 참조하세요.
애플리케이션 실행
애플리케이션을 설정하면 Kubernetes 클러스터에서 실행하고 skaffold dev
를 사용하여 실시간으로 볼 수 있습니다.
Minikube 또는 Docker Desktop과 같은 로컬 클러스터, Google Kubernetes Engine 또는 다른 클라우드 제공업체에서 애플리케이션을 실행할 수 있습니다.
- 명령어 팔레트를 열고(
Ctrl
/Cmd
+Shift
+P
누르기) Cloud Code: Kubernetes에서 실행 명령어를 실행합니다. - 현재의 Kubernetes 컨텍스트를 사용하여 앱을 실행할지 또는 선호하는 컨텍스트로 전환할지 확인합니다. Kubernetes 컨텍스트 설정에 대한 자세한 내용은 구성 설정을 참조하세요.
원격 클러스터를 컨텍스트로 선택한 경우 메시지가 표시되면 이미지를 푸시할 이미지 레지스트리를 선택합니다. Container Registry를 사용하는 경우 기존 레지스트리를 탐색하거나 만들 레지스트리의 이름을 지정할 수 있습니다. 프로젝트에 Artifact Registry API가 사용 설정되어 있고 하나 이상의 Artifact Registry 저장소가 있는 경우 기존 Artifact Registry 저장소를 찾아서 선택할 수 있습니다.
다음 샘플은 몇 가지 일반적인 레지스트리의 경우 컨테이너 이미지가 저장되는 위치를 지정하는 방법을 보여줍니다.
Artifact Registry {region}-docker.pkg.dev/{project_id}/{repo-name} Container Registry gcr.io/{project_id} Docker Hub docker.io/{account}
비공개 Docker Hub 저장소를 사용하는 경우 적절하게 인증되었는지 확인합니다.AWS Container Repository(ECR) {aws_account_id}.dkr.ecr.{region}.amazonaws.com/{my-app} Azure Container Registry(ACR) {my_acr_name}.azurecr.io/{my-app} Cloud Code는 이 이미지 레지스트리를 Kubernetes 매니페스트에 지정된 이미지 이름과 연결하여 최종 이미지 저장소 이름을 생성합니다.
자세한 내용은 이미지 레지스트리 처리 가이드를 참조하세요.
이 선택사항은
cloudcode.kubernetes
시작 구성(.vscode/launch.json에 있음)에 저장됩니다.Cloud Code가 컨테이너를 빌드하여 레지스트리로 푸시하고 Kubernetes 구성을 클러스터에 적용하여 출시를 기다립니다.
로그 보기
애플리케이션을 개발하고 실행하는 동안 터미널 출력에서 포드를 실시간 스트림으로 보는 로그 외에 Kubernetes 섹션으로 이동하여 특정 포드의 로그를 볼 수 있습니다.
특정 포드의 로그를 보려면 다음 단계를 따릅니다.
- Kubernetes 섹션에서 배포를 펼칩니다.
로그를 보려는 포드를 마우스 오른쪽 버튼으로 클릭한 다음 로그 보기를 클릭합니다.
로그 뷰어가 열립니다.
변경, 다시 빌드, 삭제
시작 구성에서 감시 모드를false
로 설정했고 애플리케이션을 변경한 후 애플리케이션을 다시 빌드하고 다시 배포하려는 경우:
변경사항을 적용하고 저장합니다.
디버그 툴바에서 일시중지(
F6
)를 클릭한 후 다시 시작(Ctrl/Cmd + Shift + F5
)을 클릭하여 애플리케이션을 다시 빌드하고 다시 배포합니다.애플리케이션 실행을 중지하려면 디버그 툴바에서 중지를 클릭합니다.
애플리케이션을 중지한 후 배포된 모든 Kubernetes 리소스가 클러스터에서 삭제됩니다. 시작 구성에서 cleanUp
플래그를 사용하여 이 동작을 변경할 수 있습니다.
보안 비밀 저장
코드에 API 키, 비밀번호, 인증서와 같이 민감할 수 있는 데이터가 포함된 경우 이를 보안 비밀로 저장하는 것이 좋습니다. Cloud Code를 사용하면 이러한 보안 비밀을 Secret Manager에 안전하게 저장하고 필요할 때 프로그래매틱 방식으로 가져올 수 있습니다.
Cloud Code를 사용하여 보안 비밀을 만들고 관리하는 방법에 대한 자세한 내용은 Secret Manager 가이드를 참조하세요.
리소스 세부정보 보기
Kubernetes 섹션에는 클러스터, 네임스페이스, 노드, 워크로드(예: 배포, 복제본, pod, 컨테이너 등), 서비스 및 인그레스, 구성(보안 비밀, 구성 맵 등), 스토리지(볼륨 등)가 표시됩니다. Kubernetes 섹션을 사용하면 이러한 리소스 중 일부에 대해 고유한 작업을 수행할 수 있습니다.
리소스 세부정보 보기에 대한 자세한 내용은 Kubernetes 개요를 참조하세요.
다음 단계
- 빌드팩, Jib 또는 Docker로 빌드 옵션 살펴보기
- 파일 동기화 및 핫 리로드를 사용하여 개발 속도 높이기
- Cloud Code의 YAML 편집 지원 자세히 알아보기