手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 26.04 MicroK8s の基本設定 – snap で単体 Kubernetes を構成する

関連する記事

Ubuntu 26.04 で小さな Kubernetes 環境を用意する場合、MicroK8s は snap だけで導入できる扱いやすい選択肢です。ただし、手軽に入るからこそ、snap channel、Pod / Service CIDR、API server の SAN、addon の有効化範囲を先に決めておく必要があります。

この記事では、MicroK8s を単体 Kubernetes として構成する基本をまとめます。kubeadm で作るクラスタとは分けて、snap package、launch configuration、kubeconfig、DNS、hostpath-storage、MetalLB の確認点を扱います。

この記事で扱うこと
  • MicroK8s の snap channel と classic confinement
  • launch configuration による Pod / Service CIDR の指定
  • API server に追加する SAN の考え方
  • 管理ユーザーの microk8s group 追加
  • DNS、hostpath-storage、MetalLB addon の有効化
対象 OSUbuntu 26.04 Server
packagemicrok8s snap
launch config/var/snap/microk8s/common/.microk8s.yaml
kubeconfig/home/myadmin/.kube/config
addonsdnshostpath-storagemetallb

MicroK8s の位置づけ

MicroK8s は、単体ノードや小規模な検証環境で Kubernetes をすばやく動かすために便利です。複数ノードの本番クラスタを kubeadm で構成する記事とは役割が違います。

  • 単体 Kubernetes として導入範囲を限定する
  • snap channel を固定して意図しない更新差分を減らす
  • Pod / Service CIDR を既存ネットワークと重複させない
  • MetalLB を使う場合は払い出し範囲を先に決める

snap channel を決める

MicroK8s は snap package として導入します。運用中に Kubernetes minor version が意図せず変わらないように、--channel を明示します。MicroK8s は classic confinement で導入します。

snap info microk8s
sudo snap install microk8s --channel=1.32/stable --classic
snap list microk8s

launch configuration を先に配置する

MicroK8s の launch configuration は、snap install 前に配置しておくと初期構成をそろえやすくなります。ここでは Pod CIDR、Service CIDR、API server の追加 SAN を指定します。

sudo install -d -o root -g root -m 0755 /var/snap/microk8s/common
sudo tee /var/snap/microk8s/common/.microk8s.yaml >/dev/null <<'EOF'
version: 0.1.0
extraCNIEnv:
  IPv4_SUPPORT: true
  IPv4_CLUSTER_CIDR: 10.244.0.0/16
  IPv4_SERVICE_CIDR: 10.96.0.0/12
extraSANs:
  - 10.145.0.180
  - 10.145.0.181
EOF
sudo chown root:root /var/snap/microk8s/common/.microk8s.yaml
sudo chmod 0644 /var/snap/microk8s/common/.microk8s.yaml

管理ユーザーを microk8s group に追加する

microk8s group に入ったユーザーは、microk8s kubectl などの管理コマンドを扱えます。反映には再ログインが必要です。

sudo usermod -aG microk8s myadmin
id myadmin
getent group microk8s

起動状態を確認する

導入後は、MicroK8s が ready になるまで待ちます。問題がある場合は snap service と Kubernetes component の状態を分けて見ます。

sudo microk8s status --wait-ready
sudo snap services microk8s
sudo microk8s kubectl get nodes -o wide
sudo microk8s kubectl get pods -A

kubeconfig を配置する

普段使うユーザーの /home/myadmin/.kube/config に kubeconfig を配置すると、通常の kubectl からもクラスタを確認できます。

install -d -m 0700 /home/myadmin/.kube
sudo microk8s config > /home/myadmin/.kube/config
chmod 0600 /home/myadmin/.kube/config
kubectl config current-context
kubectl get nodes -o wide

DNS addon を有効化する

クラスタ内 DNS は CoreDNS deployment として確認します。既に有効な場合は再実行せず、状態確認に留めます。

sudo microk8s enable dns
sudo microk8s kubectl -n kube-system get deployment coredns
sudo microk8s kubectl -n kube-system get pods -l k8s-app=kube-dns

hostpath-storage addon を有効化する

単体ノードの検証では hostpath-storage が便利です。ただし、ノードローカル storage なので、永続データの置き場所として使う場合は復旧単位を理解しておきます。

sudo microk8s enable hostpath-storage
sudo microk8s kubectl -n kube-system get deployment hostpath-provisioner
sudo microk8s kubectl get storageclass

MetalLB addon を有効化する

LoadBalancer service を使う場合は、MetalLB の IPv4 address pool を指定して有効化します。この範囲は DHCP や静的割り当てと重複させないようにします。

sudo microk8s enable metallb:10.145.0.200-10.145.0.220
sudo microk8s kubectl get namespace metallb-system
sudo microk8s kubectl -n metallb-system get pods

MicroK8s の状態を確認する

addon を有効化した後は、node、pod、service、storageclass をまとめて確認します。

microk8s status
microk8s kubectl get nodes -o wide
microk8s kubectl get pods -A
microk8s kubectl get service -A
microk8s kubectl get storageclass

kubeadm 構成と混ぜない

同じ Ubuntu 26.04 上の Kubernetes でも、MicroK8s と kubeadm 構成は管理単位が違います。MicroK8s は snap service と addon を中心に見ます。kubeadm 構成では kubelet、containerd、control plane manifest、CNI を別々に見ます。

MicroK8s を検証環境として使う場合でも、Pod / Service CIDR、LoadBalancer 用アドレス、証明書 SAN は後から変更しづらい項目です。最初にネットワーク設計と重複していないか確認してから構成します。

確認ポイント

  • snap install microk8s で channel と --classic を明示している
  • /var/snap/microk8s/common/.microk8s.yaml で CIDR と SAN を指定している
  • 管理ユーザーを microk8s group に追加している
  • /home/myadmin/.kube0700config0600 にしている
  • dnshostpath-storagemetallb addon の状態を確認している
  • MetalLB の address pool が既存ネットワークと重複していない

まとめ

Ubuntu 26.04 の MicroK8s 基本設定では、snap channel、launch configuration、kubeconfig、addon の有効化範囲を先に決めて、単体 Kubernetes として構成します。

特に Pod / Service CIDR、API server の SAN、MetalLB の address pool は後から見直すと影響が大きくなります。MicroK8s を手軽な検証基盤として使う場合でも、ネットワークと証明書の前提を明示しておくと運用時に迷いにくくなります。

関連する記事
Ubuntu 26.04 MicroK8s の基本設定 – snap で単体 Kubernetes を構成する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る