Slide 1

Slide 1 text

Kubernetesクラスタ構築を例に 既存の作業をAnsible化するポイント Ansible Night Online! 2020.06 2020.06.23 @zaki_hmkc Ansible Night Online 2020.06 #ansiblejp 1

Slide 2

Slide 2 text

自己紹介 Twitter: zaki_hmkc Qiita / GitHub: zaki-lknr Ansible Night Online 2020.06 #ansiblejp 2 好きなもの→ お仕事→ 趣味→

Slide 3

Slide 3 text

kubeadm ▹ Kubernetesの公式インストーラーの一つ ▹ クラスタ構築前の事前準備はほぼ「手動」 ▹ KubesprayというAnsibleを使って構築するプロダクトもあります ▸ https://kubespray.io/ Ansible Night Online 2020.06 #ansiblejp 3

Slide 4

Slide 4 text

▹ Kubernetes環境がいつでも構築できる ▹ Ansibleによる自動化の素振りに手ごろ Ansible Night Online 2020.06 #ansiblejp 自動化してみてると… 4 「これからAnsible始めてみたいけど自 動化するネタに丁度いいもの何かない かな?」という方にはオススメ

Slide 5

Slide 5 text

既存作業のAnsible化のポイント Ansible Night Online 2020.06 #ansiblejp 5 ▹ モジュール検索!!! ▸ OS管理系のコマンド ▸ /etc以下の設定ファイル ▹ 検索の便利ツールあります ▸ usansible (Chrome拡張) nmcli /etc/fstab firewalld systemctl selinux

Slide 6

Slide 6 text

手作業の準備部分の自動化で使った主なモジュール ▹ yum / yum_repository ▹ systemd ▹ firewalld ▹ modprobe / sysctl ▹ selinux ▹ その他、ファイル操作系 Ansible Night Online 2020.06 #ansiblejp 6 https://github.com/zaki-lknr/initialize-kubeadm-ansible

Slide 7

Slide 7 text

Ansible Night Online 2020.06 #ansiblejp kubeadmを使った実際の構築作業 7 ▹ https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/ ▹ 基本的にこの2か所を 確認すればOK

Slide 8

Slide 8 text

Ansible Night Online 2020.06 #ansiblejp kubeadmを使った実際の構築作業 8 ▹ カーネル設定 ▹ ポート設定 ▹ コンテナランタイム ▹ パッケージインストー ル(kubeadmなど) ▹ https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/

Slide 9

Slide 9 text

Ansible Night Online 2020.06 #ansiblejp kubeadmを使った実際の構築作業 9 1. Masterノード作成 2. CNIインストール 3. (Masterノード追加) 4. Workerノード追加 High AvailableはMasterの 冗長構成用の設定 ▹ https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/

Slide 10

Slide 10 text

【参考】 kubeadm init ▹ 最低限チェックしておくと良いオプション(俺調べ) ▸ --pod-network-cidr="{{pod_network_cidr}}" ■ Podに割り当てるネットワークアドレス帯 ■ CNIの設定にも影響 ▸ --control-plane-endpoint="{{controlplain_endpoint}}" ■ 複数のmasterノードをロードバランスする場合のmasterノード のエンドポイントを指定 ▸ --upload-certs ■ 2台目以降のmasterノードをクラスタに追加する際に証明書配 布を自動で処理させる (High Availableのページに記載) Ansible Night Online 2020.06 #ansiblejp 10

Slide 11

Slide 11 text

【参考】 CNI (Pod network add-on) Ansible Night Online 2020.06 #ansiblejp 11 ▹ ノードをまたいだpod間通信等に必要 ▹ いくつかのCNIから一つをインストールする https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/creat e-cluster-kubeadm/

Slide 12

Slide 12 text

【参考】 Calico ▹ (v3.13~)network設定を元に自動でアドレス設定 ▹ Firewalld有効時はOSのポート許可設定が必要 Ansible Night Online 2020.06 #ansiblejp 12 https://docs.projectcalico.org/getting-started/kubernetes/requirements 設定要件はCalicoのサイト

Slide 13

Slide 13 text

まとめ ▹ kubeadmを使ったKubernetesクラスタ構築は Ansibleの練習に丁度良い! ▹ モジュールはググるより公式サイトで検索! Ansible Night Online 2020.06 #ansiblejp 13