コンテナ化されたプロセスの移植性と再現性は、コンテナ化されたアプリケーションをクラウドとデータセンター間で移動および拡張する機会があることを意味します。コンテナーは、これらのアプリケーションがどこでも同じように実行されることを効果的に保証し、これらすべての環境を迅速かつ簡単に利用できるようにします。さらに、アプリケーションの規模が拡大するにつれて、これらのアプリケーションのメンテナンスを自動化し、障害が発生したコンテナーを自動的に交換し、これらのコンテナーのライフサイクル中に更新と構成の起動を管理するためのツールが必要になります。
コンテナ化されたアプリケーションを管理、スケーリング、維持するためのツールはオーケストレーターと呼ばれ、その最も一般的な例はKubernetesとDockerSwarmです。これら2つのオーケストレーターの開発環境デプロイメントはDockerDesktopによって提供されます。このガイドでは、これを使用して、最初のオーケストレーションコンテナー化アプリケーションを作成します。
高度なモジュールでは、次の方法を学習します。
Kubernetesを有効にする
Docker Desktopは、Kubernetesをすばやく簡単にセットアップします。オペレーティングシステムのセットアップと検証の手順に従います。
ウィンドウズ
-
Docker Desktopをインストールすると、システムトレイにDockerアイコンが表示されます。それを右クリックして、[設定] > [ Kubernetes ]に移動します。
-
[ Kubernetesを有効にする]チェックボックスをオンにして、[適用して再起動]をクリックします。DockerDesktopは自動的にKubernetesをセットアップします。あなたが表示されたら、次の緑色の光を「Kubernetesが実行されている」設定メニューでは、それはKubernetesが正常に有効になっていることを意味します。
翻訳者注:
Kubernetesアイテムが表示されない場合は、システムトレイアイコンを右クリックし、[Linuxコンテナに切り替え...]を選択してから、[設定] > [ Kubernetes ]に移動して、もう一度表示してください。
-
Kubernetesがすでに稼働していることを確認するに
pod.yaml
は、次の内容を含むテキストファイルと呼ばれるファイルを作成します。apiVersion: v1 kind: Pod metadata: name: demo spec: containers: - name: testpod image: alpine:3.5 command: ["ping", "8.8.8.8"]
これは、単一のコンテナーを備えたポッドを表し、単純なpingを「8.8.8.8」に分離します。
-
PowerShellで
pod.yaml
、ディレクトリを作成する場所に移動し、ポッドを作成します。kubectl apply -f pod.yaml
-
ポッドが稼働しているかどうかを確認します。
kubectl get pods
次のような出力が表示されます。
NAME READY STATUS RESTARTS AGE demo 1/1 Running 0 4s
-
期待するpingプロセスのログを取得するかどうかを確認します。
kubectl logs demo
通常のpingプロセスの出力が表示されます。
PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from 8.8.8.8: seq=0 ttl=37 time=21.393 ms 64 bytes from 8.8.8.8: seq=1 ttl=37 time=15.320 ms 64 bytes from 8.8.8.8: seq=2 ttl=37 time=11.111 ms ...
-
最後に、テストポッドを取り外します。
kubectl delete -f pod.yaml
マック
Windowsと同様に、詳細についてはhttps://docs.docker.com/get-started/orchestration/#kubeosxを参照してください。
DockerSwarmを有効にする
Docker Desktopは、主にDockerエンジンで実行されます。このエンジンには、Swarmの実行に必要なすべてのものが組み込まれています。オペレーティングシステムのセットアップと検証の手順に従います。
ウィンドウズ
-
PowerShellを開き、DockerSwarmモードを初期化します。
docker swarm init
すべてがうまくいくと、次のようなメッセージが表示されます。
Swarm initialized: current node (tjjggogqpnpj2phbfbz8jd5oq) is now a manager. To add a worker to this swarm, run the following command: docker swarm join --token SWMTKN-1-3e0hh0jd5t4yjg209f4g5qpowbsczfahv2dea9a1ay2l8787cf-2h4ly330d0j917ocvzw30j5x9 192.168.65.3:2377 To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
-
単純なDockerサービスを実行し、アルピンベースのファイルシステムを使用して、pingを8.8.8.8に分離します。
docker service create --name demo alpine:3.5 ping 8.8.8.8
-
サービスが実行中のコンテナを作成するかどうかを確認します。
docker service ps demo
次のような出力が表示されます。
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS 463j2s3y4b5o demo.1 alpine:3.5 docker-desktop Running Running 8 seconds ago
-
期待するpingプロセスのログを取得するかどうかを確認します。
docker service logs demo
通常のpingプロセスの出力が表示されます。
demo.1.463j2s3y4b5o@docker-desktop | PING 8.8.8.8 (8.8.8.8): 56 data bytes demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=0 ttl=37 time=13.005 ms demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=1 ttl=37 time=13.847 ms demo.1.463j2s3y4b5o@docker-desktop | 64 bytes from 8.8.8.8: seq=2 ttl=37 time=41.296 ms ...
-
最後に、テストサービスを削除します。
docker service rm demo
マック
Windowsと同様に、詳細についてはhttps://docs.docker.com/get-started/orchestration/#swarmosxを参照してください。
結論として
この時点で、KubernetesとSwarmで単純なコンテナ化されたワークロードを実行できることを確認しました。次のステップは、Kubernetes yamlを記述して、Kubernetesでこれらのコンテナーを実行および管理する方法を説明することです。
Swarmでコンテナを実行および管理するのに役立つスタックファイル(スタックファイル)の記述方法については、「Swarmのデプロイ先」を参照してください。
CLIリファレンス
この記事で使用されているすべてのCLIコマンドの詳細なドキュメントは、次の場所にあります。
著者:Dockerの公式ウェブサイト
翻訳者:Technical Zemin
発行元:Technical Verses
リンク:英語のテキスト