Kubernetes kustomize
Jump to navigation
Jump to search
Overview
Kustomize 내용 정리.
Kustomize does customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as-is.
Basic
Kustomize is a standalone tool to customize Kubernetes objects through a kustomization file.
Since 1.14, Kubectl also supports the management of Kubernetes objects using a kustomization file. To view Resources found in a directory containing a kustomization file, run the following command.
$ kubectl kustomize <kustomization_directory>
$ kubectl kustomize ./k8s
apiVersion: v1
kind: Service
metadata:
labels:
app: simple-golang
name: svc-cluster-simple-golang
spec:
ports:
- name: http
port: 8090
protocol: TCP
targetPort: 8090
selector:
app: simple-golang
type: ClusterIP
---
apiVersion: v1
kind: Service
metadata:
labels:
app: simple-golang
name: svc-nodeport-simple-golang
spec:
ports:
- port: 8090
protocol: TCP
selector:
app: simple-golang
type: NodePort
---
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: simple-golang
name: simple-golang
spec:
replicas: 1
selector:
matchLabels:
app: simple-golang
template:
metadata:
labels:
app: simple-golang
deployment: simple-golang
spec:
containers:
- image: simple_golang_k8s:latest
name: simple-golang
ports:
- containerPort: 8090
resources:
limits:
cpu: "1"
memory: 256M
requests:
cpu: 100m
memory: 128M
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
app: simple-golang
name: ingress-simple-golang
spec:
backend:
serviceName: svc-nodeport-simple-golang
servicePort: 8090
rules:
- host: foo.mydomain.com
http:
paths:
- backend:
serviceName: svc-nodeport-simple-golang
servicePort: 8090
To apply those Resources, run kubectl apply with --kustomize or -k flag.
$ kubectl apply -k <kustomization_directory>
See also
- https://blog.stack-labs.com/code/kustomize-101/ - Kustomize - The right way to do templating in Kubernetes