連載
» 2016年11月28日 05時00分 公開

OSSのDockerコンテナ環境管理ソフト 注目の5製品紹介 2016年版実際に検証済み!OSS徹底比較(7)Dockerコンテナ環境管理編(6/7 ページ)

[森元敏雄,TIS]

OpenShift originのプロフィール

 Red Hatは2016年8月、Linuxコンテナソリューションのラインアップの拡充を発表した。それに併せてコンテナプラットフォームの主力製品である「OpenShift Enterprise」も「Red Hat OpenShift Container Platform」に改称した。その情報は「レッドハット、エンタープライズグレードのLinuxコンテナ製品を拡充」(@IT)にまとめられている。

 今回評価したのは、「Red Hat OpenShift Container Platform」のコミュニティ版である「OpenShift origin」である。コミュニティー版であるため、「Red Hat OpenShift Container Platform」の最新バージョンの1つ前のバージョンが提供されること、商用製品のみで利用できる機能が一部が利用できないなどの差異が存在する。ただし、OpenShiftのメイン機能であるDokcer環境のクラスタリング、オーバーレイネットワークの構成、リソース監視、コンテナのデプロイ、プライベートDockerリポジトリの管理、ユーザー権限管理などの機能を持ち、Docker環境をPaaSとして利用するための多くの機能が提供されている。

 Docker環境のクラスタリングにはKubernetesが使われている。通常、Kubernetesを使用する場合、オーバーレイネットワークにFlannelが使用されることが多いが、OpenShiftではOpenvSwitchを使用したオーバーレイネットワークを使用している。

 ライセンスはApache License 2.0。2014年11月6日にv0.1としてリリースされ、2016年8月時点の最新バージョンは、商用のOpenShift 3.2に準拠した、2016年7月14日リリースのv1.2.1である。

機能概要

 OpenShift originのv1.2.0から、従来のソースからのビルド、またはLinux向けのバイナリのインストールに加えて、Dockerコンテナ形式、All-On-Oneの仮想マシンイメージが提供された。基本的にはRHELおよび互換OSのCentOS、Fedoraおよび、Docker専用OSであるAtomicHostで動作させることが前提となっている。

 今回はCentOS 7.2をインストールしたサーバを3台準備し、OpenShiftのマスター×1台とノード×2台の構成で検証を行っている。マスターにAnsibleをインストールしてマスターとノード×2を自動構築するため、マスターからノードに対してSSHの鍵認証による接続および、ssh接続後のsudoによるrootへの昇格の権限も設定しておく必要がある。

 インストール時にホスト名の名前解決が行われ、IPアドレスではなく、ホスト名での設定ファイルの作成が行われるため、DNSで名前解決ができる状態としておくことが望ましい。

 インストールの手順はGoogle Cloud Platform 中井悦司氏のブログ記事の「OpenShift Origin構築手順メモ」が非常に詳細に記載されているため、参考にすることをお勧めしたい。検証に使用した環境の構築手順は、以下の弊社技術ブログで公開しているので参考にしていただきたい。

参考リンク:OpenShift originをインストールしてみた(Tech Sketch/TIS)

 OpenShift orignのGitHub上にインストール用のAnsibleのPlaybookが公開されており、こちらをgit cloneでコピーして使用する。

 同じGitHubのサイト上にopenshift-ansible Best Practices Guideが公開されており、それを参考にAnsibleの設定対象となるホスト情報を定義するhostsファイルを作成する。今回作成したhostsファイルは以下となる。

[OSEv3:children]
masters
nodes
[OSEv3:vars]
ansible_ssh_user=root
deployment_type=origin
[masters]
tissvv094
[nodes]
tissvv094 openshift_node_labels="{'region': 'infra',   'zone': 'default'}"
tissvv095 openshift_node_labels="{'region': 'primary', 'zone': 'node01'}"
tissvv096 openshift_node_labels="{'region': 'primary', 'zone': 'node02'}"

 インストール終了後、マスターサーバにログインし、以下のコマンドを実行することでクラスタ構成が完了したことを確認できる。ノードが3台分出力されるのが正常な状態である。

$ sudo su -
# oc login -u system:admin
# oc get node
NAME                                 STATUS    AGE
tissvv094.front02.intra.tistest.jp   Ready     3h
tissvv095.front02.intra.tistest.jp   Ready     11s
tissvv096.front02.intra.tistest.jp   Ready     26m

 さらに以下のコマンドで、プロジェクトとして”test”を作成し、そのプロジェクトに対して稼働確認用のサンプルであるopenshift/deployment-exampleを登録をする。

# oc login
Username: test
Password: test
# oc new-project test
# oc new-app openshift/deployment-example

 ブラウザでマスターサーバの8443ポートに接続すると、OpenShiftのダッシュボードへのログイン画面が表示されので、先ほど使用したtestユーザーでログインする。

 ログインすると先ほど作成したプロジェクトが表示される。

 Overviewに先ほど登録したopenshift/deployment-exampleがサービスとして登録されている。その画面でΛをクリックしてPod数を0→1にすると、openshift/deployment-exampleを構成するコンテナが起動される。

さらに「Λ」をクリックしてPod数を1→3にすると、さらにコンテナが追加される。

 Applicationsで各コンテナがどのノードで動作して、どのIPアドレスが付与されているか確認できる。

 Pod数を3→0に減らすとコンテナは順次停止され、ログが画面上に出力される。OpenShiftのコンテナの起動は、基本的にPod単位で行われ、画面上の操作だけで、起動・停止の制御を行うことができる。

 登録したopenshift/deployment-example以外にも標準で以下のようなPodが利用可能な状態で登録されている。

優位性と劣位性

優位性

  1. 開発に十分な投資が行われるため、今後の機能強化、改善が期待できる
  2. サンプルのPodが充実しており、いろいろな機能を簡単に評価することができる
  3. マルチユーザーに対応しており、設定などの分離が行える

劣位性

  1. 日本語の文献や情報が少なく、公式ガイドの情報が中心となる
  2. インストールの難易度が若干高い
  3. ログなどがあまり出力されないため、問題発生時に追跡が少し難しい

利用シチュエーション

  1. 複数プロジェクト、複数名などで共用する開発、テスト環境
  2. 定型のサービスを複数利用者に提供する環境

 複数のコンテナを組み合わせて1つのサービスとして提供できるPodの機能は非常に利便性が高く、デプロイもボタン1つであるため、運用負荷も軽減されるだろう。最小1台から利用を開始でき、ノードの追加も容易であるため、スモールスタートから拡張していくのに適している。

 Red Hatはコンテナ技術の活用を重要視しており、OpenShiftはさらなる機能強化、改善が期待できると考えられる。ただ、有償製品との差別化も図られており、サポートや、差別化された機能が必要であればライセンスを購入し、「Red Hat OpenShift Container Platform」を使用することも有力な選択肢となるだろう。

 

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。