kubesprayで作って壊そうk8sクラスタ

5.2K Views

October 12, 22

スライド概要

2022/10/12 [email protected] #1のLT資料です。

profile-image

Application Developer @IBM Japan

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

kubesprayで 作って壊そうk8sクラスタ 2022/10/12 [email protected] #1 佐々木 健太朗 @ponzmild 1

2.

自己紹介 佐々木 健太朗 (Kentaro Sasaki) - @ponzmild • 所属: 日本アイ・ビー・エム株式会社 • 普段のお仕事: OpenShiftでアプリ開発 & モダナイゼーション支援 • 書籍執筆: 『Apache Kafkaをはじめる』(インプレスR&D社) • 自宅k8s歴: 約1年 2

3.

そのKubernetesクラスタ、 「今」もう一度作り直せますか? 3

4.

長く運用していると作り直す時がくる Pod Pod Pod K8sクラスタのバージョンアップ、 コンポーネントの組合せや実装変更 Kubernetes Podから利用するパッケージ導入、 VM VM VM VM VM 定期的なバージョンアップ ハイパーバイザー 物理マシン 物理マシン 同居するVMのためにリソース空けわたし 物理マシン リソース増強、NW設定の変更、 電源断でダウン 4

5.

まとめて作り直すのは大変!! 設定値を忘れた なぜこんな設定を 入れたのか不明 手作業だと何度も やり直し 作り直したいのは 一部だけなのに 5

6.

kubesprayで カジュアルにk8s作って壊そう! 6

7.

kubesprayとは • K8sクラスタを構成管理、および作成~削除を実行するツールキット • https://github.com/kubernetes-sigs/kubespray • ベアメタル、vSphere、AWS、Azureといった複数環境に対応 • HA構成のクラスタも構成可能 • 実態はAnsible Playbookの集合 = k8sクラスタをIaC化 7

8.

https://kubernetes.io/ja/docs/setup/production-environment/tools/kubespray/ 8

9.

kubesprayの仕組み Pod Pod kubespray Addons Pod Kubernetes Ansible VM VM VM VM VM K8sに必要なOS設定 ハイパーバイザー 物理マシン 物理マシン Ansible Playbook (YAML) 物理マシン 9

10.

kubesprayをはじめる 10

11.

kubesprayの前提 • kubespray実行マシンにPythonをインストール済であること • ansible-coreのバージョンに合わせて、Python 3.8以上を推奨 • K8s NodeはLinuxであること • Debian, Ubuntu, RHEL/Fedora, Oracle Linux等 • Windows Node向けのPlaybookはあるが公式にサポートされていない 11

12.

Step1: kubesprayのセットアップ Gitリポジトリはタグ名 でクローンを推奨 12

13.

Step2: インベントリと設定ファイルを生成 Ansibleを知らなく てもインベントリと設定 YAMLを生成可能 13

14.

Step3: 設定ファイルを編集 Inventory/mycluster/group_vars/ k8s_cluster/k8s-cluster.yml group̲vars以下の 必要なパラメータだけ編集 すればOK Inventory/mycluster/group_vars/ k8s_cluster/addons.yml 14

15.

Step4a: kubesprayでクラスタを立てる • 事前定義されたPlaybook “cluster.yml” でk8sクラスタを立てる 1master, 3worker で20~30分 15

16.

Step4b: 必要な時にすぐ壊せる • 事前定義されたPlaybook “reset.yml” でカジュアルに壊せる 16

17.

kubesprayで嬉しいポイント 👍 • K8sクラスタのコンポーネント選定・設定値はPlaybookを見れば全てわかる • Git管理すれば、なぜその設定にしたか (=Why) 知見がコミットログに残る • 何回実行しても結果が同じになる = “冪等” • 安心してk8sクラスタを作り直し可能 (※ただしVMより上のレイヤーに限る) • Playbookの一部だけ流すことも可能 • 既存のPlaybookからKubesprayのPlaybookを呼び出すことも可能です 17

18.

そのKubernetesクラスタ、 「今」もう一度作り直せますか? → kubesprayで作って壊そう! 18

20.

(参考) kubesprayのAddons • Load Balancer … MetalLB k8sクラスタと同じラ イフサイクルで導入する PaaSコンポーネント • Ingress … NGINX Ingress Controller • Storage … CephFS, RBD, Rancher Local Path Provisioner • Observability … Metrics Server • GitOps … ArgoCD • Security … Cert Manager ※ Addonsの一覧はv2.20.0時点 20