テクノロジー DEVOPS 非公開: DevOps 用の 14 のコンテナ オーケストレーション ツール

DevOps 用の 14 のコンテナ オーケストレーション ツール

市場で入手可能な人気のあるコンテナ オーケストレーション ツールのいくつかについて説明しましょう。

コンテナ オーケストレーションとは何ですか?

Docker などのコンテナ プラットフォームは、マイクロサービス アーキテクチャに基づいてアプリケーションをパッケージ化するために、最近非常に人気があります。コンテナーは拡張性が高く、オンデマンドで作成できます。これは少数のコンテナには適していますが、数百ものコンテナがあると想像してください。

需要に応じてコンテナ数が動的に増加すると、コンテナのライフサイクルとその管理が非常に困難になります。

コンテナ オーケストレーションは、コンテナのスケジューリング、デプロイメント、スケーラビリティ、負荷分散、可用性、およびネットワークを自動化することで問題を解決します。コンテナ オーケストレーションは、コンテナとサービスのライフサイクルの自動化と管理です。

これは、複数のコンテナーとマイクロサービス アーキテクチャを大規模に管理および編成するプロセスです。

幸いなことに、市場には多くのコンテナ オーケストレーション ツールが存在します。

それらを調べてみましょう!

DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

Kubernetes

ご想像の通りですよね?

Kubernetes は、 もともと Google によって設計され、現在は Cloud Native Computing Foundation によって維持されているオープンソース プラットフォームです。 Kubernetes は、宣言型構成と自動化の両方をサポートしています。コンテナ化されたワークロードとサービスの展開、スケーリング、管理を自動化するのに役立ちます。

Kubernetes API は、ユーザー、クラスター コンポーネント、および外部サードパーティ コンポーネント間の通信を確立するのに役立ちます。 Kubernetes コントロール プレーンとノードは、クラスターを形成するノードのグループ上で実行されます。アプリケーションのワークロードは、ワーカー ノード上で実行される 1 つ以上のポッドで構成されます。コントロール プレーンはポッドとワーカー ノードを管理します。

Babylon、Booking.com、AppDirect などの企業は、Kubernetes を広く使用しています。

特徴

  • サービスの検出と負荷分散
  • ストレージオーケストレーション
  • 自動化されたロールアウトとロールバック
  • 水平スケーリング
  • シークレットと構成の管理
  • 自己修復
  • バッチ実行
  • IPv4/IPv6デュアルスタック
  • 自動ビン梱包

Kubernetesを学びたいですか?これらの学習リソースを確認してください。

DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

オープンシフト

Redhat は、 OpenShift Container Platform as a Service (PaaS) を提供しています。ハイブリッド クラウド環境の安全でスケーラブルなリソース上でのアプリケーションの自動化に役立ちます。コンテナ化されたアプリケーションを構築、展開、管理するためのエンタープライズ グレードのプラットフォームを提供します。

Redhat エンタープライズ Linux と Kubernetes エンジンに基づいて構築されています。 Openshift には、UI および CLI を介してクラスターを管理するためのさまざまな機能があります。 Redhat は、さらに 2 つのバリエーションで Openshift を提供しています。

  • Openshift Online – Software as a Service (SaaS) として提供
  • OpenShift Dended – マネージド サービスとして提供

Openshift Origin (Origin Community Distribution) は、OpenShift Container Platform、Openshift Online、および OpenShift D dedicated で使用されるオープンソースのアップストリーム コミュニティ プロジェクトです。

DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

遊牧民

Nomad は、オンプレミスとクラウドにわたってコンテナーと非コンテナー化アプリケーションを大規模にデプロイおよび管理するための、シンプルかつ柔軟で使いやすいワークロード オーケストレーターです。 Nomad は、リソース フットプリントが小さい (35 MB) 単一のバイナリとして実行され、macOS、Windows、および Linux でサポートされます。

開発者は、宣言型コードとしてのインフラストラクチャ (IaC) を使用してアプリケーションをデプロイし、アプリケーションのデプロイ方法を定義します。 Nomad はアプリケーションを障害から自動的に回復します。

Nomad あらゆるタイプのアプリケーション (コンテナーだけでなく) をオーケストレーションします。 Docker、Windows、Java、VM などに対するファーストクラスのサポートを提供します。

特徴

  • シンプルかつ信頼性の高い
  • 書き換えを行わずにレガシー アプリケーションを最新化する
  • 大規模なフェデレーションを簡単に実現
  • 実証済みのスケーラビリティ
  • マルチクラウドを簡単に
  • Terraform、Consul、Vault とのネイティブ統合
DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

Docker Swarm

Docker Swarm は 宣言型モデルを使用します。サービスの望ましい状態を定義すると、Docker がその状態を維持します。 Docker Enterprise Edition は、Kubernetes と Swarm を統合しました。 Docker は、オーケストレーション エンジンの選択に柔軟性を提供するようになりました。 Docker エンジン CLI は、アプリケーション サービスをデプロイできる Docker エンジンの群を作成するために使用されます。

Docker コマンドは、クラスターと対話するために使用されます。クラスターに参加するマシンはノードと呼ばれ、Swarm マネージャーがクラスターのアクティビティを処理します。

Docker Swarm は 2 つの主要コンポーネントで構成されます。

  • マネージャー – マネージャー ノードは、swarm 内のワーカー ノードにタスクを割り当てます。リーダーは Raft コンセンサス アルゴリズムに基づいて選出されます。リーダーは、群れのすべての管理とタスク オーケストレーションの決定を処理します。
  • ワーカー ノード – ワーカー ノードはマネージャー ノードからタスクを受け取り、それらを実行します。

特徴

  • Docker Engineと統合されたクラスター管理
  • 分散型設計
  • 宣言型サービスモデル
  • スケーリング
  • 望ましい状態の調整
  • マルチホストネットワーキング
  • サービスディスカバリ
  • 負荷分散
  • デフォルトで安全
  • ローリングアップデート
DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

Docker Compose

Docker Compose は、連携して動作するマルチコンテナー アプリケーションを定義して実行するためのものです。 Docker-compose は、ソフトウェアの依存関係を共有し、一緒に調整および拡張される相互接続されたサービスのグループを記述します。

YAML ファイル ( dockerfile ) を使用して、アプリケーションのサービスを構成できます。次に、 docker-compose up コマンドを使用して、構成からすべてのサービスを作成して開始します。

docker-compose.yml は次のようになります。

 version: '3'
volumes:
  app_data:
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
      - ./docker-data-volumes/elasticsearch:/usr/share/elasticsearch/data

  kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana:6.8.0
    ports:
      - 5601:5601
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
  app:
    depends_on:
      - elasticsearch
    image: asadali08527/app:latest
    ports:
      - 8080:8080
    volumes:
      - app_data:/var/lib/app/

Docker Compose を使用すると、内部ネットワークを使用して通信する複数の独立して実行されるサービスにアプリ コードを組み込むことができます。このツールは、アプリケーションのライフサイクル全体を管理するための CLI を提供します。 Docker Compose は従来、開発とテストのワークフローに重点を置いてきましたが、現在はより本番指向の機能に重点を置いています。

Docker Engine は、Docker Machine または Docker Swarm クラスター全体でプロビジョニングされたスタンドアロン インスタンスである場合があります。

特徴

  • 単一ホスト上の複数の隔離された環境
  • コンテナ作成時にボリュームデータを保存する
  • 変更されたコンテナのみを再作成する
  • 変数と環境間でのコンポジションの移動

ミニキューブ

Minikube を 使用すると、ユーザーは Kubernetes をローカルで実行できます。 Minikube を使用すると、パーソナル コンピューター上の単一ノード Kubernetes クラスター内でアプリケーションをローカルにテストできます。 Minikube には、Kubernetes ダッシュボードのサポートが統合されています。

Minikube は Kubernetes の最新の安定リリースを実行し、次の機能をサポートします。

  • ロードバランシング
  • マルチクラスター
  • 永続ボリューム
  • ノードポート
  • ConfigMap とシークレット
  • コンテナー ランタイム: Docker、CRI-O、およびコンテナー
  • CNI (コンテナネットワークインターフェース) の有効化

マラソン

マラソンは、 アプリとフレームワークを調整する機能を備えた Apache Mesos 用です。

Apache Mesos は、オープンソースのクラスター マネージャーです。 Mesos は、コンテナ化されたワークロードとコンテナ化されていないワークロードの両方を実行できる機能を備えた Apache によるプロジェクトです。 Mesos クラスターの主なコンポーネントは、Mesos エージェント ノード、Mesos マスター、ZooKeeper、フレームワークです。フレームワークはマスターと連携して、エージェント ノードにタスクをスケジュールします。ユーザーは、Marathon フレームワークを操作してジョブをスケジュールします。

マラソン スケジューラは、ZooKeeper を使用して、タスクを送信する現在のマスターを見つけます。マラソン スケジューラと Mesos マスターには、高可用性を確保するために実行されるセカンダリ マスターがあります。クライアントは、REST API を使用してマラソンと対話します。

特徴

  • 高可用性
  • ステートフル アプリ
  • 美しく強力なUI
  • 制約
  • サービスの検出と負荷分散
  • ヘルスチェック
  • イベントのサブスクリプション
  • メトリクス
  • REST API

クラウド化

Cloudify は 、コンテナーとマイクロサービスのデプロイの自動化とライフサイクル管理のためのオープンソースのクラウド オーケストレーション ツールです。オンデマンドのクラスター、自動修復、インフラストラクチャ レベルでのスケーリングなどの機能を提供します。 Cloudify は、コンテナ インフラストラクチャを管理し、コンテナ プラットフォーム上で実行されるサービスをオーケストレーションできます。

以下を含む Docker および Docker ベースのコンテナー マネージャーと簡単に統合できます。

  • ドッカー
  • Docker Swarm
  • Docker Compose
  • Kubernetes
  • Apache メソス

Cloudify は、コンテナー クラスターの作成、修復、スケーリング、および破棄に役立ちます。コンテナ オーケストレーションは、コンテナ マネージャーを実行できるスケーラブルで可用性の高いインフラストラクチャを提供する上で鍵となります。 Cloudify は、プラットフォーム間で異種サービスを調整する機能を提供します。 CLI と Cloudify Manager を使用してアプリケーションをデプロイできます。

牧場主

Rancher は 、Cattle として知られるコンテナ オーケストレーションを使用するオープンソース プラットフォームです。 Kubernetes、Swarm、Mesos などのオーケストレーション サービスを活用できます。 Rancher はコンテナの管理に必要なソフトウェアを提供するため、組織は一連の個別のオープン ソース テクノロジを使用してコンテナ サービス プラットフォームを最初から構築する必要がありません。

Rancher 2.x を使用すると、顧客が指定したプロバイダー上で実行されている Kubernetes クラスターを管理できます。

Rancher を使い始めるには 2 つのステップがあります。

Linux ホストを準備する

64 ビット Ubuntu 16.04 または 18.04 (または別のサポートされている Linux ディストリビューションと少なくとも 4 GB のメモリを備えた Linux ホストを準備します。サポートされているバージョンの Docker をホストにインストールします。

サーバーを起動します

Rancher をインストールして実行するには、ホスト上で次の Docker コマンドを実行します。

 $ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

Rancher ユーザー インターフェイスを使用すると、数千の Kubernetes クラスターとノードを管理できます。

コンテナ船

コンテナシップは、マルチクラウド Kubernetes インフラストラクチャのデプロイと管理を可能にするためのものです。単一のツールからパブリック、プライベート クラウド、オンプレミス環境で柔軟に運用できます。これにより、すべての主要なクラウド プロバイダーにわたって Kubernetes クラスターのプロビジョニング、管理、監視が可能になります。

コンテナシップは、プロビジョニング用の Terraform、モニタリング用の Prometheus、ネットワーキングとポリシー管理用の Calico などのクラウドネイティブ ツールを使用して構築されます。これは、標準的な Kubernetes 上に構築されています。 Containership プラットフォームは、直感的なダッシュボードに加えて、複雑な自動化のための強力な REST API を提供します。

特徴

  • マルチクラウドダッシュボード
  • 監査ログ
  • GPUインスタンスのサポート
  • 無停止アップグレード
  • スケジュール可能なマスター
  • 統合されたメトリクス
  • リアルタイムロギング
  • ゼロダウンタイムの導入
  • 永続ストレージのサポート
  • プライベートレジストリのサポート
  • ワークロードの自動スケーリング
  • SSHキー管理

AZK

AZK は 、マニフェスト ファイル (Azkfile.js) を介した開発環境用のオープンソース オーケストレーション ツールであり、開発者がさまざまなオープン ソース テクノロジを使用して Web アプリケーションを開発するために一般的に使用されるツールをインストール、構成、実行するのに役立ちます。

AZK は仮想マシンの代わりにコンテナを使用します。コンテナーは仮想マシンに似ており、パフォーマンスが向上し、物理リソースの消費量が少なくなります。

Azkfile.js ファイルを再利用して、新しいコンポーネントを追加したり、新しいコンポーネントを最初から作成したりできます。共有できるため、異なるプログラマのマシンの開発環境間で完全な同等性が確保され、展開中のバグの可能性が減ります。

GKE

GKE は、 Google Cloud Platform 上でコンテナ アプリケーション オーケストレーションのためのフルマネージド ソリューションを提供します。 GKE クラスタは Kubernetes を利用しています。 Kubernetes CLI を使用してクラスターと対話できます。 Kubernetes コマンドを使用して、アプリケーションのデプロイと管理、管理タスクの実行、ポリシーの設定、デプロイされたワークロードの健全性の監視を行うことができます。

Google Cloud の高度な管理機能は、Google Cloud のロード バランシング、ノード プール、ノードの自動スケーリング、自動アップグレード、ノードの自動修復、ロギング、Google Cloud のオペレーション スイートによるモニタリングなどの GKE クラスタでも利用できます。

Google Cloud は、アプリケーション コンテナの構築と提供に役立つ CI / CD ツールを提供します。 Cloud Build を使用すると、さまざまなソース コード リポジトリからコンテナ イメージ(Docker など)を構築でき、Container Registry を使用してコンテナ イメージを保存できます。

GKE は、事前に構築されたデプロイ テンプレートを備えたエンタープライズ対応のソリューションです。

GKE の学習に興味がありますか?この 初心者向けコース をご覧ください。

AKS

AKS は、Azure が提供するフルマネージド Kubernetes サービスであり、サーバーレス Kubernetes、セキュリティ、ガバナンスを提供します。 AKS は Kubernetes クラスターを管理し、コンテナー化されたアプリケーションを簡単にデプロイできるようにします。 AKS は、すべての Kubernetes マスターとノードを自動的に構成します。エージェント ノードの管理と保守のみが必要です。

AKS は無料です。料金はクラスター内のエージェント ノードに対してのみ発生し、マスターに対しては発生しません。 AKS クラスターは、Azure portal またはプログラムで作成できます。 Azure は、高度なネットワーキング、Azure Active Directory 統合、Azure Monitor を使用した監視などの追加機能もサポートしています。

AKS は Windows Server コンテナーもサポートします。そのクラスターとデプロイされたアプリケーションのパフォーマンスは、Azure Monitor から監視できます。ログは Azure Log Analytics ワークスペースに保存されます。

AKS は Kubernetes 準拠として認定されています。

AWS EKS

AWS EKS は 、フルマネージド型の Kubernetes サービスです。 AWS では、コンテナ用のサーバーレス コンピューティングである AWS Fragrate を使用して EKS クラスターを実行できます。 Fragrance を使用すると、サーバーのプロビジョニングと管理の必要性がなくなり、アプリケーションごとのリソースごとの支払いが可能になります。

AWS では、Amazon CloudWatch、Amazon Virtual Private Cloud (VPC)、AWS Identity、Auto Scaling Groups、Access Management (IAM) などの追加機能を EKS で使用し、アプリケーションの監視、スケール、負荷分散を行うことができます。 EKS は AWS アプリ メッシュと統合し、Kubernetes のネイティブ エクスペリエンスを提供します。 EKS は最新の Kubernetes を実行し、Kubernetes 準拠として認定されています。

結論

最後に、上記のリストでさまざまなコンテナ オーケストレーション ツールについて十分に理解していただければ幸いです。今後は、ユース ケースに応じて、最適なツールを選択するのが容易になるでしょう。

次に、Kubernetes 管理ソフトウェアを見つけます。

「 DevOps 用の 14 のコンテナ オーケストレーション ツール」についてわかりやすく解説!絶対に観るべきベスト2動画

GoogleのDocker管理ツール「Kubernetes」基礎の基礎 | 米シリコンバレーCloud DevOpsアーキテクト(CKA)が解説 #docker #kubernetes #gke
今さら聞けない人のためのDevOps超入門 – 2023-9-30 A-7

市場で入手可能な人気のあるコンテナ オーケストレーション ツールのいくつかについて説明しましょう。

コンテナ オーケストレーションとは何ですか?

Docker などのコンテナ プラットフォームは、マイクロサービス アーキテクチャに基づいてアプリケーションをパッケージ化するために、最近非常に人気があります。コンテナーは拡張性が高く、オンデマンドで作成できます。これは少数のコンテナには適していますが、数百ものコンテナがあると想像してください。

需要に応じてコンテナ数が動的に増加すると、コンテナのライフサイクルとその管理が非常に困難になります。

コンテナ オーケストレーションは、コンテナのスケジューリング、デプロイメント、スケーラビリティ、負荷分散、可用性、およびネットワークを自動化することで問題を解決します。コンテナ オーケストレーションは、コンテナとサービスのライフサイクルの自動化と管理です。

これは、複数のコンテナーとマイクロサービス アーキテクチャを大規模に管理および編成するプロセスです。

幸いなことに、市場には多くのコンテナ オーケストレーション ツールが存在します。

それらを調べてみましょう!

DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

Kubernetes

ご想像の通りですよね?

Kubernetes は、 もともと Google によって設計され、現在は Cloud Native Computing Foundation によって維持されているオープンソース プラットフォームです。 Kubernetes は、宣言型構成と自動化の両方をサポートしています。コンテナ化されたワークロードとサービスの展開、スケーリング、管理を自動化するのに役立ちます。

Kubernetes API は、ユーザー、クラスター コンポーネント、および外部サードパーティ コンポーネント間の通信を確立するのに役立ちます。 Kubernetes コントロール プレーンとノードは、クラスターを形成するノードのグループ上で実行されます。アプリケーションのワークロードは、ワーカー ノード上で実行される 1 つ以上のポッドで構成されます。コントロール プレーンはポッドとワーカー ノードを管理します。

Babylon、Booking.com、AppDirect などの企業は、Kubernetes を広く使用しています。

特徴

  • サービスの検出と負荷分散
  • ストレージオーケストレーション
  • 自動化されたロールアウトとロールバック
  • 水平スケーリング
  • シークレットと構成の管理
  • 自己修復
  • バッチ実行
  • IPv4/IPv6デュアルスタック
  • 自動ビン梱包

Kubernetesを学びたいですか?これらの学習リソースを確認してください。

DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

オープンシフト

Redhat は、 OpenShift Container Platform as a Service (PaaS) を提供しています。ハイブリッド クラウド環境の安全でスケーラブルなリソース上でのアプリケーションの自動化に役立ちます。コンテナ化されたアプリケーションを構築、展開、管理するためのエンタープライズ グレードのプラットフォームを提供します。

Redhat エンタープライズ Linux と Kubernetes エンジンに基づいて構築されています。 Openshift には、UI および CLI を介してクラスターを管理するためのさまざまな機能があります。 Redhat は、さらに 2 つのバリエーションで Openshift を提供しています。

  • Openshift Online – Software as a Service (SaaS) として提供
  • OpenShift Dended – マネージド サービスとして提供

Openshift Origin (Origin Community Distribution) は、OpenShift Container Platform、Openshift Online、および OpenShift D dedicated で使用されるオープンソースのアップストリーム コミュニティ プロジェクトです。

DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

遊牧民

Nomad は、オンプレミスとクラウドにわたってコンテナーと非コンテナー化アプリケーションを大規模にデプロイおよび管理するための、シンプルかつ柔軟で使いやすいワークロード オーケストレーターです。 Nomad は、リソース フットプリントが小さい (35 MB) 単一のバイナリとして実行され、macOS、Windows、および Linux でサポートされます。

開発者は、宣言型コードとしてのインフラストラクチャ (IaC) を使用してアプリケーションをデプロイし、アプリケーションのデプロイ方法を定義します。 Nomad はアプリケーションを障害から自動的に回復します。

Nomad あらゆるタイプのアプリケーション (コンテナーだけでなく) をオーケストレーションします。 Docker、Windows、Java、VM などに対するファーストクラスのサポートを提供します。

特徴

  • シンプルかつ信頼性の高い
  • 書き換えを行わずにレガシー アプリケーションを最新化する
  • 大規模なフェデレーションを簡単に実現
  • 実証済みのスケーラビリティ
  • マルチクラウドを簡単に
  • Terraform、Consul、Vault とのネイティブ統合
DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

Docker Swarm

Docker Swarm は 宣言型モデルを使用します。サービスの望ましい状態を定義すると、Docker がその状態を維持します。 Docker Enterprise Edition は、Kubernetes と Swarm を統合しました。 Docker は、オーケストレーション エンジンの選択に柔軟性を提供するようになりました。 Docker エンジン CLI は、アプリケーション サービスをデプロイできる Docker エンジンの群を作成するために使用されます。

Docker コマンドは、クラスターと対話するために使用されます。クラスターに参加するマシンはノードと呼ばれ、Swarm マネージャーがクラスターのアクティビティを処理します。

Docker Swarm は 2 つの主要コンポーネントで構成されます。

  • マネージャー – マネージャー ノードは、swarm 内のワーカー ノードにタスクを割り当てます。リーダーは Raft コンセンサス アルゴリズムに基づいて選出されます。リーダーは、群れのすべての管理とタスク オーケストレーションの決定を処理します。
  • ワーカー ノード – ワーカー ノードはマネージャー ノードからタスクを受け取り、それらを実行します。

特徴

  • Docker Engineと統合されたクラスター管理
  • 分散型設計
  • 宣言型サービスモデル
  • スケーリング
  • 望ましい状態の調整
  • マルチホストネットワーキング
  • サービスディスカバリ
  • 負荷分散
  • デフォルトで安全
  • ローリングアップデート
DevOps 用の 14 のコンテナ オーケストレーション ツール
DevOps 用の 14 のコンテナ オーケストレーション ツール

Docker Compose

Docker Compose は、連携して動作するマルチコンテナー アプリケーションを定義して実行するためのものです。 Docker-compose は、ソフトウェアの依存関係を共有し、一緒に調整および拡張される相互接続されたサービスのグループを記述します。

YAML ファイル ( dockerfile ) を使用して、アプリケーションのサービスを構成できます。次に、 docker-compose up コマンドを使用して、構成からすべてのサービスを作成して開始します。

docker-compose.yml は次のようになります。

 version: '3'
volumes:
  app_data:
services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0
    ports:
      - 9200:9200
      - 9300:9300
    volumes:
      - ./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - ./elastic-certificates.p12:/usr/share/elasticsearch/config/elastic-certificates.p12
      - ./docker-data-volumes/elasticsearch:/usr/share/elasticsearch/data

  kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana:6.8.0
    ports:
      - 5601:5601
    volumes:
      - ./kibana.yml:/usr/share/kibana/config/kibana.yml
  app:
    depends_on:
      - elasticsearch
    image: asadali08527/app:latest
    ports:
      - 8080:8080
    volumes:
      - app_data:/var/lib/app/

Docker Compose を使用すると、内部ネットワークを使用して通信する複数の独立して実行されるサービスにアプリ コードを組み込むことができます。このツールは、アプリケーションのライフサイクル全体を管理するための CLI を提供します。 Docker Compose は従来、開発とテストのワークフローに重点を置いてきましたが、現在はより本番指向の機能に重点を置いています。

Docker Engine は、Docker Machine または Docker Swarm クラスター全体でプロビジョニングされたスタンドアロン インスタンスである場合があります。

特徴

  • 単一ホスト上の複数の隔離された環境
  • コンテナ作成時にボリュームデータを保存する
  • 変更されたコンテナのみを再作成する
  • 変数と環境間でのコンポジションの移動

ミニキューブ

Minikube を 使用すると、ユーザーは Kubernetes をローカルで実行できます。 Minikube を使用すると、パーソナル コンピューター上の単一ノード Kubernetes クラスター内でアプリケーションをローカルにテストできます。 Minikube には、Kubernetes ダッシュボードのサポートが統合されています。

Minikube は Kubernetes の最新の安定リリースを実行し、次の機能をサポートします。

  • ロードバランシング
  • マルチクラスター
  • 永続ボリューム
  • ノードポート
  • ConfigMap とシークレット
  • コンテナー ランタイム: Docker、CRI-O、およびコンテナー
  • CNI (コンテナネットワークインターフェース) の有効化

マラソン

マラソンは、 アプリとフレームワークを調整する機能を備えた Apache Mesos 用です。

Apache Mesos は、オープンソースのクラスター マネージャーです。 Mesos は、コンテナ化されたワークロードとコンテナ化されていないワークロードの両方を実行できる機能を備えた Apache によるプロジェクトです。 Mesos クラスターの主なコンポーネントは、Mesos エージェント ノード、Mesos マスター、ZooKeeper、フレームワークです。フレームワークはマスターと連携して、エージェント ノードにタスクをスケジュールします。ユーザーは、Marathon フレームワークを操作してジョブをスケジュールします。

マラソン スケジューラは、ZooKeeper を使用して、タスクを送信する現在のマスターを見つけます。マラソン スケジューラと Mesos マスターには、高可用性を確保するために実行されるセカンダリ マスターがあります。クライアントは、REST API を使用してマラソンと対話します。

特徴

  • 高可用性
  • ステートフル アプリ
  • 美しく強力なUI
  • 制約
  • サービスの検出と負荷分散
  • ヘルスチェック
  • イベントのサブスクリプション
  • メトリクス
  • REST API

クラウド化

Cloudify は 、コンテナーとマイクロサービスのデプロイの自動化とライフサイクル管理のためのオープンソースのクラウド オーケストレーション ツールです。オンデマンドのクラスター、自動修復、インフラストラクチャ レベルでのスケーリングなどの機能を提供します。 Cloudify は、コンテナ インフラストラクチャを管理し、コンテナ プラットフォーム上で実行されるサービスをオーケストレーションできます。

以下を含む Docker および Docker ベースのコンテナー マネージャーと簡単に統合できます。

  • ドッカー
  • Docker Swarm
  • Docker Compose
  • Kubernetes
  • Apache メソス

Cloudify は、コンテナー クラスターの作成、修復、スケーリング、および破棄に役立ちます。コンテナ オーケストレーションは、コンテナ マネージャーを実行できるスケーラブルで可用性の高いインフラストラクチャを提供する上で鍵となります。 Cloudify は、プラットフォーム間で異種サービスを調整する機能を提供します。 CLI と Cloudify Manager を使用してアプリケーションをデプロイできます。

牧場主

Rancher は 、Cattle として知られるコンテナ オーケストレーションを使用するオープンソース プラットフォームです。 Kubernetes、Swarm、Mesos などのオーケストレーション サービスを活用できます。 Rancher はコンテナの管理に必要なソフトウェアを提供するため、組織は一連の個別のオープン ソース テクノロジを使用してコンテナ サービス プラットフォームを最初から構築する必要がありません。

Rancher 2.x を使用すると、顧客が指定したプロバイダー上で実行されている Kubernetes クラスターを管理できます。

Rancher を使い始めるには 2 つのステップがあります。

Linux ホストを準備する

64 ビット Ubuntu 16.04 または 18.04 (または別のサポートされている Linux ディストリビューションと少なくとも 4 GB のメモリを備えた Linux ホストを準備します。サポートされているバージョンの Docker をホストにインストールします。

サーバーを起動します

Rancher をインストールして実行するには、ホスト上で次の Docker コマンドを実行します。

 $ sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher

Rancher ユーザー インターフェイスを使用すると、数千の Kubernetes クラスターとノードを管理できます。

コンテナ船

コンテナシップは、マルチクラウド Kubernetes インフラストラクチャのデプロイと管理を可能にするためのものです。単一のツールからパブリック、プライベート クラウド、オンプレミス環境で柔軟に運用できます。これにより、すべての主要なクラウド プロバイダーにわたって Kubernetes クラスターのプロビジョニング、管理、監視が可能になります。

コンテナシップは、プロビジョニング用の Terraform、モニタリング用の Prometheus、ネットワーキングとポリシー管理用の Calico などのクラウドネイティブ ツールを使用して構築されます。これは、標準的な Kubernetes 上に構築されています。 Containership プラットフォームは、直感的なダッシュボードに加えて、複雑な自動化のための強力な REST API を提供します。

特徴

  • マルチクラウドダッシュボード
  • 監査ログ
  • GPUインスタンスのサポート
  • 無停止アップグレード
  • スケジュール可能なマスター
  • 統合されたメトリクス
  • リアルタイムロギング
  • ゼロダウンタイムの導入
  • 永続ストレージのサポート
  • プライベートレジストリのサポート
  • ワークロードの自動スケーリング
  • SSHキー管理

AZK

AZK は 、マニフェスト ファイル (Azkfile.js) を介した開発環境用のオープンソース オーケストレーション ツールであり、開発者がさまざまなオープン ソース テクノロジを使用して Web アプリケーションを開発するために一般的に使用されるツールをインストール、構成、実行するのに役立ちます。

AZK は仮想マシンの代わりにコンテナを使用します。コンテナーは仮想マシンに似ており、パフォーマンスが向上し、物理リソースの消費量が少なくなります。

Azkfile.js ファイルを再利用して、新しいコンポーネントを追加したり、新しいコンポーネントを最初から作成したりできます。共有できるため、異なるプログラマのマシンの開発環境間で完全な同等性が確保され、展開中のバグの可能性が減ります。

GKE

GKE は、 Google Cloud Platform 上でコンテナ アプリケーション オーケストレーションのためのフルマネージド ソリューションを提供します。 GKE クラスタは Kubernetes を利用しています。 Kubernetes CLI を使用してクラスターと対話できます。 Kubernetes コマンドを使用して、アプリケーションのデプロイと管理、管理タスクの実行、ポリシーの設定、デプロイされたワークロードの健全性の監視を行うことができます。

Google Cloud の高度な管理機能は、Google Cloud のロード バランシング、ノード プール、ノードの自動スケーリング、自動アップグレード、ノードの自動修復、ロギング、Google Cloud のオペレーション スイートによるモニタリングなどの GKE クラスタでも利用できます。

Google Cloud は、アプリケーション コンテナの構築と提供に役立つ CI / CD ツールを提供します。 Cloud Build を使用すると、さまざまなソース コード リポジトリからコンテナ イメージ(Docker など)を構築でき、Container Registry を使用してコンテナ イメージを保存できます。

GKE は、事前に構築されたデプロイ テンプレートを備えたエンタープライズ対応のソリューションです。

GKE の学習に興味がありますか?この 初心者向けコース をご覧ください。

AKS

AKS は、Azure が提供するフルマネージド Kubernetes サービスであり、サーバーレス Kubernetes、セキュリティ、ガバナンスを提供します。 AKS は Kubernetes クラスターを管理し、コンテナー化されたアプリケーションを簡単にデプロイできるようにします。 AKS は、すべての Kubernetes マスターとノードを自動的に構成します。エージェント ノードの管理と保守のみが必要です。

AKS は無料です。料金はクラスター内のエージェント ノードに対してのみ発生し、マスターに対しては発生しません。 AKS クラスターは、Azure portal またはプログラムで作成できます。 Azure は、高度なネットワーキング、Azure Active Directory 統合、Azure Monitor を使用した監視などの追加機能もサポートしています。

AKS は Windows Server コンテナーもサポートします。そのクラスターとデプロイされたアプリケーションのパフォーマンスは、Azure Monitor から監視できます。ログは Azure Log Analytics ワークスペースに保存されます。

AKS は Kubernetes 準拠として認定されています。

AWS EKS

AWS EKS は 、フルマネージド型の Kubernetes サービスです。 AWS では、コンテナ用のサーバーレス コンピューティングである AWS Fragrate を使用して EKS クラスターを実行できます。 Fragrance を使用すると、サーバーのプロビジョニングと管理の必要性がなくなり、アプリケーションごとのリソースごとの支払いが可能になります。

AWS では、Amazon CloudWatch、Amazon Virtual Private Cloud (VPC)、AWS Identity、Auto Scaling Groups、Access Management (IAM) などの追加機能を EKS で使用し、アプリケーションの監視、スケール、負荷分散を行うことができます。 EKS は AWS アプリ メッシュと統合し、Kubernetes のネイティブ エクスペリエンスを提供します。 EKS は最新の Kubernetes を実行し、Kubernetes 準拠として認定されています。

結論

最後に、上記のリストでさまざまなコンテナ オーケストレーション ツールについて十分に理解していただければ幸いです。今後は、ユース ケースに応じて、最適なツールを選択するのが容易になるでしょう。

次に、Kubernetes 管理ソフトウェアを見つけます。

「 DevOps 用の 14 のコンテナ オーケストレーション ツール」についてわかりやすく解説!絶対に観るべきベスト2動画

GoogleのDocker管理ツール「Kubernetes」基礎の基礎 | 米シリコンバレーCloud DevOpsアーキテクト(CKA)が解説 #docker #kubernetes #gke
今さら聞けない人のためのDevOps超入門 – 2023-9-30 A-7