ProxmoxVEのインストール
入手元
https://www.proxmox.com/en/downloads
上記サイトからProxmox VE 8.2 ISO Installer を取得しインストールメディアを作成
ProxmoxVEのインストールに関してはインストーラーなりに進めれば特に詰まるところはないかと
FQDNに関しては例えばpve.localとかにしておけばOK
インストール完了後再起動すると
https://xxx.xxx.xxx.xxx:8006/
とProxmoxVEの管理画面のアドレスが表示されるのでブラウザでアクセスする
どの道リポジトリに問題があるので以下二つのエンタープライズリポジトリの無効化
以下の二つのリポジトリの有効化を行う
その後アップデートで再表示を行うと更新リストが表示されるので全部完了するまで再表示とアップグレードを繰り返す
Web管理画面にログインするとサブスクリプションがないとポップアップ出る件に関しては
以下などを参照
https://suzu-ha.com/entry/2024/02/12/000000
SPICE接続する為のvirt-viewerは下記のWin x64 MSIから取得
https://virt-manager.org/download.html
Nested VM辺りの設定
https://pve.proxmox.com/wiki/Nested_Virtualization
共通初期設定
必要なパッケージをインストール
# apt install vim sudo
一般ユーザーを追加
proxmox環境ではwheelではなくsudo
# useradd user
# passwd user
# usermod -aG sudo user
# mkdir -p /home/user
# chown user:user /home/user
一般ユーザーにログインしてみる
# su user
$ chsh -s /usr/bin/bash
sudoパス不要化
$ sudo vim /etc/sudoers
末尾に以下を追記
user ALL=NOPASSWD: ALL
snapのインストール
$ sudo apt install snapd
LXDのインストール
lxdのインストール
$ sudo snap install lxd
lxd initを実行してみるlxdが認識されない場合は再起動
上記のエラーがが出る場合ソケットに権限を割り当てる
$ lxd init
Error: Failed to connect to local LXD: Get "http://unix.socket/1.0": dial unix /var/snap/lxd/common/lxd/unix.socket: connect: permission denied
上記のエラーがが出る場合ソケットに権限を割り当てた後ログインし直す
$ sudo chown -R lxd:lxd /var/snap/lxd/common/lxd/
$ sudo usermod -aG lxd user
lxd initの実施
・storage poolは後で作るのでここでは作らない
・ipv6は邪魔なので無効にしておく
・webuiはここで有効かして差し支えない
以外は何も打たずにエンターでdefaultが選ばれる
$ lxd init
Would you like to use LXD clustering? (yes/no) [default=no]:
Do you want to configure a new storage pool? (yes/no) [default=yes]: no
Would you like to connect to a MAAS server? (yes/no) [default=no]:
Would you like to create a new local network bridge? (yes/no) [default=yes]:
What should the new bridge be called? [default=lxdbr0]:
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]:
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: none
Would you like the LXD server to be available over the network? (yes/no) [default=no]: yes
Address to bind LXD to (not including port) [default=all]:
Port to bind LXD to [default=8443]:
Would you like stale cached images to be updated automatically? (yes/no) [default=yes]:
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]: yes
config:
core.https_address: '[::]:8443'
networks:
- config:
ipv4.address: auto
ipv6.address: none
description: ""
name: lxdbr0
type: ""
project: default
storage_pools: []
storage_volumes: []
profiles:
- config: {}
description: ""
devices:
eth0:
name: eth0
network: lxdbr0
type: nic
name: default
projects: []
cluster: null
完了したら
https://xxx.xxx.xxx.xxx:8443に繋いでみる
入ってみると証明書を作らないといけないのでGenerateしてcrtとpfxをダウンロードする
crtはWinSCPなどでサーバー側に移してから任意の場所で以下を実行
ファイル名は生成環境毎に異なる
$ lxc config trust add ******.crt
ブラウザ側はブラウザ毎に手順が異なるので書いてある通りに従う
クライアント、サーバー両方に証明書読み込んでブラウザを再起動したら以下のように全メニューにアクセスできるようになる
外部接続用Bridgeを作成
ここではマニュアルにあるbr0ではなくproxmoxのvmbr0にカスケードで繋ぐ
lxc profile create bridge
lxc network attach-profile vmbr0 bridge eth0
lxc profile device add bridge root disk path=/ pool=default
ストレージプールを作成
lxd init時に作らなかったのでここで作成
これがないとインスタンス作成やisoアップロードで失敗する
プール名、ファイルシステム、プールサイズを指定する
プール名はdefault
インスタンス作成
ひとまずブリッジ系が正しく動作してるかの確認でインストール完了が早いproxmoxのISOなどを使うとよいかも
インストールの時点でDHCPでのIP取得が確認できる
microk8sのインストール
基本手順は以下を参照一部捕捉
https://microk8s.io/
バージョンは1.29指定でインストール1.30だと後の操作のmicrok8s enable communityのところでエラーになる問題がある
$ sudo snap install microk8s --channel=1.29/stable --classic
$ microk8s status --wait-ready
以上を実行すると~/.kubeに書けないと出るので以下を実施した後ログインし直し
$ mkdir ~/.kube
$ sudo usermod -a -G microk8s user
$ sudo chown -R user ~/.kube
各種アドオンを有効化
$ microk8s enable dashboard
$ microk8s enable dns
$ microk8s enable registry
$ microk8s enable istio
istroを有効にするにはcommunityを有効にしろというメッセージが出るので従う
この時ver1.30だとmicrok8s enable communityに失敗する
$ microk8s enable community
$ microk8s enable istio
dashboard-proxyを実行するとトークンが発行されるので
https://xxx.xxx.xxx.xxx:10443/
にアクセスしてトークンでログインする
$ microk8s dashboard-proxy
全てのネームスペースを選択するとkubenetesの各リソースが正しく動作しているのが確認できる
podmanのインストール
DockerをインストールするとKVMのブリッジネットワークが壊れるので代わりにpodmanをインストールする
sudo apt install podman
エラー対応の為以下を追加した後再起動
alias ll="ls -l"
export XDG_RUNTIME_DIR=/run/user/$(id -u)
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus
[engine]
cgroup_manager = "cgroupfs"
確認の為nginx podを起動
$ podman run -d --rm -p 8080:80 docker.io/library/nginx
cockpitのインストール
sudo apt install cockpit cockpit-podman
sudo systemctl enable --now cockpit.socket
ブラウザから https://xxx.xxx.xxx.xxx:9090/ にアクセスして確認
sambaのインストール
sudo apt install samba
sudo apt install samba
[homes]
+ path = %H
+ valid users = %S, %D%w%S
+ read only = yes
- read only = no
sudo systemctl enable --now smb
sudo systemctl enable --now nmb
エクスプローラーから \\xxx.xxx.xxx.xxx にアクセスして確認