written by minpeter • source code

記事一覧へ

k8s via proxmox (1) - Ubuntu Serverテンプレートの作成

22. 10. 03.

ClaudeClaude Opus 4.5による翻訳

AI生成コンテンツは不正確または誤解を招く可能性があります。

テンプレートとは?Ubuntu 22.04 Serverテンプレートの作成1. VM作成2. cloud init設定2.1 SSHキーの生成3. Cloud Imageのダウンロード3.1 PVEシェル接続3.2 Cloud Imageのダウンロード3.3 Cloud Imageの変換3.4 Cloud Imageの追加3.5 Cloud Imageの設定2. テンプレートを利用したVM作成次回は...?参考資料

テンプレートとは?

これまでProxmoxを使いながらテンプレートという概念を初めて知りました。 テンプレートを作成すると、VMを作成するたびにインストール過程を経ることなく、テンプレートを複製して作成できます。

Kubernetesをインストールするにはマスターノードとワーカーノードが必要です。 少なくとも3つ以上のVMを設定する必要がありますが、一度は(いや実は2回も...)知らなくてVMを作成するたびにインストール過程を経ていました。 3つのVMのインストールプロセスを同時に進めたところ、アップデートによるネットワークトラフィックの負荷がひどくなって遅くなりました。 そこでテンプレートを作成して、VMを作成するたびにインストール過程を経ることなくテンプレートを複製して作成できるようにしてみましょう。

Ubuntu 22.04 Serverテンプレートの作成

1. VM作成

テンプレートの基本となるVMを作成します。 このときVMには、これまで作成していた方式とは異なり、軽量化されたCloud Imageを使用して作成するため、やや異なる設定が必要です。

  1. ProxmoxでVMを作成します。

  2. テンプレートにするVMの名前はubuntu-22-04-server-templateにします。 後でvm-idが900であることを前提に進めるため、vm-idも900に設定しましょう。

  3. メディアでDo not use any mediaを選択します。 後で説明しますが、クラウドイメージを使用する予定だからです。

  4. Systemタブでは Qemu Agentにチェックを入れます。 これはVMが実行中にVMの状態を確認できるようにします。 しなくても問題ありませんが、後で設定することになった場合、有効になっている方が便利です。

  5. ディスクは削除して、CPUは1コア、メモリは1GBに設定します。

  6. ネットワークは一般的にVMを作成するときと同様に設定します。

2. cloud init設定

作成されたVMのhardwareタブでAdd > CloudInit Driveをクリックします。 こうすると、VMのハードディスクにcloud-init driveが追加されます。 VMのCloud-InitタブでUser Dataを設定します。 このときネットワーク設定は必ずDHCPにする必要があります。 staticに設定すると、複製したVMでIPが重複して問題が発生する可能性があります。 ドメインは記入しなくてもよく、SSH Public Keyは以下の手順に従って生成しましょう。

2.1 SSHキーの生成

SSHキーを生成します。

ssh-keygen -t <key-type> -C <comment>

key-typeはrsa、dsa、ecdsa、ed25519などがあります。 commentはキーに対する説明です。

Enter file in which to save the key (C:\Users\minpeter/.ssh/id_rsa): という質問が出たら、proxmox_key...のような適切な名前を入力します。 そしてEnter passphrase (empty for no passphrase): という質問が出たらパスワードを入力します。(なくても問題ありません。)(ない方がいいです。)

生成されたパブリックキーをコピーします。

cat ~/.ssh/<key-name>.pub

先ほどproxmox_keyと入力した場合はcat ~/.ssh/proxmox_key.pubと入力すればよいです。

3. Cloud Imageのダウンロード

イメージは少し作業が必要なので、PVEシェルで進めます。

3.1 PVEシェル接続

Web GUIまたはssh root@<proxmox server ip>で接続します。

3.2 Cloud Imageのダウンロード

からダウンロードできます。 ubuntu-22.04-minimal-cloudimg-amd64.imgをダウンロードすればいいので、リンクをコピーしてwgetでダウンロードします。

wget https://cloud-images.ubuntu.com/minimal/releases/jammy/release/ubuntu-22.04-minimal-cloudimg-amd64.img

その後、qm set 900 -serial0 socket -vga serial0コマンドを入力します。 このとき900はVMのIDです。

3.3 Cloud Imageの変換

イメージを変換します。

mv ubuntu-22.04-minimal-cloudimg-amd64.img ubuntu-22.04.qcow2
qemu-img resize ubuntu-22.04.qcow2 32G

3.4 Cloud Imageの追加

イメージを追加します。

qm importdisk 900 ubuntu-22.04.qcow2 local-lvm

もちろんこのときの900もVMのIDです。

3.5 Cloud Imageの設定

ここまで進めてからWeb GUIにアクセスすると、VMのhardwareにUnuse disk 0が追加されていることが確認できます。 editをクリックしてDiscard項目にチェックを入れ、Applyをクリックします。

次にoptionsタブでBoot Orderを2番目に設定します。 Start at boot項目はYesに変更します。

これですべての設定が完了しました。 すべての設定がうまくできたか確認した後、VMリストで900(ubuntu-22-04-server-template)を右クリックしてConvert to Templateをクリックします。 しばらくの作業の後、テンプレートが作成されます。

2. テンプレートを利用したVM作成

先ほど変換したテンプレートを利用してVMを作成してみましょう。

以前と同様に右クリックすると、メニューが変更されているはずです。 今度はCloneをクリックします。

その後、Clone VMというウィンドウが表示されますが、ここでNameをubuntu-testに変更し、ModeをFull Cloneに変更します。 Cloneをクリックした後、電源を入れて待てば完了です。

次回は...?

今作ったテンプレートを利用してk8s-ctrlrとk8s-nodeを作成し、k8s-nodeテンプレートを追加で作成、合計k8s-ctrlr + 2つのk8s-nodeを作成して設定してみましょう。


k8s via proxmox (2) - worker node & master node 設定 に続きます。

参考資料

  • youtube/Proxmox VE - How to build an Ubuntu 22.04 Template (Updated Method)
  • blog/Proxmox VE - How to build an Ubuntu 22.04 Template (Updated Method)
公開:22. 10. 03.
•
更新:26. 03. 24.

前の記事 / 次の記事

← k8s via proxmox (2) - worker node & master node 設定使っていないノートパソコンをProxmoxサーバーとして再活用 →