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
コマンドがインストールされます。
Kuberntes コンテナーは、デフォルトではdocker ps
などのコマンドに表示されません。
なぜならこのコンテナーは手動で制御することがサポートされていないからです。
そういった内部コンテナーを参照するには Show system containers (advanced)(システムコンテナー参照(高度))を選んでください。
普通のユーザーにとってこれを実行する必要ありません。
Kubernetes を有効化して起動すると、Docker Desktop の Settings ダイアログ右下に、新たにステータスバーが表示されます。
Kubernetes の状態は Docker メニュー内に表示されます。
Kubernetes のコンテキストはdocker-desktop
となります。
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
コマンドも削除されます。