이야기박스

Kubernetes. Skaffold를 활용하여 개발환경을 꾸려보자 본문

Computer & Data/Orchestration

Kubernetes. Skaffold를 활용하여 개발환경을 꾸려보자

박스님 2022. 5. 19. 11:55
반응형

Skaffold란?

코드 수정 → 쿠버네티스 클러스터까지 적용을 단순화해준 프레임워크입니다.

  • Code change
  • Docker container build
  • Kubernetes resources deploy
  • Debugging on k8s cluster

공식 문서

https://skaffold.dev/docs/

 

사전 작업 

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` 클릭​

 

후기

예전부터 종종 사용했었는데, 자바 어플리케이션 같은 경우는 이미지 빌드 시간이 워낙 길어서 이미지 빌드 시간을 간소화시켜둔 후에 사용하는 것이 좋습니다.

 

반응형