Slide 1

Slide 1 text

Kubernetes とDeclarative Configuration 2019-03-09 Tomoya Tabuchi (@tomoyat1) 1 / 10

Slide 2

Slide 2 text

本日のお話 • Kubernetes とは? • Declarative Configuration • Reconciliation Loop • 具体例 (デモ) 2 / 10

Slide 3

Slide 3 text

Kubernetes1とは? • コンテナを中心としたプラットフォーム? • 計算・ネットワーク・ストレージの管理? • 分散コンピューティング? 今日は Declarative Configuration の観点から紹介 1https://kubernetes.io/ 3 / 10

Slide 4

Slide 4 text

Declarative Configuration どのリソースがどれだけあるかを宣言することで構成を定義する # hello-kube のコンテナを 1 つ動かしたい! # (今日は YAML の仕様を理解しなくてよいです) kind: Deployment spec: replicas: 1 # 動かす個数 template: spec: containers: # コンテナの仕様 - image: gcr.io/tomoyat1-artifacts/hello-kube:v0.0.1 name: hello-kube 宣言するだけで構成が勝手にそれに近づく! →どうやって? 4 / 10

Slide 5

Slide 5 text

Reconciliation Loop • 観測・差分計算・操作のループ • リソースごとに別コンポーネント がループを実行 5 / 10

Slide 6

Slide 6 text

コンテナ (Pod) 数の維持 – 具体例 6 / 10

Slide 7

Slide 7 text

イメージの変更 – 具体例 7 / 10

Slide 8

Slide 8 text

external-dns, cert-manager – 具体例 • external-dns2: DNS レコードの管理を行う Add-on • cert-manager3: Let’s Encrypt の証明書を自動で作成する Add-on • 時間がかかるので発表前に仕込んでおきました (終わっていてくれ :pray:) 2https://github.com/kubernetes-incubator/external-dns 3https://github.com/jetstack/cert-manager 8 / 10

Slide 9

Slide 9 text

まとめ • Kubernetes: Declarative Configuration によるインフラの自動化ができる • 独自のリソースを定義する →自動化するプラットフォーム • 分散させるような大規模環境でなくても便利そう 9 / 10

Slide 10

Slide 10 text

ご清聴ありがとうございました Further Reading • 公式 • https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/ • https://kubernetes.io/docs/concepts/overview/object-management- kubectl/declarative-config/ • https://deeeet.com/writing/2018/12/13/how-kubernetes-change-our-way-of- automation/ • https://www.slideshare.net/ToruMakabe/kubernetes-120907020 10 / 10