Google Cloud 및 Kubernetes YAML 파일 작업

Cloud Code는 스키마 기반 검증, 진단, 빠른 문서를 포함하여 Google Cloud 및 Kubernetes 관련 구성 파일을 수정하는 데 도움이 되도록 설계되었습니다.

지원되는 YAML 구성 파일

또한 Cloud Code는 즉시 사용할 수 있는 Kubeflow와 같은 인기 Kubernetes CRD도 지원합니다.

커스텀 스키마 사용

또한 Cloud Code를 사용하면 IntelliJ 설정(파일 > 설정 > 도구 > Cloud Code > Kubernetes 또는 Mac OS X의 경우 IntelliJ IDEA > 환경 설정 > 도구 > Cloud Code > Kubernetes를 선택하고 CRD 스키마 위치 섹션으로 이동)을 사용하여 자체 CRD 스키마를 제공할 수 있습니다.

로컬 파일 또는 URL을 가리킬 수 있습니다. github.com를 가리키는 URL은 자동으로 raw.githubusercontent.com로 변환됩니다.

클러스터에서 스키마 가져오기

Kubernetes 탐색기에서 Kubernetes v1.16 이상을 실행하는 클러스터로 전환하면 Cloud Code는 설치된 모든 CRD의 스키마를 자동으로 가져옵니다.

추가 Skaffold 지원

Skaffold는 Cloud Code를 구동하는 기본 엔진으로, 애플리케이션을 빌드, 푸시, 배포하고 CI/CD 파이프라인을 만들 수 있도록 지원합니다.

Cloud Code에는 Skaffold 구성 파일 관리를 위한 추가 지원이 제공됩니다. 프로젝트를 열면 Cloud Code는 최신 상태가 아닌 Skaffold 스키마를 감지하고 기존 Skaffold YAML 구성 파일에 Skaffold 스키마 버전 업그레이드를 사용할 수 있을 때 이벤트 로그를 통해 알림을 표시합니다.

기존 Skaffold YAML 파일이 최신 버전이 아니므로 Skaffold 스키마 버전을 업그레이드 하도록 사용자에게 표시되는 이벤트 로그의 알림

또는 도구) > Cloud Code > Kubernetes로 이동하고 Skaffold 스키마 업그레이드 확인)를 선택하여 사용 가능한 스키마 업그레이드를 확인합니다.

스니펫으로 구성

일반 YAML 스키마에 바로 사용할 수 있는 스니펫(옵션을 보려면 Ctrl+Space 사용)으로 권장사항을 따르면서 손쉽게 새로운 YAML 파일을 시작하거나 오류 없이 기존 YAML 파일에 추가할 수 있습니다. 또한 필드 하나를 입력하면 Cloud Code가 나머지 인스턴스를 자동으로 입력하므로 반복 필드 작업이 수월해집니다.

반복되는 필드에 스니펫 사용

현재 다음 스니펫이 제공됩니다.

  • Cloud Build - Cloud Run deployment
  • Cloud Build - Docker container build
  • Cloud Build - GKE deployment
  • Cloud Build - GKE Skaffold deployment
  • Cloud Build - Go build
  • Cloud Build - Terraform plan + apply
  • Config Connector - BigQueryDataset
  • Config Connector - BigQueryTable
  • Config Connector - BigtableCluster
  • Config Connector - BigtableInstance
  • Config Connector - PubSubSubscription
  • Config Connector - PubSubTopic
  • Config Connector - RedisInstance
  • Config Connector - SpannerInstance
  • Kubernetes - ConfigMap
  • Kubernetes - Deployment
  • Kubernetes - Ingress
  • Kubernetes - Pod
  • Kubernetes - Service
  • Migrate for Anthos - Export
  • Migrate for Anthos - PersistentVolumeClaim
  • Migrate for Anthos - StatefulSet
  • Skaffold - Bazel
  • Skaffold - Getting-started
  • Skaffold - Helm deployment
  • Skaffold - Kaniko

컨텍스트 완성

현재 스키마에 따라 Cloud Code는 적절한 옵션을 선택하는 데 유용한 컨텍스트 완성 기능을 제공합니다.

Kubernetes 스키마의 컨텍스트 완성

YAML 스키마 검사

Cloud Code는 YAML 파일의 잘못된 태그와 값을 표시하고 가능한 경우 수정을 제안하여 스키마 유효성 검사 지원을 제공합니다.

잘못된 값 '1234'를 강조표시하기 위해 빨간색으로 밑줄 표시된 이름 필드 값으로 마우스를 가져가면 다음 텍스트가 표시됩니다. '잘못된 유형. 예상 문자열.'

Skaffold YAML 파일 검사

Cloud Code는 skaffold.yaml 파일의 유효성을 쉽게 검사할 수 있는 Skaffold 구성 파일 수정 지원 및 스마트 템플릿을 추가로 제공합니다. Cloud Code에서 기존 앱을 사용하는 방법에 대한 가이드를 참조하세요.

Skaffold yaml 템플릿

컨텍스트를 사용하여 Skaffold 구성 파일 완성

현재 스키마에 따라 Cloud Code는 컨텍스트 완성 기능을 제공하고 적합한 옵션을 선택하는 데 유용한 관련 문서를 제공합니다.

Skaffold 완성

Skaffold 파일 동기화 및 핫 리로드(Hot reloading) 사용 설정

Skaffold는 로컬 개발 워크플로의 효율성을 높이고 pod를 다시 빌드, 재배포, 다시 시작할 필요가 없도록 변경된 파일을 배포된 컨테이너에 복사하는 기능을 지원합니다. 즉, 정적 및 소스 코드 파일을 변경하면 몇 초 만에 변경사항이 적용되며 신속한 피드백 루프가 발생합니다.

정적 파일(예: HTML 및 CSS 파일)의 경우 이 파일 복사 동작을 파일 동기화라고 합니다.

소스 코드 파일의 경우 이 동작을 핫 리로드(Hot reloading)라고 하며 다음 파일 유형에서 작동합니다.

  • Go: *.go
  • 자바: *.java, *.kt, *.scala, *.groovy, *.clj
  • NodeJS: *.js, *.mjs, *.coffee, *.litcoffee, *.json

핫 리로드를 구성하면 Skaffold는 지원되는 파일의 변경사항을 감지하고 이러한 변경사항을 클러스터에서 실행 중인 컨테이너와 동기화하므로 번거롭게 이미지 다시 빌드하고 Pod를 다시 시작할 필요가 없습니다. 그러나 다른 파일 형식의 변경사항은 이미지 다시 빌드를 트리거합니다.

기본 빌더로 Buildpacks를 사용하면 자동 파일 동기화와 핫 리로드는 기본적으로 사용 설정됩니다. Docker와 같은 다른 빌더의 경우 맞춤설정할 아티팩트에 skaffold.yaml에서 sync 섹션을 지정할 수 있습니다.

동기화 설정은 다음 중 하나일 수 있습니다(선호도 순서).

  • auto(Jib 및 Buildpacks 아티팩트에만 해당)
  • infer
  • manual

모든 /static-html HTML 파일을 컨테이너의 static 폴더에 동기화하도록 manual 동기화를 지정한 경우 skaffold.yaml에 이 sync 섹션이 포함됩니다.

build:
  artifacts:
    - image: gcr.io/k8s-skaffold/node-example
      context: node
      sync:
        manual:
          - src: 'static-html/*.html'
            dest: static

파일 동기화 및 동기화 규칙 지정에 대한 자세한 내용은 파일 동기화에 대한 Skaffold 가이드를 참조하세요.

빠른 문서를 통한 정의 검색

구성 파일의 한 줄을 강조표시하고 View(보기) > Quick Documentation(빠른 문서)에 액세스하면 Cloud Code에서 관련 문서가 표시됩니다.

빠른 문서

구조 및 유효성 문제에 대한 YAML 린트 작업

Cloud Code는 일반적인 스키마 문제에 대한 린트 작업 지원과 오류에 대한 설명을 제공합니다.

YAML 파일 린트 작업

YAML 파일 적용

kubectl apply -f를 실행하여 현재 파일을 사용하는 구성 변경사항을 적용하려면 IDE의 여백 영역에 있는 kubectl 작업 아이콘kubectl 작업 아이콘을 사용하여 적용을 선택하면 됩니다. 이렇게 하면 적용을 클릭하기 전에 변경사항을 검토할 수 있는 차이점 뷰가 나타납니다.

kubectl 작업 목록에 강조표시된 옵션 적용

YAML 파일 간 비교

소스 컨트롤의 YAML 파일과 배포된 YAML 파일 간의 차이점을 보려면 편집기의 여백 영역에 있는 kubectl 작업 아이콘kubectl 작업 아이콘을 사용하면 됩니다. 두 스키마 파일을 비교하여 대조할 수 있도록 차이점 옵션을 선택하면 차이점 뷰가 나타납니다.

kubectl 작업 목록에 강조표시된 비교 옵션

YAML 파일의 테스트 실행 수행

파일의 테스트 실행을 수행하고 유효성을 검증하려면 IDE 여백 공간에 있는 kubectl 작업 아이콘kubectl 작업 아이콘을 사용하여 서버에서 테스트 실행 또는클라이언트에서 테스트 실행을 선택하면 됩니다. 그러면 kubectl apply -f dry-run=server(클라이언트 옵션의 경우 kubectl apply -f dry-run=client)가 실행되며 파일이 성공적으로 생성될 수 있는지를 터미널 창에서 알려줍니다.

kubectl 작업 목록에서 강조 표시된 서버 상의 테스트 실행 옵션

지원 받기

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