0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

k8sでkustomizeを使ってみる

Last updated at Posted at 2020-06-29

tl; dr

  • kustomize使うとまとめてapplyできるよ
  • kustomizeで環境を分ける場合はpatchを使おう

kustomizeとは

k8sのクライアントを使う上で、環境を再構築する場合や、
環境ごとにわけてapplyしたい場合などにまとめてやることができるクライアントツールです。
version14以上の kube-ctlが使える状態だと標準で使うことがきます。
今回は、使うための最低限の動作を試してみたいと思います。

まとめてdeployしてみる

シンプルな例として、下記のようなファイルを用意します。
(deployとserviceの作成は割愛します)

kustomization.yaml
commonLabels:
 app: test01
resources:
- deploymant.yaml
- service.yaml

kustomization.yamlの配置しているディレクトリで、
buildをしてみます

kustomize build .

すると、それぞれの定義が、---で区切られて作成されていることがわかります。さらにこれをapplyするには以下を実行します。

kustomize build . | kubectl apply -f -

patchを使って、環境想定の構成でdeployしてみる

例えば環境によって、デプロイ内容を変えてみましょう。
今回はディレクトリ構成を以下のようにし、
deploymant_patch.jsonを新しく作成します。

.
├── base
│   ├── deploymant.yaml
│   ├── servece.yaml
│   └── kustomization.yaml
└── overlays
    └── develop
        └── deploymant_patch.yaml
        └── kustomization.yaml

特殊な構文ですが、以下を参照に、今回はreplica数を変えてみます
(元々replicas: 3)のdevelopだったとします

overlays/develop/kustomization.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: test01-develop
spec:
  replicas: 4

この状態でapplyをしてあげると、replica数が増えていることがわかります

kustomize build overlays/develop/ | kubectl apply -f -

patchを動的に追加する

ラベルの追加

kustomize edit add label labelKey1:"labelValue1"

imageのセット
kustomize edit set image hoge.docker/hoge-image:develop

参考)

公式:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?