Kustomize
About
Kustomize는 쿠버네티스 구성을 사용자 정의화하는 도구이다. 이는 애플리케이션 구성 파일을 관리하기 위해 다음 기능들을 가진다.
- 다른 소스에서 리소스 생성
- 리소스에 대한 교차 편집 필드 설정
- 리소스 집합을 구성하고 사용자 정의
Install
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash
winget 으로 설치:
Usage
보통 Pipe 로 연결하여 -f - 옵셥으로 사용하더라 (대표적으로 kubeflow):
또는 -k 옵션으로 사용할 수 있다:
설치된거 제거 방법
# 1. 일반 리소스 삭제
kubectl delete -k . --ignore-not-found=true
# 2. 강제 삭제 (타임아웃 시)
kubectl delete -k . --grace-period=0 --force --ignore-not-found=true
Example
- Github - premist/inspekt - Simple web server that shows Pod/Node debug information on Kubernetes
kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deploy/deployment.yaml
- deploy/service.yaml
deploy/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: inspekt-deployment
labels:
app: inspekt
spec:
replicas: 1
selector:
matchLabels:
app: inspekt
template:
metadata:
labels:
app: inspekt
spec:
containers:
- name: inspekt
image: premist/inspekt:latest
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: HOST_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
ports:
- containerPort: 8000
livenessProbe:
httpGet:
path: /
port: 8000
initialDelaySeconds: 3
periodSeconds: 3
deploy/service.yaml
apiVersion: v1
kind: Service
metadata:
name: inspekt
namespace: default
spec:
ports:
- name: http
targetPort: 8000
port: 80
selector:
app: inspekt
deploy/ingress-example.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: inspekt
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: inspekt
servicePort: http
See also
Favorite site
- Kustomize를 이용한 쿠버네티스 오브젝트의 선언형 관리 | Kubernetes
- Kustomize로 K8S 리소스 관리하기
- (Kubernetes) Kustomize
- Declarative Management of Kubernetes Objects Using Kustomize | Kubernetes
- 쿠버네티스 Config 변경을 위한 Kustomize
- Kustomize로 K8S 리소스 관리하기
- Helm과 Kustomize, 무엇을 쓸까? (Helm vs Kustomize)
- kubectl 명령을 사용하여 kustomize 사용하기 | 개발자 Story | SKT Enterprise