Contents
Dockerとkubectlのインストール手順
ローカルでKubernetesクラスタを構築するには、Dockerとkubectlのインストールが前提となります。ここでは基本的な流れを説明します。
インストール前の準備
- Docker Desktopが推奨される点に注意してください。VirtualBoxへの依存度は低く、ネイティブドライバを使用することで操作性が向上します。
- Windows/macOSユーザーはDocker Desktopの仮想マシンドライバが標準でサポートされています。
Dockerのインストール
Dockerはコンテナ技術を扱うための必須ツールです。公式サイトから適切なバージョンをダウンロードし、インストール手順に従ってください。インストール後、docker --versionコマンドで確認可能です。
kubectlのインストールと認証設定
kubectlはKubernetesクラスタとの通信を行うCLIツールです。公式サイトからバイナリをダウンロードし、環境変数にパスを通してください。その後、kubectl versionで動作確認を行います。
注意: ローカルのminikubeクラスタと連携させるためには、
kubectl config use-context minikubeなどの設定が必要な場合がありますが、minikube start実行後は自動的にcontextが切り替わるため、手動での設定はほとんど不要です。
インストール後の確認コマンド
以下を実行し、Dockerとkubectlが正常に動作しているか確認してください。
|
1 2 3 |
docker --version kubectl version |
minikubeを使用したローカルクラスターの起動
minikubeはKubernetesクラスタをローカルで簡単に構築できるツールです。以下に手順を記載します。
インストールと環境選択
minikubeは公式サイトからダウンロードできます。OSに応じたバイナリファイルを取得し、環境変数にパスを通してください。
推奨ドライバ: Windows/macOSではDocker Desktopのネイティブドライバを使用が現実的です。VirtualBoxは古くからある選択肢ですが、現在では非推奨とされている場合があります。
クラスター起動コマンドの実行
以下のコマンドでクラスタを起動します。初期設定が完了すると自動的に起動されます。
|
1 2 |
minikube start --driver=docker # Docker Desktop使用時 |
エラー対処法: 起動中に「VM driver not found」などのエラーが出る場合、Docker Desktopが適切にインストールされているか確認してください。VirtualBoxの使用は極力避けてください。
仮想マシン環境の選択オプション
minikubeは仮想マシンを使用してクラスタを動かします。以下のオプションでVM環境を選べます。
| オプション | 説明 |
|---|---|
--driver=virtualbox |
VirtualBoxを使用する(Windows/macOSで非推奨) |
--driver=docker |
Docker Desktopのドライバを使用(Linux/Windows/macOSに推奨) |
minikubeによるクラスタ構築とセキュリティ対策
minikubeは単一ノード構成を前提としています。複数ノード環境が必要な場合は、追加の手順が必要ですが、本記事ではシンプルに1ノード構成で説明します。
セキュリティ対策とベストプラクティス
ローカルクラスタでもセキュリティを意識する必要があります。以下の点を必ず確認してください:
- RBAC(ロールベースアクセス制御)の有効化
-
ユーザーごとの権限分離を明確に設定することで、不正操作のリスクを抑えることができます。
-
Secretsの適切な管理
-
環境変数やコンフィグファイルで機密情報を直接記載するのではなく、
kubectl create secret genericコマンドを使って安全に管理してください。 -
定期的な更新と監査ログの確認
- minikube自体やKubernetesバージョンの更新はセキュリティホールを防ぐため重要です。また、クラスタ内の変更履歴(Audit Logs)もチェックしましょう。
参考: https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/
Podのデプロイ例:Nginx
クラスタ構築後、PodをデプロイしてKubernetesの動作を体験しましょう。
Deploymentリソースの作成と確認
以下のようなYAMLファイルを作成し、kubectl apply -fコマンドで適用します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 |
Service経由の外部アクセス設定
PodにアクセスするためにServiceを作成します。以下はNodePort型の例です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
apiVersion: v1 kind: Service metadata: name: nginx-service spec: type: NodePort selector: app: nginx ports: - protocol: TCP port: 80 targetPort: 80 |
ブラウザでの確認手順
kubectl get servicesで公開ポートを確認し、ブラウザからアクセスします。
|
1 2 3 4 5 |
kubectl get services # 出力例: # NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE # nginx-service NodePort 10.96.0.1 <none> 80:32768/TCP 1m |
環境構築まとめと今後のステップ
ローカルクラスタの構築には、Docker、kubectl、minikubeを順にインストールし、最終的にminikube startコマンドで即座に環境が整います。さらに、PodデプロイやService設定など、基本的な操作を体験することでKubernetesの仕組みを理解できます。
次の学習テーマ
- Helmチャートによるアプリケーションの配備
- ストレージクラスとPersistentVolumeの利用方法
- ロールベースアクセス制御(RBAC)の設定
クラスタが不要になった場合は、minikube stopで停止し、minikube deleteで完全に削除できます。Kubernetesを試すには最適な環境構築法として、minikube startコマンドで即座に実験環境構築を開始し、Kubernetesの基本動作を体感してください。