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

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【5/21開催】Azure OpenAI ServiceによるRAG実装ガイドを公開しました
生成AIを活用したユースケースで最も一番熱いと言われているRAGの実装ガイドを公開しました。そのガイドの紹介をおこなうイベントです!!
https://tech-lab.connpass.com/event/315703/

 

はじめに

 

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

コンテナオーケストレーションの分野で急速に注目を集めている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を活用することで、繰り返しのタスクを自動化し、効率的にクラスタを構築することができます。

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

 

 

アバター画像
About 南 史弥 8 Articles
2021年に入社したのち、パブリッククラウドのkubernetesサービスなどを中心に業務に取り組んでいます。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

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

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


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる