スポンサーリンク

【無料】kubesprayでKubernetesクラスタを構築する手順

【無料】kubesprayでKubernetesクラスタを構築する手順

 

★悩み★
・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クラスタを構築する手順」に関してご紹介します。

★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クラスタを構築する手順

 

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クラスタを構築する手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。

コメント

タイトルとURLをコピーしました