macOS と Windows 10 で Docker Desktop を用いたローカル Kubernetes 環境の構築

Docker Desktop に内蔵された Kubernetes 機能を活用することで、開発用途のローカルクラスターを数分で立ち上げることが可能です。本稿では、Docker Desktop for Mac(v4.25+)および Docker Desktop for Windows(v4.25+)をベースに、最新の Kubernetes v1.28.x 向けに再構成したセットアップ手順を紹介します。設定の自動化と信頼性向上のため、公式リポジトリではなく、カスタマイズ済みのイメージ管理スクリプトと RBAC 構成を採用します。

macOS 向け構築手順

1. Docker Desktop のインストールと初期設定

Docker Desktop 公式サイトより最新版をダウンロード・インストール後、起動して「Settings」→「Features in development」タブで「Kubernetes」を有効化します。また、「Docker Engine」設定から以下のようにレジストリミラーを追加します:

{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

2. 必要イメージの事前ロード

中国国内のネットワーク環境を想定し、Alibaba Cloud の公開リポジトリを活用しますが、本稿では GitHub Actions 互換の軽量スクリプト群を採用。以下のコマンドでリポジトリをクローンし、イメージをローカルに展開します:

git clone https://github.com/aliyun/ack-docker-desktop-helper
cd ack-docker-desktop-helper
chmod +x ./fetch-and-load.sh
./fetch-and-load.sh --k8s-version 1.28.9

実行後、Docker Desktop UI のステータスバーに「Kubernetes is running」が表示されるまで待機します。

3. クラスター検証とダッシュボード導入

ターミナルで以下のコマンドを実行し、ノード状態とコンポーネントの健全性を確認します:

kubectl get nodes -o wide
kubectl get componentstatuses

Kubernetes Dashboard v2.7.0 を Helm を用いてデプロイ(RBAC 設定込み):

helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm repo update
helm install kdash kubernetes-dashboard/kubernetes-dashboard \
  --namespace kubernetes-dashboard \
  --create-namespace \
  --set enableSkipLogin=true \
  --set enableInsecureLogin=true

4. ダッシュボードへのアクセス

ローカルポート経由でアクセス可能にするため、ポートフォワードを起動:

kubectl port-forward -n kubernetes-dashboard service/kdash-dashboard 8443:443

ブラウザで https://localhost:8443 へアクセス。SSL 警告は無視して「Advanced」→「Proceed」を選択します。

5. 管理者トークンの生成(オプション)

より安全な認証が必要な場合は、以下 YAML を admin-token.yaml として保存・適用:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: cluster-admin-sa
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: cluster-admin-sa-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: cluster-admin-sa
  namespace: kube-system

適用後にトークンを取得:

kubectl -n kube-system create token cluster-admin-sa

出力された JWT トークンを Dashboard のログイン画面で使用します。

Windows 10 向け構築手順

前提条件

  • Windows 10 Pro / Enterprise(v22H2 以降推奨)
  • WSL2 が有効化済み(Docker Desktop 自動設定可)
  • PowerShell(管理者権限で実行)

1. Docker Desktop の設定変更

「Settings」→「General」で「Use the WSL 2 based engine」を有効化。続いて「Resources」→「WSL Integration」で対象ディストリビューションを有効化します。

2. イメージロードスクリプトの実行

PowerShell(管理者)でリポジトリをクローンし、スクリプトを実行:

git clone https://github.com/aliyun/ack-docker-desktop-helper
cd ack-docker-desktop-helper
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
./fetch-and-load.ps1 -KubernetesVersion "1.28.9"

3. Kubernetes の有効化と検証

Docker Desktop の設定画面で Kubernetes を有効化し、「Apply & Restart」をクリック。完了後、PowerShell で以下を実行:

kubectl config current-context
kubectl get pods -A

すべてのシステム Pod が Running 状態になっていれば準備完了です。

4. ダッシュボードへの接続(Windows)

PowerShell でポートフォワードを開始:

kubectl port-forward -n kubernetes-dashboard service/kdash-dashboard 8443:443

Windows の既定ブラウザで https://localhost:8443 へアクセスします。

タグ: Docker Desktop Kubernetes macOS Windows 10 Helm

6月5日 21:34 投稿