★悩み★
・Kubernetesクラスタを構築したいけど、kubeadmを使うしかないのかな。
・Kubernetesクラスタを1コマンドで構築する方法はないかな。
・kubesprayでKubernetesクラスタを簡単に構築できるのかな。
こういった「悩み」に答えます。
★本記事の内容★
kubesprayでKubernetesクラスタを構築する手順をご紹介
これからご紹介する「kubesprayでKubernetesクラスタを構築する手順」を実践したことで、30分以内で「Kubernetesクラスタを構築」できました。
記事の前半では「kubesprayをインストールする手順」を解説しつつ、記事の後半では「kubesprayでKubernetesクラスタを構築する手順」を紹介します。
この記事を読み終えることで、「Kubernetesクラスタを構築した」状態になります。
★Kubernetesとは★
Kubernetesを利用することで、マイクロサービスなシステムを構築できます。Kubernetesを利用したマイクロサービスに関して知りたい方は、以下の記事をご覧ください。
Kubernetesとマイクロサービスについて
ちなみに、「Kubernetesを体系的に学習したい」方には、以下の記事がお勧めです。
kubesprayでKubernetesクラスタを構築する手順
「kubesprayでKubernetesクラスタを構築する手順」に関してご紹介します。
★kubesprayでKubernetesクラスタを構築するまでの流れ★
手順1:kubesprayに必要なライブラリをインストール
手順2:kubesprayのインストール
手順3:kubesprayのセットアップ
手順4:kubesprayでKubernetesクラスタを構築
手順5:kubesprayで構築したKubernetesクラスタの確認
上記の流れで、「kubesprayでKubernetesクラスタを構築」できます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年4月11日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「kubesprayでKubernetesクラスタを構築するまでの流れ」の各手順に関してご説明します。
手順1:kubesprayに必要なライブラリをインストール
「手順1:kubesprayに必要なライブラリをインストール」に関してご説明します。
kubesprayでKubernetesクラスタを構築するためには、Pythonとgitコマンドのインストールが必要です。
「Pythonのインストール手順」に関しては、以下の記事をご覧ください。
「gitコマンドのインストール手順」に関しては、以下の記事をご覧ください。
以上で、「手順1:kubesprayに必要なライブラリをインストール」は完了です。
手順2:kubesprayのインストール
「手順2:kubesprayのインストール」に関してご説明します。
gitコマンド経由でkubesprayをインストールしましょう。
端末またはコマンドプロンプトを起動し、gitコマンド経由でkubesprayをインストールするために、以下のコマンドを実行します。
# git clone https://github.com/kubernetes-sigs/kubespray.git
# cd kubespray/
# ls
CNAME RELEASE.md contrib mitogen.yml setup.cfg
CONTRIBUTING.md SECURITY_CONTACTS docs recover-control-plane.yml setup.py
Dockerfile Vagrantfile extra_playbooks remove-node.yml test-infra
LICENSE _config.yml facts.yml requirements.txt tests
Makefile ansible.cfg index.html reset.yml upgrade-cluster.yml
OWNERS ansible_version.yml inventory roles
OWNERS_ALIASES cluster.yml library scale.yml
README.md code-of-conduct.md logo scripts
上記「kubespray」ディレクトリが作成された場合、「正常にkubesprayをインストールできた」と判断できます。
以上で、「手順2:kubesprayのインストール」は完了です。
手順3:kubesprayのセットアップ
「手順3:kubesprayのセットアップ」に関してご説明します。
「構築したいKubernetesクラスタの構成」をkubesprayの設定ファイルに記載しましょう。
本記事で構築するKubernetesクラスタは、下図となります。
kubesprayでKubernetesクラスタを構築するためには、各サーバに2GB以上のメモリが必要です。
kubesprayの設定ファイルを作成するために、以下のコマンドを順に実行してください。
# cd kubespray/
# pip install -r requirements.txt
# cp -rfp inventory/sample inventory/mycluster
# ls inventory/mycluster/
group_vars inventory.ini
# declare -a IPS=(192.168.10.150 192.168.10.151 192.168.10.152)
# CONFIG_FILE=inventory/mycluster/hosts.yml python3 contrib/inventory_builder/inventory.py ${IPS[@]}
# ls inventory/mycluster/hosts.yml
hosts.yml
コマンド実行後、kubesprayの設定ファイルである「hosts.yml」が存在することを確認しましょう。その後、「hosts.yml」を以下のように編集してください。
# cat inventory/mycluster/hosts.yml
all:
hosts:
node1:
ansible_host: 192.168.10.150
ip: 192.168.10.150
access_ip: 192.168.10.150
node2:
ansible_host: 192.168.10.151
ip: 192.168.10.151
access_ip: 192.168.10.151
node3:
ansible_host: 192.168.10.152
ip: 192.168.10.152
access_ip: 192.168.10.152
children:
kube_control_plane: ★マスターにしたいノード(サーバ)を設定★
hosts:
node1:
kube-node: ★ワーカーにしたいノード(サーバ)を設定★
hosts:
node2:
node3:
etcd:
hosts:
node1:
k8s-cluster:
children:
kube_control_plane:
kube-node:
calico-rr:
hosts: {}
以上で、「手順3:kubesprayのセットアップ」は完了です。
手順4:kubesprayでKubernetesクラスタを構築
「手順4:kubesprayでKubernetesクラスタを構築」に関してご説明します。
kubesprayでKubernetesクラスタを構築してみましょう。kubesprayを利用することで、1コマンドでKubernetesクラスタを構築できます。
Kubernetesクラスタを構築するために、以下のコマンドを実行しましょう。
# cd kubespray/
# ansible-playbook -i inventory/mycluster/hosts.yml cluster.yml
・
・
・
download_container | Download image if required ------------------------------------------------------- 5.79s
download_file | Download item ------------------------------------------------------------------------- 5.38s
Configure | Check if etcd cluster is healthy ---------------------------------------------------------- 5.14s
# echo $?
0
コマンド実行後、「echo $?」の返却値が「0」である場合、「正常にkubesprayでKubernetesクラスタを構築できた」と判断できます。
コマンド実行時に下記エラーが発生した場合、「yum -y install conntrack-tools」を各サーバで実行しましょう。
★エラー内容★
fatal: [node1]: FAILED! => {"attempts": 4, "changed": false, "msg": "No package matching 'conntrack' found available, installed or updated", "rc": 126, "results": ["libselinux-python-2.5-14.1.el7.x86_64 providing libselinux-python is already installed", "7:device-mapper-libs-1.02.158-2.el7.x86_64 providing device-mapper-libs is already installed", "nss-3.44.0-4.el7.x86_64 providing nss is already installed", "No package matching 'conntrack' found available, installed or updated"]}
以上で、「手順4:kubesprayでKubernetesクラスタを構築」は完了です。
手順5:kubesprayで構築したKubernetesクラスタの確認
「手順5:kubesprayで構築したKubernetesクラスタの確認」に関してご説明します。
Kubernetes関連のコマンドを実行し、Kubernetesクラスタが構築できたことを確認しましょう。
Kubernetesクラスタの動作確認をするために、以下のコマンドを実行しましょう。
# kubectl get nodes
NAME STATUS ROLES AGE VERSION
node1 Ready control-plane,master 3m47s v1.20.5
node2 Ready <none> 2m55s v1.20.5
node3 Ready <none> 2m55s v1.20.5
上記のように「node1〜3のSTATUSがReady」である場合、「Kubernetesクラスタが正常に動いている」と判断できます。
以上で、「手順5:kubesprayで構築したKubernetesクラスタの確認」は完了です。
上記の手順で、kubesprayでKubernetesクラスタを構築できました。
Kubernetesの仕組みや運用手順などを知りたい方には、以下の参考書をお勧めします。
【まとめ】kubesprayでKubernetesクラスタを構築する手順
今回の記事を通して、「kubesprayでKubernetesクラスタを構築する手順」をご紹介することで、以下の悩みを解消しました。
★悩み★
・Kubernetesクラスタを構築したいけど、kubeadmを使うしかないのかな。
・Kubernetesクラスタをワンコマンドで構築する方法はないかな。
・kubesprayでKubernetesクラスタを簡単に構築できるのかな。
「kubesprayでKubernetesクラスタを構築する手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント