2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Proxmoxでvmのk3sを構築する Cloud-initも含め

Posted at

0. 初めに

k3s構築する前まではProxmoxのLXC(コンテナ)を各サービスごと作成して運用していたが運用していたサービスの数と規模が大きくなるにつれて手動での構築に疲れたので導入することにした。

LXC(コンテナ)上でk3sの構築が可能だが、追加の作業が必要となるので今回はvmで建てることにした。
VMを使うとLXCよりはリソースが多くなってしまうが、OSをUbuntu ServerではなくDebianを使うとストレージとメモリを削減することができる。

VMのセットアップには便利なCloud-initを利用する

1. 環境

  • ホスト:
    • cpu: intel i3-10105
    • メモリ: 32GB
    • ストレージ: 500GB
    • OS: Proxmox VE 8

2. Debian 12 Cloud initのテンプレートvmの作成

1. Debian Cloud Imageのダウンロード

最新のDebian 12のQCOW2フォーマットをwgetでダウンロードします。

wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2

3. ProxmoxでVMを作成

VMIDを9000として作成。

qm create 9000 --name debian12-cloudinit --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci --machine q35

4. ディスクとメモリの構成

ダウンロードしたQCOW2のイメージをインポート、その後8GBまでサイズを拡大します。

qm set 9000 --scsi0 local-lvm:0,discard=on,ssd=1,format=qcow2,import-from=/root/debian-12-generic-amd64.qcow2
qm disk resize 9000 scsi0 8G

5. Boot Orderの設定

インポートしたディスクをbootするために変更。

qm set 9000 --boot order=scsi0

6. CPUとメモリリソースの構成

仮想コアを2コア、メモリを2GBにする。

qm set 9000 --cpu host --cores 2 --memory 2048

7. BIOSとEFIの構成

BIOSではovmfを利用し、4MBほどのEFIディスクを作成。

qm set 9000 --bios ovmf --efidisk0 local-lvm:1,format=qcow2,efitype=4m,pre-enrolled-keys=1

8. Cloud-initの構成

Cloud-initのドライブを作成。

qm set 9000 --ide2 local-lvm:cloudinit

10. シリアルコンソールの設定

Hardwareの項目で、新しくシリアルポートを追加して、DisplayをSerial terminalに変更しても良い。

9. テンプレートとして保存

VMをテンプレートにする。

qm template 9000

10. VMをクローンしてセットアップ

テンプレートを使ってVMを作成する。

今回はk3s-masterとk3s-node1を作成した。

WebUI上にあるテンプレートを右クリックしてクローン、このときにFull Cloneで作成する。
VM IDとNameは適当に変更。
image.png

作成したら、cpu, メモリ, Cloud-Initなどの項目を変更する、Cloud-Initではipを固定し、後に利用するsshの公開鍵も設定しておく。

2. k3sのセットアップ

とりあえず、すべてのVMでパッケージの更新とアップグレードを行う。

apt update; apt upgrade -y

マスターと各ノードのipアドレスを解決するために/etc/hostsを変更する。

nano /etc/hosts

追記
192.168.1.1等のipは環境に合った値に変更。

/etc/hosts
+ 192.168.1.1 k3s-master
+ 192.168.1.2 k3s-node1

マスターのセットアップ

k3sのインストールはk8sと比べるととても簡単

curl -sfL https://get.k3s.io | sh -

セットアップが終わったらノードを追加するためのtokenを確認しておく。

cat /var/lib/rancher/k3s/server/node-token

出力された文字列を後に使用するのでメモ。

ノードのセットアップ

k3S_TOKENを先程のtokenに変更。

curl -sfL https://get.k3s.io | K3S_URL=https://k3s-master:6443 K3S_TOKEN=tokentokentoken sh -

ノードが追加されたかマスターで確認する

# sudo k3s kubectl get node
NAME         STATUS   ROLES                  AGE   VERSION
k3s-master   Ready    control-plane,master   1m   v1.30.6+k3s1
k3s-node1    Ready    <none>                 1m   v1.30.6+k3s1

ノードが追加されてたら構築終了です。

2
0
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
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?