Kubernetes でのデプロイ

Docker Desktop には手元のマシン上で動作する Docker CLI 統合環境に加えて、Kubernetes のスタンドアロンサーバーとクライアントが含まれます。 Kubernetes サーバーは Docker インスタンス内にローカルに実行されます。 設定変更することはできず、単一ノードクラスターとして動作します。

Kubernetes サーバーは、ローカルシステム内の Docker コンテナー内部で稼動します。 ローカル環境でのテスト用として利用するものです。 Kubernetes サポートが有効である場合、Kubernetes と Swarm へ同時並行により開発内容をデプロイし、スタンドアロンコンテナーとすることができます。 Kubernetes サーバーの有効、無効は、他の開発内容へは影響しません。

Kubernetes の有効化

Docker Desktop において Kubernetes を有効にするには、Preferences > Kubernetes を実行して Enable Kubernetes(Kubernetes の有効化)をクリックします。

Apply & Restart(適用と再起動)をクリックして設定を保存したら、確認して Install(インストール)をクリックします。 これを行うと、Kubernetes サーバーをコンテナーとして起動させるためのイメージが初期化されて、マシン内に/usr/local/bin/kubectlコマンドがインストールされます。

Kubernetes の有効化

Kuberntes コンテナーは、デフォルトではdocker psなどのコマンドに表示されません。 なぜならこのコンテナーは手動で制御することがサポートされていないからです。 そういった内部コンテナーを参照するには Show system containers (advanced)(システムコンテナー参照(高度))を選んでください。 普通のユーザーにとってこれを実行する必要ありません。

Kubernetes を有効化して起動すると、Docker Desktop の Settings ダイアログ右下に、新たにステータスバーが表示されます。

Kubernetes の状態は Docker メニュー内に表示されます。 Kubernetes のコンテキストはdocker-desktopとなります。

Kubernetes が表示された Docker メニュー

Kubernetes のアップグレード

Docker Desktop では新たな更新を行っても、Kubernetes クラスターは自動的にはアップグレードしません。 Kubernetes クラスターを最新版に更新するには Reset Kubernetes Cluster(Kubernetes クラスターのリセット)を選んでください。

kubectl コマンドの利用

Kubernetes 統合環境では、Mac の場合は/usr/local/bin/kubectl、Windows の場合はC:\>Program Files\Docker\Docker\Resources\bin\kubectl.exeに Kubernetes CLI コマンドが提供されています。 このパスは、利用しているシェルのPATH変数には含まれていないかもしれません。 そこでコマンド実行時にはフルパスを指定するか、PATH設定に加えることが必要になります。

If you have already installed kubectl and pointing to some other environment, such as minikube or a GKE cluster, ensure you change the context so that kubectl is pointing to docker-desktop:

$ kubectl config get-contexts
$ kubectl config use-context docker-desktop

If you installed kubectl using Homebrew, or by some other method, and experience conflicts, remove /usr/local/bin/kubectl.

以下のコマンドを実行すれば、利用可能なノード一覧が得られます。

$ kubectl get nodes

NAME                 STATUS    ROLES     AGE       VERSION
docker-desktop       Ready     master    3h        v1.19.7

kubectlに関する詳細は kubectlのドキュメント を参照してください。

Kubernetes の無効化

Kubernetes サポートの無効化はいつでも可能です。 これはチェックボックス Enable Kubernetes(Kubernetes の有効化)をオフにするだけです。 これにより Kubernetes コンテナーが停止し削除されます。 さらに/usr/local/bin/kubectlコマンドも削除されます。

deploy, kubernetes, kubectl, orchestration