zaki-lknr / initialize-kubeadm-ansible

kubeadmでk8sクラスタデプロイするAnsible Playbook
9 stars 0 forks source link

initialize-kubeadm-ansible

CentOS7でkubeadm initを実行するために必要なmaster/workerノードの準備と構築を行うplaybook

参考: [Kubernetes] kubeadmを使ってCentOSへk8sクラスタをデプロイしてみた

usage

playbookは以下の通り

playbook 機能
playbooks/playbook.yaml 以下全て実行
playbooks/auth_settings.yaml sudoers/ssh鍵設定
playbooks/preparing_hosts.yaml ホストの事前設定・CRI、kubeadm/kubectl/kubeletのインストール
playbooks/exec_kubeadm_init.yaml kubeadm initをmasterノード上で実行
playbooks/deploy_cni.yaml CNIのインストール(現在はCalico or Flannel指定可)
playbooks/add_master_node.yaml masterノードの追加(kubeadm join)
playbooks/add_worker_node.yaml workerノードの追加(kubeadm join)

OSインストール後にこのplaybooks/playbook.yamlを実行すればk8sクラスタがデプロイされる。

$ ansible-playbook -i inventory.ini playbooks/playbook.yaml -kK

パスワード無しでsudoする設定や、ssh鍵設定前の場合は、-Kおよび-kを付与して実行する。

inventory

node

[master]または[worker]ホストグループにそれぞれ定義する。
現状ansible_hostによるIPアドレスの指定必須。

変数

変数名 意味
cluster_name クラスター名 (kubectl config get-clustersなどの表示)
controlplane_endpoint HA構成の場合にコントロールプレーン用のLBのエンドポイント
use_cri 使用CRI (dockerまたはcontainerdを指定)
use_cni_plugin 使用CNI (calicoまたはflannelを指定)
kube_version Kubernetesバージョンを指定(1.19最新であれば1.19.*まで指定)