⚓
おうちk8sをつくろう
この記事は MatsuribaTech(祭り場Tech) Advent Calendar 2023 の12/11分です
おうちk8sの利点
- インフラの勉強になる
- 従量課金で破産する心配がない
- 自由に爆破し放題
材料
- x86系のcpuが乗ったPC 3台以上
- おすすめ: N100とかを積んだミニPC
- proxmoxのiso
- ubuntu-serverのiso
- rufusなどisoを書き込めるツール
- 16GBくらいのUSBメモリ
- cloudflareのアカウント
- githubのアカウント
手順
1. USBにproxmoxのisoを焼く
お好みのツールでUSBメモリに焼いてください
使用するPCに合わせてMBR/GPTは切り替えてください
2. proxmoxをインストールする
各PCにproxmoxをインストールしてください
必要に応じてインストール方法の記事を参照してください
3. クラスタを組む
proxmoxのwebインターフェースからDatacenter→Clusterでクラスタの構成ができます
4. 各ノードにisoをアップロードする
ubuntu-serverのisoを各ノードのlocal→iso imagesからアップロードする
5. 各ノードでubuntu vmをセットアップする
minimalではなくstandardを選択し、microk8sを追加でインストールします
6. microk8sのセットアップ
6-1. メインノードでクラスタを作成する
snap alias microk8s.kubectl kubectl
microk8s enable ha-cluster dns rbac
microk8s add-node
他ノードで実行する用のコマンドが出力されるのでそれをメモします
6-2. 残りのノードでクラスタに参加する
microk8s join xxx.xxx.xxx.xxx:xxxxx/**************
先程メモしたコマンドを実行します
おまけ
metallbのセットアップ
microk8s enable metallb
argocdのセットアップ
1. マニフェストの適用
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
2. argocdへのログイン
kubectl get svc argocd-server -n argocd
アドレス、ポートを確認
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
パスワードを確認
ユーザー名: admin
パスワード: 先程確認したもの
でログインします
Discussion