k3sを Ansible roleを用いて簡単に構築する

 

はじめに

 

みなさんこんにちは、サイオステクノロジーの南です。

コンテナオーケストレーションの分野で急速に注目を集めているKubernetes(k8s)ですが、その軽量版であるk3sが存在するのはご存じでしょうか?

k3sは、小規模環境やリソース制約のあるシステムに最適なオプションとして注目されています。

しかし、k3sクラスタを手動でセットアップするのは手間がかかります。ここで、Ansible を活用してk3sクラスタを効率的に構築する方法を紹介します。

 

事前準備

手元での環境は以下を用意しています

  • ハード
    • raspberry pi4(4GB) ×3a
    • Ansible構築用PC
      • Lenovo Ideapad
  • OS
    • raspberry pi4: Ubuntu22.04 server
    • Ansible構築用PC: windows10
  • バージョン
    • Ansible
      • 2.12.10
    • k3s
      • 1.27.4+k3s

 

今回ansibleで構築するにあたって、Pyratlabのansible-role-k3sを参考にしています!

また、今回はraspberry piを使用していますが、vm環境があればraspberry piに限らず他環境(EC2,virtualbox等でも大丈夫です。

 

 

k3sを作成する前に

k3sを立ち上げる前に、今回用意したサーバーがそれぞれ/etc/hosts上などで名前解決ができるようにします。

/etc/hosts

10.10.9.2 k3s1

10.10.9.3 k3s2

10.10.9.4 k3s3

Ubuntuでは21.10以降からraspberry piでのvxlanサポートがデフォルトではされなくなりました。

そのためraspberry piを使っていてUbuntu21.10以降を使っている場合以下をインストールする必要があります。

$ sudo apt install linux-modules-extra-rasp

Ansible を用いてk3sを作成する

k3s用のansible roleをダウンロードします

$ ansible-galaxy install xanmanning.k3s

以下のようなansible-playbookとinventoryを作成します

cluster_inventory.yml

---

k3s_cluster:
  hosts:
    kube-0:
      ansible_user: k3s1
      ansible_host: 10.10.9.2
      ansible_python_interpreter: /usr/bin/python3
    kube-1:
      ansible_user: k3s2
      ansible_host: 10.10.9.3
      ansible_python_interpreter: /usr/bin/python3
    kube-2:
      ansible_user: k3s3
      ansible_host: 10.10.9.4
      ansible_python_interpreter: /usr/bin/python3

cluster_playbook.yml

---

- name: Build a cluster with a single control node
  hosts: k3s_cluster
  vars:
    k3s_become: true
  roles:
    - role: xanmanning.k3s

Ansibleを実行します

$ ansible-playbook -i inventory.yml cluster.yml

マスターノードにsshアクセスをして、作成されているかを確認します。

ubuntu@k3s1:~$ sudo kubectl get no
NAME   STATUS   ROLES                  AGE   VERSION
k3s1   Ready    control-plane,master   20h   v1.27.4+k3s1
k3s2   Ready    <none>                 20h   v1.27.4+k3s1
k3s3   Ready    <none>                 20h   v1.27.4+k3s1

 

まとめ

今回のブログでは、Raspberry Pi 4とUbuntu 22.04 Serverを使用して、手軽にk3sクラスタを構築する方法をご紹介しました。

Ansibleを活用することで、繰り返しのタスクを自動化し、効率的にクラスタを構築することができます。

ここまで読んでいただき、ありがとうございました!

 

 

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です