こんにちは、サイオステクノロジーの佐藤です。
この記事では、エンタープライズ向けのコンテナオーケストレーションプラットフォームであるOpenShiftをご紹介します。
OpenShiftとは
OpenShiftとは、コンテナのデプロイメントや管理やスケーリングができるコンテナオーケストレーションツールのデファクトスタンダートとなっているKubernetesをエンタープライズ向けに提供しているRed Hat社の製品です。
OpenShiftの特徴
OpenShiftの特徴やKubernetesとの違いとして、主に以下のことが挙げられます。
- Kubernetesの深い知識がなくてもコンテナ管理できるWebコンソール
- CI/CDツールなど、開発者向けの環境
- 脆弱性対応や不具合サポート
OpenShiftは、多数のオープンソースソフトウェアの組み合わせで構成されています。これにより、Kubernetesを簡単に扱えるように機能拡張されています。
OpenShiftの利点として、Kubernetesの深い知識がなくても簡単に開発や管理・運用が行えるコンソールが用意されていることや、多数のオープンソースソフトウェアの活用により懸念される互換性の不具合や脆弱性に対するサポートを受けられることが挙げられます。
OpenShiftの基本概念
ここでは、コンテナを扱うために必要な概念について簡単に説明します。
コンテナイメージ
コンテナイメージとは、コンテナを起動するためのテンプレートファイルです。
コンテナイメージからコンテナに変換し、ミドルウェアやアプリケーションなどを実行します。
イメージレジストリから取得したり、Containerfileを使って作成することができます。
リソース
コンテナイメージからコンテナを作成するには、リソースを定義する必要があります。
リソースは、jsonまたはyaml形式のファイルを作成、もしくはOpenShiftのWebコンソールからパラメータを入力してファイルを作成することが可能です。
代表的なリソースとして、以下のようなものがあります。
Pod
Podとは、OpenShiftが管理を行う最小単位のリソースです。
1つのPodに対して、1つ以上のコンテナを動かすことができます。
同じPod内のコンテナは、そのPodに割り当てられたCPUやメモリ、IPアドレス、ストレージなどを共有します。
レプリカセット
レプリカセットとは、Podの数を管理するリソースです。
定義したPod数になるように維持します。
デプロイメント
デプロイメントとは、レプリカセットを管理するリソースです。
新しいアプリケーションやバージョンの入れ替えを行う場合など、新しいPodに切り替える機能です。
サービス
サービスとは、同じ機能を持つ複数のPodへのアクセスに対して負荷分散する機能を提供します。
アプリケーションがコンテナを直接呼ぶのではなく、サービスを介して呼ぶことになります。
ルート
ルートとは、サービスリソースをOpenShiftの外部からURLでアクセスさせるために使用するリソースです。
サービスを公開するために必要となります。
おわりに
今回は、簡単にではありますが、Red Hat社が提供するOpenShiftの特徴や基本的な概念について記載しました。
次回は、実際にOpenShiftのWebコンソールを使ってコンテナを動かす方法について紹介します。