デスクトップでエッジ バージョンの Docker (Docker for Mac または Docker for Windows Desktop ) を実行している場合、ボタンをクリックするだけで単一ノードの Kubernetes クラスターを立ち上げることができるようになりました。 私は開発者ではありませんが、他のツールをインストールしなくても完全に準拠したKubernetesクラスターをすぐに利用できるようになったため、MacbookまたはWindowsラップトップでDockerをすでに使用している何百万人もの開発者にとって、これは素晴らしいニュースだと思います。
Docker を使用してコンテナー化されたアプリケーションを構築する開発者は、多くの場合、Docker Compose ファイルをビルドしてデプロイします。 Kubernetes を Docker 製品ラインに統合することで、一部の開発者は既存の Compose ファイルを活用しながら、これらのアプリケーションを Kubernetes にデプロイしたい場合があります。
デスクトップ上の Docker (および Docker Enterprise Edition) を使用すると、Docker compose を使用してアプリケーションを Kubernetes クラスターに直接デプロイできます。
仕組みは次のとおりです。
Webフロントエンド、ワーカープロセス(words
)、データベース)の3層アプリケーションを記述する次のような単純なDocker作成ファイルがあるとしましょう。
Web フロントエンドは、ホスト上のポート 80 からサービス (およびその後の基になるコンテナー) のポート 80 にトラフィックをルーティングするように設定されていることに注意してください。 また、 私たちのワードサービスは5つのレプリカで開始される予定です。
サービス: ウェブ: ビルド: ウェブ 画像:ドッカーデモス/ラボウェブ ボリューム: - "./web/static:/static" ポート: - "80:80" 言葉: ビルド:ワード[すくりっく:か 画像:ドッカーデモ/ラボワード 展開: レプリカ: 5 endpoint_mode: DNSRR リソース: 切り: メモリ: 16M 予約: メモリ: 16M .db: ビルド: データベース 画像:Dockerdemos/Lab-DB
私は Docker for Mac を使用しており、Kubernetes が既定のオーケストレーターとして設定されています。 このアプリケーションをデプロイするには、作成ファイルの名前( words.yaml )を指定して dockerスタックデプロイ を使用するだけですとスタックの名前(単語)。本当にクールなのは、これがDocker Swarmで使用するのとまったく同じコマンドになることです。
$ docker stack deploy --compose-file words.yaml words スタックワードが作成されました スタックが安定して実行されるのを待っています... - サービスデータベースには1つのコンテナが実行されています - サービスワードで 1 つのコンテナが実行されている - サービス Web では 1 つのコンテナーが実行されています スタックワードは安定しており、実行されています
内部では、作成ファイルによって、 kubectl を使用して表示できる 一連のデプロイ 、 ポッド 、 およびサービス が作成されています 。
$ kubectl get deployment 希望する名前 現在利用可能な年齢 デシベル 1 1 1 1 2m ウェブ 1 1 1 1 2M 単語 5 5 5 5 2m $ kubectl Get Pods 名前の準備完了状態が経過時間を再起動します db-5489494997-2krr2 1/1ランニング0 2m ウェブ-DD5755876-DHNKH 1/1 ランニング 0 2m 単語-86645d96b7-8whpw 1/1ランニング0 2m ワード-86645d96b7-dqwxp 1/1ランニング0 2m 単語-86645d96b7-nxgbb 1/1ランニング0 2m ワード-86645D96B7-p5qxh 1/1ランニング0 2m 単語-86645D96B7-VS8x5 1/1ランニング0 2m $ kubectl サービスを受ける 名前の種類 クラスタ IP 外部 IP ポートの経過時間 db クラスタ IP なし 55555/TCP 2m ウェブクラスタIPなし55555/TCP 2m ウェブ公開ロードバランサー10.104.198.84 80:32315 / TCP 2m 単語 クラスタIP なし 55555/TCP 2m
サービスのリストを見ると、一見少し奇妙に見えることに気付くかもしれません。 ウェブ とウェブ公開 の両方の サービスがあります。Web サービスはアプリケーション内通信を可能にしますが、 Web 公開サービス (Docker for Mac の vpnkit によってサポートされるロード バランサー) は、Web フロントエンドを世界中の人々に 公開 します。
したがって、http://localhost:80 にアクセスすると、アプリケーションが実行されていることがわかります。 あなたは実際にこのビデオでプロセス全体を見ることができますエルトン 記録。
ここで、サービスを削除したい場合は、 kubectlを使用してデプロイを削除すると思うかもしれません(私はそうしました)。 しかし、実際に行うことはdockerスタックrmを使用することであり、スタックを起動したときに作成されたすべてのコンポーネントが削除されます。
$ ドッカースタックrmワード スタックの削除:単語 $ kubectl get deployment リソースが見つかりません
そして、私にとってクールなことは、これと同じプロセスをDocker EEで使用できることです-私は単にComposeファイルを取得して、Docker Enterprise Edition(EE)のUIに直接デプロイします-しかし、それは別の投稿です。
自分で試してみませんか? Docker for Mac または Docker for Windows を入手しますが、詳細についてはドキュメント (Mac および Windows) を確認してください。
詳細情報:
- サインアップ して Kubernetes で Docker EE ベータ版をダウンロードするか、 ラボでお試しください
- DockerCon Europe 2017 Kubernetes の発表をご覧ください
- DockerCon 2018 に登録する