Kubernetes にデプロイ

Docker Desktop には 単独(standalone) の Kubernetes サーバとクライアントが入っているだけでなく、マシン上で実行できる Docker CLI 統合も入っています。

Docker 内部でローカルの Kubernetes サーバを実行するのは、設定が不要な1つのノードだけのクラスタです。 Kubernetes はローカルシステム上で Docker コンテナ内で実行しますが、ローカルのテスト専用です。

Kubernetes の有効化により、 Kubernetes、 Swarm に対し、ワークロードを並列にスタンドアロン コンテナとしてデプロイできます。

Kubernetes 有効化

Docker Desktop で Kubernetes を有効化するには:

  1. Docker ダッシュボードから Setting アイコンをクリックするか、 macOS を使う場合は Preferences アイコンをクリックする。

  2. 左のサイドバーから Kubernetes を選択する。

  3. Enable Kubernetes の横にあるチェックボックスを選ぶ。

  4. 設定を保存するには 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 クラスタのような他の環境を示している場合は、コンテクストを切り替えて kubectldocker-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 を無効化するには、次のように実行します:

  1. Docker ダッシュボードから Setting アイコンをクリックするか、 macOS を使う場合は Preferences アイコンをクリックする。

  2. 左のサイドバーから Kubernetes を選択する。

  3. Enable Kubernetes の横にあるチェックボックスをクリアする。

  4. 設定を保存するには Apply & Restart をクリックします。これで Kubernetes コンテナを停止・削除して、それからマシン上に /usr/local/bin/kubectl を削除します。

参考

Deploy on Kubernetes

https://docs.docker.com/desktop/kubernetes/