이야기박스
Kubernetes. Skaffold를 활용하여 개발환경을 꾸려보자 본문
반응형
Skaffold란?
코드 수정 → 쿠버네티스 클러스터까지 적용을 단순화해준 프레임워크입니다.
- Code change
- Docker container build
- Kubernetes resources deploy
- Debugging on k8s cluster
공식 문서
사전 작업
skaffold 설치
$ brew install skaffold
$ skaffold version
d879183-dirty
skaffold init
$ skaffold init ✔ │ 13:48:40
? Choose the builder to build image story-test Buildpacks (pom.xml)
? Which builders would you like to create kubernetes resources for?
apiVersion: skaffold/v2beta23
kind: Config
metadata:
name: story-rest-server
build:
artifacts:
- image: story-test
buildpacks:
builder: gcr.io/buildpacks/builder:v1
deploy:
kubectl:
manifests:
- k8s-manifests/develop/configmap.yaml
- k8s-manifests/develop/deployment.yaml
- k8s-manifests/develop/ingress.yaml
- k8s-manifests/develop/service.yaml
? Do you want to write this configuration to skaffold.yaml? Yes
Configuration skaffold.yaml was written
You can now run [skaffold build] to build the artifacts
or [skaffold run] to build and deploy
or [skaffold dev] to enter development mode, with auto-redeploy
IntelliJ 연동
Plugin 설치
[ `Command` + `,` ] 으로 `Preferences`에서 Plugin 설치
Run / Debug Configuration
skaffold.yaml
active profile 지정해주는 간단한 작업 진행합니다.
apiVersion: skaffold/v2beta21
kind: Config
metadata:
name: story-rest-server
requires:
- configs: []
activeProfiles:
- name: default
activatedBy: []
build:
tagPolicy:
customTemplate:
template: "skaffold"
artifacts:
- image: story-test
context: .
docker:
dockerfile: Dockerfile
deploy:
kubectl:
manifests:
- k8s-manifests/develop/configmap.yaml
- k8s-manifests/develop/deployment.yaml
- k8s-manifests/develop/ingress.yaml
- k8s-manifests/develop/service.yaml
실행
이후 Run Configuration을 통하여 실행하면 됩니다.
`Run` → `Edit Configurations...` → `Cloud code: Kubernetes` 클릭
후기
예전부터 종종 사용했었는데, 자바 어플리케이션 같은 경우는 이미지 빌드 시간이 워낙 길어서 이미지 빌드 시간을 간소화시켜둔 후에 사용하는 것이 좋습니다.
반응형
'Computer & Data > Orchestration' 카테고리의 다른 글
Network Containers (0) | 2022.10.23 |
---|---|
What is the difference between a process, a container, and a VM? (2) | 2022.10.10 |
Kubernetes. 고급 스케줄링 (1) | 2022.01.12 |
Kubernetes. 소스 IP 주소 구하기 (0) | 2020.06.29 |
Kubernetes. Ingress and TLS Setting (0) | 2020.01.28 |