이 문서에서는 Skaffold 정의, Cloud Deploy에서 Skaffold를 사용하는 방법과 이유, Skaffold 사용을 위해 필요한 작업에 대해 설명합니다.
Cloud Deploy에서 Skaffold는 렌더링 및 배포 작업을 위해 사용됩니다. 또한 로컬 개발, 빌드, 테스트, 고급 배포 기능을 위해 사용할 수도 있습니다. 하지만 Cloud Deploy에는 렌더링 및 적용을 위해 매니페스트를 식별하는 Skaffold 구성만 필요합니다.
Skaffold란 무엇인가요?
Skaffold는 Kubernetes 네이티브 애플리케이션을 지속적으로 개발할 수 있게 해주는 명령줄 도구입니다. Skaffold를 사용해서 Cloud Deploy 지속적 배포 파이프라인에 사용할 로컬 개발 작업공간을 구성할 수 있습니다.
Skaffold에는 다음 기능이 포함되어 있습니다.
- CI/CD 파이프라인 활동(빌드, 렌더링, 테스트 배포 등)을 개별적으로 제어할 수 있습니다. 
- 로컬 개발 도구로 유용합니다. 
- Skaffold 프로필을 사용하면 모두 동일한 구성 파일에서 서로 다른 빌드, 테스트, 배포 구성을 사용해서 여러 환경을 구분할 수 있습니다. 
Cloud Deploy에서 Skaffold가 사용되는 이유는 무엇인가요?
Google Cloud Deploy는 Skaffold를 사용해서 렌더링 도구와 전달 파이프라인을 구분합니다. 전달 파이프라인은 단순히 대상에서 대상으로의 진행을 정의하지만, Skaffold 구성은 렌더링되는 매니페스트 및 그 방법을 정의합니다. 이렇게 하면 전달 파이프라인 정의 방법에 영향을 주지 않고도 매니페스트 렌더링을 유연하게 수행할 수 있습니다.
Cloud Deploy에서 Skaffold를 사용할 때의 이점은 다음과 같습니다.
- 손쉬운 온보딩 - 로컬 개발 루프로 시작합니다. - skaffold.yaml파일을 팀과 공유해서 일관성을 유지하고 새로운 팀 구성원이 시작할 때 도움을 줄 수 있습니다.
- 여러 배포 대상 간 렌더링에 대한 일관적인 제어 - 여러 대상에 대한 다양한 렌더링 및 배포가 포함된 Skaffold 프로필을 사용할 수 있습니다. 
- 전달 파이프라인 정의 방법을 훼손하지 않고 렌더링 도구 선택 가능 - Cloud Deploy는 Skaffold를 사용하여 배포 파이프라인 정의를 렌더링 세부정보와 분리할 수 있습니다. 이러한 분리를 통해 전달 파이프라인을 중단하지 않고도 매니페스트를 실험해볼 수 있습니다. 
- 일관성 있는 렌더링 프로세스 - 렌더링 소스와 컨테이너를 사용해서 렌더링된 매니페스트를 생성합니다. 
- 배포 상태 확인 - Skaffold는 배포 상태를 점검하고 Cloud Deploy는 이를 사용합니다. 
Cloud Deploy에서 Skaffold는 어떻게 사용되나요?
- 출시 버전을 만들 때 컨테이너 이미지에 대한 렌더링 소스 및 참조가 Cloud Deploy로 전달됩니다. - 출시 버전을 만들 때 Cloud Deploy는 Cloud Build를 호출하고, Cloud Build는 다시 - skaffold diagnose및- skaffold render를 호출해서 해당 렌더링 소스 및 이미지를 사용하여 매니페스트를 렌더링합니다.
- Skaffold 프로필을 사용하면 여러 대상에 적용되는 매니페스트를 분리할 수 있습니다. 
- Cloud Deploy는 정적 Skaffold 모듈을 지원합니다. 
- 배포 시 Cloud Deploy는 - skaffold apply를 호출하여 렌더링된 매니페스트 또는 매니페스트를 대상 클러스터에 적용합니다.
- 커스텀 대상을 사용하지 않는 한 Cloud Deploy는 애플리케이션 배포에 다른 배포자를 사용하는 것을 지원하지 않습니다. 하지만 Helm 또는 Kustomize와 같은 도구를 렌더러로 사용할 수 있습니다. Cloud Deploy가 특정 배포자(예: Helm)를 사용하지 않고 배포하는 방법에 관해 자세히 알아보려면 서비스 아키텍처를 참조하세요. 
Skaffold 맞춤설정
- 파이프라인 요구사항에 맞게 Skaffold를 구성합니다. - 전달 파이프라인의 요구사항을 결정합니다. - 포함할 대상 수는 몇 개인가요? 렌더링과 배포가 서로 동일한가요? 진행 중 각 대상에 대해 구성이 동일하면 Skaffold 프로필을 사용할 필요가 없습니다. 렌더링할 매니페스트를 기술하는 - skaffold.yaml파일만 필요합니다.
- 적용 가능한 경우 각 대상에 대해 Skaffold 프로필 만들기 - skaffold.yaml파일에서 이를 정의하고 전달 파이프라인 정의 진행 시퀀스에서 바인딩합니다.- Skaffold 프로필에 대한 자세한 내용은 Skaffold 문서를 참조하세요. 또한 Cloud Deploy에서 매니페스트 관리 문서에는 예시 프로필 구성이 포함되어 있습니다. 
- Skaffold 로깅 세부정보 수준 설정 - 기본적으로 Skaffold 로깅 수준은 - warn으로 설정됩니다. 대상의 실행 환경에 대한 구성에서- verbose: true를 설정하여- debug으로 변경할 수 있습니다.
 
- 연속 통합 시스템에 Cloud Deploy를 연결합니다. - CI 프로세스가 종료될 때 - skaffold.yaml, 렌더링 소스, 렌더링된 매니페스트에 입력할 컨테이너 이미지를 전달합니다.
- 선택사항: Skaffold를 사용해서 로컬 개발 루프를 설정합니다. - 개발에 Skaffold 사용은 Cloud Deploy에서 선택사항입니다. Cloud Deploy를 작동하기 위해서는 렌더링할 매니페스트를 식별하는 - skaffold.yaml파일만 있으면 됩니다.
다음 단계
- Skaffold 사이트를 방문해서 Skaffold의 작동 방식과 기능을 확인합니다. 
- Cloud Deploy에서 사용할 Skaffold 버전을 선택하는 방법, Skaffold 버전이 변경되는 경우, 현재 사용 중인 버전을 확인하는 방법을 자세히 알아봅니다. 
- Helm, Kustomize, kpt와 같은 고급 매니페스트 관리 도구와 함께 Skaffold 프로필을 사용하는 방법을 알아봅니다. 
- Skaffold 프로필 둘러보기 사용해 보기