2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ノートPCを使ってKubernetes クラスタを作ってみた

Last updated at Posted at 2022-11-21

はじめに

この手順を辿れば、Kubernetes クラスタが完成します。正確には、K3s クラスタです。後半の手順は、他の記事を参照しています。

この記事について

Kubernetes のクラスタを手元で作れば、クラウドサービスに費用を払い続けることなく、動作を理解することができるんじゃないかな〜ってことで2時間でRaspberry Pi 4BでKubernetes クラスタを作るを用意しました。本記事は、Intel CPUのノートPCを使ったバージョン(コンテナイメージ的にはX86-64)となります。

前提条件

  • インターネットアクセス環境
  • LinuxをCLIのみで触る程度の知識か根性

環境を用意

ハードウェア

  • Lenovo E460 Intel Core i5-6200U 2 core/4 thread 16GB Memory
    今後使う予定のないPCの方が良いと思います
  • 有線LAN
  • MACかWindows (OSイメージ作成用とSSHアクセス用のホスト)

ソフトウェア

下準備

OSイメージ作成

  • ノートPCを工場出荷時に戻せるよう、USBリカバリドライブなどを作成
    工場出荷時OS(Windowsなど)に戻すにはUSBリカバリードライブなどが必要なケースが大半です。この手順をスキップしてしまうと、ノートPCを元に戻すために有償サポートをメーカーに依頼する必要が起きるかもしれません。ご注意の上、ご実施下さい。
  • Ubuntu Serverを上記リンクよりダウンロード
  • USBメモリ 2GB以上を用意 (Desktopなどをインストールする場合、2GBでは足りない)
  • UNetbootinにて起動可能なUSBメモリを作成
    事前にダウンロードしたOSイメージファイル(ISOファイル)を指定し、USBドライブを指定してOKをクリック
    USBドライブは事前にFAT32フォーマットしておくと選択肢に表示される
    UNetbootin.png

起動とOSセットアップ

  • PC起動時にUEFI/BIOS起動設定で上記にて作成したUSBメモリから起動を選択
    まだ、戻れます。工場出荷時に戻せますか?
  • インストールステップの各種質問に適宜答え、インストールを完了
  • (必要に応じて)ネットワーク設定ファイルの修正
cloud-init.yaml
sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/99-cloud-init.yaml # ファイルをコピー
sudo vi /etc/netplan/99-cloud-init.yaml
sudo netplan apply # 設定変更の適用
  • 99-cloud-init.yamlの修正
修正例
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets: # 有線LANの設定
        eth0:
            dhcp4: true
            optional: true
    wifis: # 無線LANの設定
        wlan0:
            dhcp4: true # 固定IPの場合、falseにする
            optional: true
            access-points:
              <yourssid>: # SSIDを<youssid>の箇所に入力、コロンの後に改行
                password: “<yourpassword>” # パスワードはダブルクオートで囲む

  • 初期ログイン
初期ログイン
Username: ubuntu
Password: ubuntu #ログイン後変更を促される
  • キーボード設定
キーボード設定
sudo dpkg-reconfigure keyboard-configuration
  • その他設定の確認
その他設定の確認
sudo ufw status
Status: inactive # activeになっている場合はk3sの通信要件などを整理し、適切に設定すること

K3sインストール

ここからが本番ですが、準備あらかた終わったとも言える

K3s Master Nodeインストール 1台目

K3sのページでは、手順は超シンプル、とガイドされています。インストールコマンド叩いて、ちょっとまって(30秒?)、k3s kubectl get nodeでノードがReadyになったことを確認する、と。
ここでは、やりたいことがあるので、オプション付きで進めます。

インストールコマンド
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
[sudo] password for ubuntu: 
[INFO]  Finding release for channel stable
[INFO]  Using v1.20.6+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.20.6+k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.20.6+k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s

Master Node (K3sでは、Server Nodeと呼称するようですが、ここではMasterと記載します)

nodeの確認
kubectl get nodes
NAME   STATUS   ROLES                  AGE   VERSION
e460   Ready    control-plane,master   21m   v1.20.6+k3s1
podの状態確認
kubectl get pods -A
NAMESPACE     NAME                                      READY   STATUS      RESTARTS   AGE
kube-system   helm-install-traefik-tw4tp                0/1     Completed   0          21m
kube-system   local-path-provisioner-5ff76fc89d-p5vsf   1/1     Running     0          21m
kube-system   metrics-server-86cbb8457f-k7htz           1/1     Running     0          21m
kube-system   svclb-traefik-7lwf4                       2/2     Running     0          21m
kube-system   coredns-854c77959c-hxm94                  1/1     Running     0          21m
kube-system   traefik-6f9cbd9bd4-4snp5                  1/1     Running     0          21m

ここまでで、Server Node (Master Node) 1台目のセットアップはできました。1台で使う場合は以上で終了です。

K3s Worker Nodeのインストール

ここからクラスタ構成にするためのセットアップです。
続きは、2時間でRaspberry Pi 4BでKubernetes クラスタを作るの5.K3sのクラスタ構成化をご参照ください。

備考

K3s Master Nodeのアンインストール方法

K3sアンインストールコマンド
/usr/local/bin/k3s-uninstall.sh       # Master Node用
/usr/local/bin/k3s-agent-uninstall.sh # Worker Node用

指定したバージョンのインストール方法

INSTALL_K3S_VERSION={v1.22.16+k3s1}という形でバージョンの指定が可能です。リリースされたバージョンはGitHubのK3sのリポジトリから確認可能です。

Master Node
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION={v1.22.16+k3s1} sh -s - --write-kubeconfig-mode 644

参考

RANCHER社のK3sリファレンス(英語)
RANCHER Labs 日本語版K3sマニュアル

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?