원격 개발을 통해 Kubernetes 앱 개발

이 페이지에서는 VS Code용 Cloud Code 원격 개발을 사용하는 방법을 설명합니다. 즉, 애플리케이션을 빌드, 디버깅, 배포하는 원격 컨테이너에서 코드베이스를 여는 방법을 설명합니다. 이렇게 하면 개발 머신의 OS에 관계없이 이동성이 있는 애플리케이션이 생성됩니다.

기본 요건

Cloud Code 확장 설치에 설명된 설정 외에도 원격 개발 VS Code 확장 팩을 설치합니다.

설정

  1. 사용 중인 언어에 대해 구성된 Dockerfile 및 Devcontainer.json 파일로 .devcontainer 폴더를 설정하려면 원격 창 열기 원격 창 열기 > 개발 컨테이너 구성 파일 추가를 클릭합니다. 또는 컨테이너에서 원격 개발에 설명된 단계를 따를 수 있습니다.

    프롬프트를 따른 후 작업공간에는 다음이 포함됩니다.

    • Dockerfile — 원격 개발 컨테이너에 설치하기 위해 개발자 도구를 포함하는 컨테이너 이미지를 정의합니다.

    • Devcontainer.json — VS Code 원격 도구 확장에 원격 개발 컨테이너 실행 방법을 지시합니다.

  2. Dockerfile을 열고 Google Cloud CLISkaffold 설치 안내를 추가합니다. 최신 명령어를 보려면 설치 가이드를 참조하세요.

  3. Dockerfile에서 >> $HOME/.bashrc 명령어 앞에 localhost의 gcloud CLI 및 Skaffold 구성을 복사하기 위한 안내를 추가합니다. 또는 gcloud CLI 및 Skaffold를 설치하도록 명령어를 재작성할 수 있습니다.

    # Copy localhost's ~/.kube/config file into the container and swap out localhost
    # for host.docker.internal whenever a new shell starts to keep them in sync.
    RUN echo '\n\
    if [ "$SYNC_LOCALHOST_KUBECONFIG" == "true" ]; then\n\
      mkdir -p $HOME/.kube\n\
      cp -r $HOME/.kube-localhost/* $HOME/.kube\n\
      sed -i -e "s/localhost/host.docker.internal/g" $HOME/.kube/config\n\
    \n\
    fi' \
    if [ "$SYNC_LOCALHOST_GCLOUD" == "true" ]; then\n\
     mkdir -p $HOME/.config/gcloud\n\
     cp -r $HOME/.gcloud-localhost/* $HOME/.config/gcloud\n\
    \n\
    fi' \
    
  4. Devcontainer.json 파일을 열고 localhost에서 gcloud CLI 및 Skaffold 구성을 복사하도록 다음 실행 인수를 추가합니다.

      "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
      "-e", "SYNC_LOCALHOST_GCLOUD=true",
    
  5. 파일에 필요한 콘텐츠가 포함되었으면 원격 창 열기를 클릭합니다.

샘플 devcontainer.json 파일

devcontainer.json 파일은 원격 컨테이너 확장에 컨테이너에서 노출할 포트, 드라이브 마운트 방법, 원격 컨테이너에서 설치할 확장을 지정합니다. 다음 샘플 devcontainer.json 파일은 원격 컨테이너 확장이 VS Code용 Cloud Code 확장을 설치하도록 지정합니다.

   "runArgs": [
         "-v","/var/run/docker.sock:/var/run/docker.sock",
         "--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.kube,target=/root/.kube-localhost",
         "--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.config/gcloud,target=/root/.gcloud-localhost",
         "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
         "-e", "SYNC_LOCALHOST_GCLOUD=true",
         "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"
      ]

다음 단계

지원받기

의견을 보내려면 GitHub에서 문제를 보고하거나 Stack Overflow에서 질문하세요.