Kubernetes完全ガイド 第2版
Kubernetes の仕組み、リソース、ネットワーク、運用観点を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
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 の考え方
- 管理ユーザーの
microk8sgroup 追加 - DNS、hostpath-storage、MetalLB addon の有効化
| 対象 OS | Ubuntu 26.04 Server |
|---|---|
| package | microk8s snap |
| launch config | /var/snap/microk8s/common/.microk8s.yaml |
| kubeconfig | /home/myadmin/.kube/config |
| addons | dns、hostpath-storage、metallb |
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 microk8slaunch 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 -Akubeconfig を配置する
普段使うユーザーの /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 wideDNS 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-dnshostpath-storage addon を有効化する
単体ノードの検証では hostpath-storage が便利です。ただし、ノードローカル storage なので、永続データの置き場所として使う場合は復旧単位を理解しておきます。
sudo microk8s enable hostpath-storage
sudo microk8s kubectl -n kube-system get deployment hostpath-provisioner
sudo microk8s kubectl get storageclassMetalLB 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 podsMicroK8s の状態を確認する
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 storageclasskubeadm 構成と混ぜない
同じ 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 を指定している- 管理ユーザーを
microk8sgroup に追加している /home/myadmin/.kubeを0700、configを0600にしているdns、hostpath-storage、metallbaddon の状態を確認している- MetalLB の address pool が既存ネットワークと重複していない
まとめ
Ubuntu 26.04 の MicroK8s 基本設定では、snap channel、launch configuration、kubeconfig、addon の有効化範囲を先に決めて、単体 Kubernetes として構成します。
特に Pod / Service CIDR、API server の SAN、MetalLB の address pool は後から見直すと影響が大きくなります。MicroK8s を手軽な検証基盤として使う場合でも、ネットワークと証明書の前提を明示しておくと運用時に迷いにくくなります。

