Ubuntu 26.04にMicroK8sをインストールする方法
MicroK8sは、Canonicalによって開発された軽量で本番対応のKubernetesディストリビューションで、完全にスナップパッケージとして動作します。コンテナオーケストレーションを探求している場合でも、ローカル開発クラスターを設定している場合でも、Ubuntu 26.04にMicroK8sをインストールすることは、完全に機能するKubernetes環境への最速の方法の一つです。このガイドでは、インストールとグループ設定からコアアドオンの有効化、クラスタの検証まで、すべての手順を順を追って説明します。
このチュートリアルで学ぶこと:
- snapを使用してUbuntu 26.04にMicroK8sをインストールする方法
- kubectlアクセスのためのユーザーグループの権限を設定する方法
- MicroK8s クラスターが正しく稼働しているかどうかを確認する方法
- ストレージ、ダッシュボード、イングレス、レジストリなどの必須アドオンを有効にする方法
- クラスタ管理を効率化するための kubectl エイリアスの作り方
- MicroK8sの起動、停止、ステータス確認の方法
ソフトウェア要件
記事の要約: Ubuntu 26.04にk8sをインストールするには、snapを使ってMicroK8sをインストールし、ユーザーをmicrok8sグループに追加してから、クラスタの状態を確認します。
| ステップ | コマンド/アクション |
|---|---|
| 1. MicroK8s をインストールする | |
| 2. ユーザーをグループに追加 | |
| 3. クラスターが準備完了になるのを待つ | |
| 4. ノードを確認する | |
Ubuntu 26.04にMicroK8sをインストールする
MicroK8s はスナップパッケージとしてのみ配布されており、snapd が Ubuntu 26.04 にプリインストールされているため、追加の準備なしで Ubuntu 26.04 で直ちに k8s のインストールを開始できます。--classic フラグは、MicroK8s にコンテナとネットワーキングを管理するために必要なシステムアクセスを付与します。
次のコマンドで MicroK8s をインストールしてください:
$ sudo snap install microk8s --classicSnapは最新の安定版MicroK8sリリースをダウンロードしてインストールします。プロセスは通常、接続速度に応じて1〜2分かかります。コマンドが完了すると、MicroK8sサービスはバックグラウンドで自動的に起動します。
最新の安定版リリースではなく、特定のKubernetesバージョンをインストールするには、チャンネルフラグを渡すことができます:
$ sudo snap install microk8s --classic --channel=1.33/stableこれは、互換性の理由で固定されたKubernetesバージョンが必要な環境で役立ちます。利用可能なチャンネルは、MicroK8sのスナップストアページで確認できます。
ユーザーグループアクセスを設定する
インストール後、ユーザーアカウントはまだ sudo なしで MicroK8s とやり取りする権限を持っていません。これを修正するには、ユーザーを microk8s グループに追加してください:
$ sudo usermod -aG microk8s $USERさらに、~/.kube ディレクトリが存在する場合は、ユーザーがその所有権を持っていることを確認してください:
$ mkdir -p ~/.kube
$ sudo chown -R $USER ~/.kube現在のシェルセッションでグループメンバーシップを有効にするには、newgrp を使用します:
$ newgrp microk8s重要
Ubuntu 26.04では、newgrpコマンドにはutil-linux-extraパッケージが必要です。newgrpが見つからない場合は、まずsudo apt install util-linux-extraでインストールし、その後もう一度newgrp microk8sを実行してください。
あるいは、ログアウトして再度ログインすることで、グループの変更をすべてのセッションにわたってシステム全体に適用できます。
クラスターを確認する
グループアクセスが設定されたので、Ubuntu 26.04 上での k8s のインストールが正常に完了したかどうかを確認できます。まず、MicroK8s が内部初期化を完了するのを待ちます:
$ microk8s status --wait-readyこのコマンドは、MicroK8s がクラスターの準備ができたと報告するまでブロックします。現在のステータスや有効化または無効化されたアドオンの一覧が出力として表示されます。正常なクラスターは microk8s is running と報告します。
次に、ノードが表示され、準備完了状態であることを確認します:
$ microk8s kubectl get nodes期待される出力:
NAME STATUS ROLES AGE VERSION
hostname Ready <none> 2m v1.35.xコアKubernetesコンポーネントが正常に動作していることを確認するために、すべての実行中のシステムポッドを確認することもできます:
$ microk8s kubectl get pods -Aコアアドオンを有効にする
MicroK8s には、クラスタの機能を拡張するアドオンのライブラリが付属しています。いくつかはインストール直後にデフォルトで有効になっています。これをいつでも確認するには、次のコマンドを実行してください:
$ microk8s status新規の MicroK8s インストールでは、次のアドオンがデフォルトで有効になっています:
以下のアドオンはデフォルトでは有効になっておらず、ほとんどのワークロードで一般的に必要とされます。必要に応じて有効にしてください:
ホストパスストレージを有効にする: このアドオンは、ホストのファイルシステムをバックエンドとするデフォルトのStorageClassをプロビジョニングします。これは、開発や単一ノードの展開に十分です:
$ microk8s enable hostpath-storage有効にすると、PersistentVolumeClaim リクエスト用に
microk8s-hostpathという名前の StorageClass が利用可能になります。警告
Hostpathストレージは本番環境には適していません。Hostpathボリュームは、ボリュームクレームマニフェストで設定されたサイズ制限を超えて成長する可能性があります。本番のワークロードには、適切なストレージプロバイダーを使用してください。-
Kubernetes ダッシュボードを有効にする:ブラウザベースのクラスタ概要を表示するには、ダッシュボードアドオンを有効にします。ダッシュボードを有効にすると、まだ有効でない場合は
metrics-serverも自動的に有効になります:$ microk8s enable dashboard重要
バンドルされているスナップのHelmチャートリポジトリURLが壊れているため、microk8s dashboard-proxyの便利なコマンドは現在機能していません。ダッシュボードにアクセスするには、microk8s kubectl proxyを使用し、ダッシュボードのURLに手動で移動してください。 Ingress を有効化: Ingress アドオンは NGINX ingress コントローラをデプロイします。これは、クラスタ内で実行されているサービスへの外部 HTTP および HTTPS トラフィックのルーティングに必要です:
$ microk8s enable ingress有効化した後、マニフェストで
Ingressリソースを定義してサービスを外部に公開することができます。プライベートレジストリを有効にする: レジストリアドオンは、
localhost:32000でアクセス可能なプライベートコンテナイメージレジストリを起動します。これは特に、Docker Hubからの繰り返しプルを避けるための開発ワークフローで便利です:$ microk8s enable registry有効にすると、イメージにタグを付けて
localhost:32000/your-image:tagにプッシュし、ポッドマニフェストで直接参照できます。
kubectl のエイリアスを設定する
MicroK8s は独自のバンドルされた kubectl を microk8s kubectl として提供します。毎回のコマンドでこのプレフィックスを入力するのは冗長なので、シェルのエイリアスを作成することで日常的なクラスタ管理が効率化されます。エイリアスをシェルの設定ファイルに追加してください:
$ echo "alias kubectl='microk8s kubectl'" >> ~/.bashrc
$ source ~/.bashrcZsh を使用している場合は、代わりに ~/.zshrc を対象にしてください。ファイルをソースした後、標準の kubectl コマンドを直接実行できます:
$ kubectl get nodes
$ kubectl get pods -A重要
同じシステムにスタンドアロンの kubectl バイナリがインストールされている場合、エイリアスがそれを上書きします。別のクラスタを対象にする必要がある場合は、常に完全な microk8s kubectl 形式を使用してください。
MicroK8sサービスを管理する
MicroK8sは、systemdに直接依存するのではなく、独自のstart、stop、inspectコマンドを提供します。これらのコマンドは、クラスターのライフサイクルを管理する便利な方法を提供します。
microk8s inspect コマンドはトラブルシューティング用であり、クラスタの診断情報を収集し、レポートの tarball を生成します。
重要
現在のスナップリビジョン(8596/v1.33.7)では、microk8s inspect コマンドに既知の問題があります。内部スクリプト関数が欠如しており、出力が信頼できません。さらに、daemon-flanneld、daemon-etcd、および daemon-apiserver-proxy に報告される FAIL は、単一ノードインストールでは予期されるもので、問題を示すものではありません。クラスタの問題を診断する必要がある場合は、代わりに journalctl -u snap.microk8s.daemon-kubelite および microk8s kubectl get pods -A を使用してください。
重要
microk8s reset を実行すると、クラスターからすべてのデプロイ済みワークロード、アドオン、および設定が削除されます。初めからやり直すつもりのときにのみ使用してください。
結論
Ubuntu 26.04でのMicroK8s k8sのインストールが正常に完了しました。クラスタは稼働中で、ユーザーには必要なグループ権限があり、コアアドオンは有効で準備が整っています。MicroK8sは自己完結型のKubernetes環境を提供しており、ローカル開発、CIパイプライン、および単一またはマルチノード構成での軽量プロダクションデプロイに適しています。次のステップとしては、microk8s add-nodeを使用したマルチノードクラスタの探索や、サンプルアプリケーションをデプロイして新しいクラスタでのエンドツーエンドのワークロードスケジューリングを確認することを検討してください。
よくある質問
- MicroK8sとフルKubernetesクラスターの違いは何ですか? MicroK8sは、シンプルさと低リソース使用を目的とした、単一バイナリでスナップパッケージされたKubernetesディストリビューションです。これは、個別のシステムサービスとしてではなく、制限されたスナップ環境内でKubernetesの全コンポーネントを実行します。そのため、単一のマシンへのインストールと管理が容易ですが、あらゆる本番クラスターと同じアップストリームKubernetes APIを使用しているため、標準ツールやマニフェストとの互換性は完全にあります。
- なぜ MicroK8s をインストールするときに
--classicフラグが必要なのですか?--classic制限モードは、ネットワークインターフェイス、カーネルモジュール、ホストファイルシステムなど、厳密なスナップサンドボックス外のシステムリソースへの MicroK8s のアクセスを許可します。このフラグがなければ、Kubernetes がコンテナやネットワークを管理するために基盤となるオペレーティングシステムと深く統合する必要があるため、MicroK8s は正しく機能しません。 - Ubuntu 26.04でMicroK8sを新しいKubernetesバージョンに更新するにはどうすればよいですか? snap refreshコマンドを使用して、MicroK8sを新しいチャンネルに更新できます。例えば、1.34の安定チャンネルに移動するには:
sudo snap refresh microk8s --channel=1.34/stable。MicroK8sは可能な限り既存のワークロードを保持しながらインプレースアップグレードを行います。アップグレード前に重要な設定をバックアップすることをお勧めします。 microk8s statusがクラスタが実行されていないと表示された場合はどうすればよいですか? まず、microk8s startでクラスタを手動で起動してみてください。それでもクラスタが起動しない場合は、microk8s inspectを実行して診断出力を収集します。一般的な原因には、システムリソース不足(MicroK8s は少なくとも 2 CPU コアと 4 GB の RAM を推奨しています)、snap サービスの障害、またはカーネルモジュールの欠落が含まれます。inspect レポートを確認し、追加のシステムレベルのエラーについてはjournalctl -xeをチェックしてください。- Ubuntu 26.04でDockerと並行してMicroK8sを実行できますか? はい。MicroK8sは独自のコンテナランタイム(containerd)を使用しており、Dockerデーモンとは独立して動作します。両者は同じシステム上で競合することなく共存できます。なお、Dockerの公式リポジトリはまだUbuntu 26.04をサポートしていないため、MicroK8sと一緒に使用する必要がある場合は、Ubuntuリポジトリから
sudo apt install docker.ioでDockerをインストールしてください。



