web-dev-qa-db-ja.com

Docker for WindowsのMinikubeとKubernetes

Kubernetesで開発するために見たほとんどのチュートリアルは、Minikubeをローカルで使用します。 Docker for Windowsの最新のEdgeリリースでは、Kubernetesを有効にすることもできます。私は2つの違いを理解しようとしています。

  1. Minikubeを使用すると、必要なKubernetesのバージョンを選択できますが、Docker for Windowsでできますか?設定する方法がわかりません。
  2. Minikubeには、ダッシュボード、ヒープスター、イングレス、その他のアドオンを有効にするCLIコマンドがあります。私が理解しているのは、これらが単にkubectl apply -f http://...
  3. Minikubeでminikube ipイングレスのクラスターIPアドレスを取得するには、Docker for Windowsでこれを行うにはどうすればよいですか?
  4. 私が気にしなければならない他の何かがありますか。
20

あなたはその空間を大部分は理解しており、ほとんどの質問にはすでに回答があります。 Mac用のDockerとDocker Toolboxの比較 WindowsでなくMacに相当するものであり、KubernetesではなくVMとしてパッケージ化されたDockerであっても、有益な情報です。

  1. 実際、Docker Edgeデスクトップディストリビューションが公開するKubernetesの特定のバージョンにこだわっています。

  2. 質問で答えられます。

  3. NodePortタイプのサービスはホストのIPアドレスで公開されていると思います。 Docker Toolboxのような中間のVMアドレスはありません。

  4. Docker Toolboxとminikubeは、既成のハイパーバイザーを備えた本格的な仮想マシンを常に使用します。 Dockerデスクトップアプリケーションは、軽量の仮想化エンジンが使用可能な場合、それを使用する場合があります。

  5. Kubernetesには、重要なバックグラウンド作業が含まれます。 Kubernetes-in-Dockerを使用している場合、Kubernetesを「オフ」にして、Dockerを使用可能にすることは困難です。ただし、別のminikube VMがある場合は、単に停止することができます。

9
David Maze

Docker documentation の一部を次に示します。

Kubernetesは、Docker for Windows 18.02 CE Edgeでのみ使用できます。 Kubernetesのサポートは、Docker for Windows 18.02 CE Stableには含まれていません。安定チャンネルとエッジチャンネルの詳細、およびそれらを切り替える方法については、一般的な設定をご覧ください。

Docker for Windows 18.02 CE Edgeには、スタンドアロンのKubernetesサーバーとクライアント、およびDocker CLI統合が含まれています。 Kubernetesサーバーは、Dockerインスタンス内でローカルに実行され、構成可能ではなく、単一ノードのクラスターです。

Kubernetesサーバーは、ローカルシステムのDockerコンテナー内で実行され、ローカルテスト専用です。 Kubernetesサポートが有効になっている場合、ワークロードをKubernetes、Swarm、およびスタンドアロンコンテナに並行して展開できます。 Kubernetesサーバーを有効または無効にしても、他のワークロードには影響しません。

Docker for Windows>はじめに を参照してKubernetesを有効にし、Kubernetesでのワークロードの展開のテストを開始します。

十分なCPUとRAMリソース)がある場合、同じマシンにminikubedocker-for-desktopの両方を簡単に配置し、コンテキストを選択することでそれらを切り替えることができます。 :

> kubectl config get-contexts
> kubectl config use-context docker-for-desktop

docker-for-desktop のKubernetesバージョンを選択する場所は現時点ではありません。 Docker配布パッケージでは preselected です。

残念ながら、minikube内のdockerのバージョンは、docker Webサイトで利用可能なものと比較して一歩遅れており、一部の機能は missing になりますが、Kubernetes環境に興味がある場合、それはそれほど重要ではありませんほとんどの場合。

Kubernetesの一部の機能は外部リソースに依存しており、ローカルインストールの場合は利用できない場合があります。たとえば、いくつかのタイプのIngressまたはServiceオブジェクトを使用するには、Cloud Load Balancerを作成する機能が必要です。

ただし、minikubeまたはdocker-for-desktopを使用してkubectl create/apply内で他のリソースを簡単に開始できます。

クラスターリソースを外部に公開するには、 Webhook Relay Ingress controller を使用できます。
インストールマニュアルへの リンク です。

5
VAS