Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kubernetesクラスタ構築を例に既存の作業をAnsible化するポイント / initialize kubeadm by ansible

Kubernetesクラスタ構築を例に既存の作業をAnsible化するポイント / initialize kubeadm by ansible

4924e08c88a442edbffd87b91cb45131?s=128

zaki-lknr

June 23, 2020
Tweet

Transcript

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

    Online 2020.06 #ansiblejp 1
  2. 自己紹介 Twitter: zaki_hmkc Qiita / GitHub: zaki-lknr Ansible Night Online

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

    Night Online 2020.06 #ansiblejp 3
  4. ▹ Kubernetes環境がいつでも構築できる ▹ Ansibleによる自動化の素振りに手ごろ Ansible Night Online 2020.06 #ansiblejp 自動化してみてると…

    4 「これからAnsible始めてみたいけど自 動化するネタに丁度いいもの何かない かな?」という方にはオススメ
  5. 既存作業のAnsible化のポイント Ansible Night Online 2020.06 #ansiblejp 5 ▹ モジュール検索!!! ▸

    OS管理系のコマンド ▸ /etc以下の設定ファイル ▹ 検索の便利ツールあります ▸ usansible (Chrome拡張) nmcli /etc/fstab firewalld systemctl selinux
  6. 手作業の準備部分の自動化で使った主なモジュール ▹ yum / yum_repository ▹ systemd ▹ firewalld ▹

    modprobe / sysctl ▹ selinux ▹ その他、ファイル操作系 Ansible Night Online 2020.06 #ansiblejp 6 https://github.com/zaki-lknr/initialize-kubeadm-ansible
  7. Ansible Night Online 2020.06 #ansiblejp kubeadmを使った実際の構築作業 7 ▹ https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/ ▹

    基本的にこの2か所を 確認すればOK
  8. Ansible Night Online 2020.06 #ansiblejp kubeadmを使った実際の構築作業 8 ▹ カーネル設定 ▹

    ポート設定 ▹ コンテナランタイム ▹ パッケージインストー ル(kubeadmなど) ▹ https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/
  9. 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/
  10. 【参考】 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
  11. 【参考】 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/
  12. 【参考】 Calico ▹ (v3.13~)network設定を元に自動でアドレス設定 ▹ Firewalld有効時はOSのポート許可設定が必要 Ansible Night Online 2020.06

    #ansiblejp 12 https://docs.projectcalico.org/getting-started/kubernetes/requirements 設定要件はCalicoのサイト
  13. まとめ ▹ kubeadmを使ったKubernetesクラスタ構築は Ansibleの練習に丁度良い! ▹ モジュールはググるより公式サイトで検索! Ansible Night Online 2020.06

    #ansiblejp 13