Kustomize
About
Kustomize는 쿠버네티스 구성을 사용자 정의화하는 도구이다. 이는 애플리케이션 구성 파일을 관리하기 위해 다음 기능들을 가진다.
- 다른 소스에서 리소스 생성
- 리소스에 대한 교차 편집 필드 설정
- 리소스 집합을 구성하고 사용자 정의
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