Skip to main content

DockerとKubernetes

ソフトウェアの開発、テストを行ったコンピューティング環境から別のコンピューティング環境に移行する場合、サポートするソフトウェア環境が同一でないと、問題が発生する可能性があります(たとえば、ノートパソコンで開発したソフトウェアを仮想マシン(VM)に移行したり、LinuxをWindowsオペレーティングシステムに移行したりする場合など)。

ソフトウェアコンテナを使用することで、アプリケーションを一つの環境から別の環境に移動するときに発生する可能性のある移行の問題を解決できます。  

コンテナでは、アプリケーションを単一のバンドルと、その実行に必要な関連バイナリ、ライブラリ、設定ファイル、および任意の依存関係がカプセル化されます。 コンテナを使用すると、小さなマイクロサービスや大きなアプリケーションを実行できます。 

コンテナの一般的なユースケースは、以下のようなものです。

  • 既存のアプリケーションのリフトアンドシフトを行い、最新のクラウドアーキテクチャに移行する。 
  • 反復的なジョブやタスクを新しいコンテナですばやく処理する。 

一般的なコンテナエンジンソフトウェアには、以下のようなものがあります。

  • Docker 
  • AWS Fargate 
  • LXC Linux Containers  
  • Rkt 
  • Apache Mesos 

Docker

Dockerエンジンは、アプリケーションを開発し、コンテナ化するオープンソースのコンテナ化テクノロジーです。  

アプリケーションの高速かつ安定した配信、デプロイメント、スケーリングに活用でき、同じハードウェアで多数のワークロードを実行できます。 

Dockerエンジンでは、REST API通信を利用したDockerクライアントとDockerデーモン(Docker Host)によるクライアントサーバーアーキテクチャが採用されています。 Dockerレジストリ(Docker Hub)には、パブリックおよびプライベートのDockerイメージが保存されます。  

Docker build architecture
この図では、Dockerユーザーはコマンドラインインターフェイス(CLI)(クライアント)を介してDockerと通信し、ビルド、プル、プッシュ、およびその他のDockerコマンドをDockerデーモンに発行できます。 ローカルディスクのイメージが最新でない場合は、DockerデーモンはDocker HubからDockerイメージをプルします。それ以外の場合は、ディスクからローカルイメージを取得し、クライアントのリクエストに応じてコンテナイメージを構築します。  

Pega Platformをインストールする場合は、Webサーバーとデータベースサーバーを使用する必要があります。 これらのサーバーはそれぞれ独自のコンテナで実行されます。1つはアプリケーションサーバー用で、もう1つはデータベースサーバー用です。 最初のコンテナにはデータベースサーバーと必要なライブラリ、およびその他のコンポーネントが収められています。 2番目のコンテナには、Tomcatアプリケーションサーバーとデータベース接続用のデータベースドライバーライブラリーファイルがインストールされます。  

Pega Platform™のインストールの例では、Dockerなどのコンテナを使用した場合、以下の利点があります。

  • ワークロードのバランスに基づいて、Webサーバーを自動的にスケールアップまたはスケールダウンできます。
  • 古いサーバーに障害が発生した場合、自動的に新しいWebサーバーを作成できます。
  • コンテナの状態をモニタリングできます。

コンテナのオーケストレーション

コンテナオーケストレーションは、パイプラインのコンテナの数が大幅に増加したときに、特に継続的インテグレーションと継続的デリバリー(CI/CD)パイプラインで威力を発揮します。 コンテナオーケストレーションにより、自動化コンテナの管理、スケジュール、負荷分散、ネットワーク化、およびモニタリングが可能になります。

一般的なコンテナオーケストレーションツールには、以下のようなものがあります。

  • Kubernetes
  • Docker Swarm
  • Apache Mesos

Kubernetes

Kubernetesは、コンテナのデプロイメント、スケーリング管理を自動化するオープンソースのコンテナオーケストレーションエンジンとなります。 オープンソースプロジェクトはCloud Native Computing Foundation(CNCF)によってホスティングされます。

Pega PlatformのオーケストレーションのコンテキストでKubernetesに使用されるいくつかの用語について理解しておきましょう。

Pega Platformのオーケストレーションは、「Pods」から始まります。「Pods」は、Pegaが提供するDockerイメージです。 Kubernetesを使って「Pods」の論理セットと、それにアクセスするためのポリシーを定義できます。 外部アクセスは「Ingress」を使用して管理することもできます。 Kubernetesでは、「ConfigMap」を使用した設定変更もサポートされており、prconfig.xmlファイルなどのXMLベースのオブジェクトを利用できます。

Kubernetes
この図では、ロードバランサーまたはKubernetesイングレスが公開されたPegaノードに接続して、ユーザーがクラスターにアクセスできるようにします。 デフォルトでは、Pegaは3層のPegaノード(Web、Batch、Stream)でデプロイされます。 Podは、レプリカセットによって定義された一意の構成を持つ1つ以上のコンテナで構成されるスケーラブルな単位です。 Dockerイメージは、これらの各コンテナで実行されます。

このトピックは、下記のモジュールにも含まれています。

If you are having problems with your training, please review the Pega Academy Support FAQs.

このコンテンツは役に立ちましたか?

改善できるところはありますか?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice