Kubernetes にデプロイ¶
Docker Desktop には
Docker 内部でローカルの Kubernetes サーバを実行するのは、設定が不要な1つのノードだけのクラスタです。 Kubernetes はローカルシステム上で Docker コンテナ内で実行しますが、ローカルのテスト専用です。
Kubernetes の有効化により、 Kubernetes、 Swarm に対し、ワークロードを並列にスタンドアロン コンテナとしてデプロイできます。
Kubernetes 有効化¶
Docker Desktop で Kubernetes を有効化するには:
Docker ダッシュボードから Setting アイコンをクリックするか、 macOS を使う場合は Preferences アイコンをクリックする。
左のサイドバーから Kubernetes を選択する。
Enable Kubernetes の横にあるチェックボックスを選ぶ。
設定を保存するには Apply & Restart をクリックし、確認のために Install をクリックする。これで Kubernetes サーバをコンテナとして実行するために必要なイメージがインスタンス化されます。そして、マシン上に
/usr/local/bin/kubectl
をインストールします。
デフォルトでは、 Kubernetes コンテナは docker ps
のようなコマンドから隠されているため、手動での操作はサポートされていません。多くのユーザはこのオプションが不要です。これら内部コンテナを見るには、 Show system containers (advaonced) を選びます。
Kubernetes を有効化して実行すると、ダッシュボードのフッタと Docker メニューに追加ステータスバーが表示されます。
注釈
Docker Desktop を新しく更新しても、Kubernetes クラスタは自動的に更新されません。Kubernetes クラスタを最新版に更新するには、 Reset Kubernetes Cluster を選びます。
kubectl コマンドを使う¶
Kubernetes 統合により、Kubernetes CLI コマンドが Mac では /usr/local/bin/kubectl
、 Windows では C:\>Program Files\Docker\Docker\Resources\bin\kubectl.exe
が提供されます。この場所が自分のシェルの PATH
環境変数に入っていない場合がありますので、コマンドを実行するにはフルパスを指定するか、コマンドへのパスを PATH
に追加します。
Docker Desktop for Linux では、パッケージに kubectl バイナリは入っていません。Linux で kubectl コマンドをインストールするには、 Kubernetes のドキュメント をご覧ください。インストール先は /usr/local/bin/kubectl
にすべきです。
既に kubectl
をインストール済みで、 minikube
や GKE クラスタのような他の環境を示している場合は、コンテクストを切り替えて kubectl
が docker-desktop
を示すようにします。
$ kubectl config get-contexts
$ kubectl config use-context docker-desktop
Homebrew を使うか他の手法で kubectl
をインストールし、競合する場合は /usr/local/bin/kubectl
を削除します。
利用可能なノードを一覧表示して、コマンドをテストできます。
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
docker-desktop Ready master 3h v1.19.7
kubectl
についての情報は、 kubectl ドキュメント をご覧ください。
Kubernetes の無効化¶
Docker Desktop で Kubernetes を無効化するには、次のように実行します:
Docker ダッシュボードから Setting アイコンをクリックするか、 macOS を使う場合は Preferences アイコンをクリックする。
左のサイドバーから Kubernetes を選択する。
Enable Kubernetes の横にあるチェックボックスをクリアする。
設定を保存するには Apply & Restart をクリックします。これで Kubernetes コンテナを停止・削除して、それからマシン上に
/usr/local/bin/kubectl
を削除します。
参考
- Deploy on Kubernetes