Appearance
Kustomize書き方
設定ファイル書き方
ベースとなる設定と、開発環境向けの設定とが存在する想定でファイルのサンプルを記述します。
ディレクトリ構成
.
├── bases
│ ├── deployment.yaml
│ ├── kustomization.yaml
│ └── service.yaml
└── overlays
└── dev
├── deployment.yaml
└── kustomization.yamlbasesは各環境に共通する設定ファイルを配置します。overlaysはそれぞれの環境固有の設定ファイルを配置します。
設定内容
bases
kustomization.yamlのresourcesで指定したファイルを読み込みます。
kustomization.yaml
yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yamldeployment.yaml
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: first-deployment
spec:
selector:
matchLabels:
app: first-nginx
replicas: 3
template:
metadata:
labels:
app: first-nginx
spec:
containers:
- name: first-nginx
image: nginx:1.18
ports:
- containerPort: 80service.yaml
yaml
apiVersion: v1
kind: Service
metadata:
name: first-service
spec:
type: NodePort
ports:
- name: "nginx-port"
protocol: "TCP"
port: 80
nodePort: 30080
selector:
app: first-nginxoverlays/dev
basesで記述した設定に対し、差分となる箇所のみ記述します。下記の例では、devのみレプリカ数が1となります。
kustomization.yaml
yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../../bases
patches:
- path: deployment.yamldeployment.yaml
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: first-deployment
spec:
replicas: 1使用方法
kustomization.yamlの内容でマニフェストを標準出力します:
shell
kustomize build bases/shell
# ビルドしたマニフェストでリソースを作成
kustomize build bases/ | kubectl apply -f -kubectlコマンドを使ってkustomization.yamlの内容でリソースを作成します:
shell
kubectl apply -k bases/- dev向けの設定でリソースを作成します:
shell
kubectl apply -k overlays/dev/