Skaffold는 Kubernetes 네이티브 애플리케이션을 지속적으로 개발할 수 있게 해주는 명령줄 도구입니다. Skaffold는 애플리케이션 빌드, 푸시, 배포 워크플로를 처리하고 CI/CD 파이프라인 만들기를 위한 빌딩 블록을 제공합니다. Skaffold는 Cloud Code를 구동하는 엔진입니다.
Skaffold 프로젝트는 일반적으로 단일 skaffold.yaml
구성을 사용하여 애플리케이션을 빌드하고 배포하는 방법을 기술합니다. 프로젝트가 커지면 애플리케이션 파이프라인을 개별 부분으로 나누는 것이 유용할 수 있습니다.
Skaffold는 동일한 skaffold.yaml
파일에 함께 배치되고 YAML 문서 구분 기호(---
)를 사용하여 분리되거나 상위 수준 skaffold.yaml
파일에서 참조되는 별도의 skaffold.yaml
파일에 배치되는 여러 구성 종속 항목을 지원합니다. .metadata.name
필드를 사용하여 이름을 지정하여 모듈에 구성을 수행할 수 있습니다.
모듈을 사용하면 애플리케이션 일부를 독립적으로 개발하고 디버깅할 수 있습니다. 구성 파일 사이에 그리고 특정 모듈에 종속 항목을 정의할 수 있습니다.
Skaffold 모듈을 사용하여 애플리케이션 디버깅
전체 애플리케이션 또는 정의된 모듈 집합을 반복적으로 개발 및 디버깅할 수 있습니다. Skaffold는 모듈 종속 항목과 배포 순서를 관리합니다.
Skaffold 모듈 샘플 시작하기
애플리케이션의 모듈을 선택하려면 애플리케이션의 일부를 독립적으로 개발을 참조하세요.
아직 Skaffold 모듈을 사용해 본 적이 없고 샘플로 기능을 테스트하려면 frontend
및 backend
로 모듈화된 방명록 샘플을 참조하세요.
다양한 기술과 언어를 사용하고 Skaffold 모듈을 사용하여 개발된 대형 엔터프라이즈 애플리케이션 샘플은 Bank of Anthos 샘플을 참조하세요.
일반 사용 사례
이 섹션에서는 IDE에서 모듈을 사용할 수 있는 시기와 방법에 대한 다양한 시나리오를 보여주는 몇 가지 일반적인 사용 사례 예시를 설명합니다.
![](https://cloud.google.com/static/code/docs/intellij/images/skaffold-modules-customer-environment-diagram.png?authuser=0000&hl=ko)
마이크로서비스 개발
사용자는 주로 frontend
모듈에서 작업하는 프런트엔드 개발자입니다. 마이크로서비스로서 frontend
에는 backend
저장소에 대한 명시적인 코드나 라이브러리 종속 항목이 없지만 클러스터에 배포하고 실행하려면 backend
가 요구됩니다.
frontend
모듈 정의가 포함된 Skaffold 기반 프로젝트를 사용하여 백엔드팀도 서비스를 배포하는 공유 개발 클러스터에 Cloud Code IDE를 배포하고 이를 디버깅합니다. 이 공유 클러스터는 DevOps팀에서 유지됩니다.
대부분의 경우 backend
코드를 사용 또는 디버깅하거나 Kubernetes 구성을 업데이트할 필요가 없습니다. Skaffold는 frontend
에 필요한 다른 구성을 빌드 및 배포합니다. frontend
모듈에서만 반복하도록 Cloud Code 배포 구성을 구성합니다.
로컬 클러스터에 frontend
및 backend
를 모두 배포하면 더 빠른 반복 환경을 얻을 수 있습니다.
교차 경계 마이크로서비스 개발 및 디버깅
여러 마이크로서비스를 함께 디버깅해야 하는 경우 다음을 수행하면 됩니다.
- 모듈 소스 코드가 있는 모든 하위 디렉터리가 서로 상대적으로 위치한 상위 디렉터리를 엽니다.
- 배포(구성)할 루트
skaffold.yaml
파일을 선택합니다. - 로컬에서 사용할 수 있는
frontend
및backend
모듈 (및 해당 변경사항이 있는 경우 해당 Kubernetes 구성 모듈)에서만 반복하도록 Cloud Code 배포 구성을 구성합니다.
정적 데이터 서버가 포함된 별도의 로컬 개발용 루트 skaffold.yaml
파일이 있을 수도 있습니다.
스마트 모듈 YAML 수정
사용자는 Skaffold 모듈을 사용하는 마이크로서비스 개발자팀을 위해 템플릿 저장소를 빌드하는 DevOps 엔지니어입니다. 사용자는 수동으로 Skaffold를 실행하지 않고 모듈 정의에 오류가 없는지 확인합니다(순환 종속 항목 또는 고유하지 않은 모듈 이름 등). Cloud Code IDE를 사용하여 Skaffold YAML 구성 파일을 수정하세요.