IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

クラウド時代のオープンソース実践活用

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第58回 Docker専用のLinux - RHEL Atomic Hostが登場!(パート1) (中井悦司) 2015年1月

はじめに

 昨年の話になりますが、2014年の年末に、Red Hatから「Red Hat Enterprise Linux Atomic Host」のパブリックベータが公開されました。これは、Dockerを利用するために設計されたLinuxディストリビューションで、物理サーバー、もしくは、仮想マシンにインストールすると、すぐにDockerの利用を開始することができます。

 Dockerのインストールはそれほど難しいものではありませんが、RHEL Atomic Hostでは、Docker専用の環境として、ディスクイメージ保存領域などが最適化された状態でインストールが行われます。今回から2回に渡り、RHEL Atomic Hostが通常のRHELとどのように違うのか、その具体的な構成を紹介していきます。

RHEL Atomic Hostのバージョン管理

 現在、ベータ版として公開されているRHEL Atomic Hostに含まれるパッケージ群は、RHEL7をベースとしています。RHEL7のパッケージ群の中から、Dockerの実行に必要なパッケージを抽出して、さらに、Kubernetesで管理するための前提パッケージなどが追加されています。そのため、RHEL Atomic Hostのバージョンは、ベースとなるRHELに合わせて、「7.0.0」が初期バージョンとなっており、現在は、マイナーバージョン「7.0.1」がリリースされています。

 ただし、RPMパッケージを個別にインストールして管理するわけではありません。RHEL Atomic Hostには、なんと(!)yumコマンドが入っておらず、RPMパッケージの個別管理はできません。Docker専用環境のため、RPMパッケージを追加・削除するようなカスタマイズは、そもそも必要ないという発想なのです。

 RHEL Atomic Hostをバージョンアップする際は、rpm-ostreeという仕組みを利用します。これは、ファイルシステムに含まれるディレクトリーツリー全体の構成をまるごと切り替える仕組みです。たとえば、「7.0.0」と「7.0.1」の両方の内容をハードディスク内のリポジトリー領域に保存しておき、それぞれのバージョンは、別々のディレクトリー上に展開されます。(図1)。システムを起動する際は、chroot機能により、指定バージョンのディレクトリーをルートファイルシステムに切り替えます。

fig01

図1 rpm-ostreeによるバージョンの切り替え

 ソースコードのバージョン管理システム「Git」をご存知の方であれば、特定バージョンのコードをチェックアウトする操作を思い浮かべるとよいかも知れません。図1の「デプロイ」の処理がコードの「チェックアウト」に対応するような感覚です。

 なお、デプロイされたファイルは、実際には、リポジトリ内のファイルへのハードリンクになっており、複数バージョンで共通のファイルは1つのファイルとしてリポジトリ保存するなど、ディスク容量を無駄に消費しない仕組みが取り入れられています。具体的な操作手順については、筆者のBlogを参考にしてください(*1)。

DevとOpsの責任分界点を明確化するDocker

 RHEL Atomic Hostでは、RPMパッケージを個別に管理する必要がないため、OSの管理が非常に簡素化されます。利用環境に応じたカスタマイズを一切考える必要がありません。これは、Docker専用OSだからこそ実現できたことかも知れません。

 一般的なOS環境では、アプリケーションの実行に必要なライブラリーやミドルウェアは、OS側で管理する必要があります。つまり、OS上で利用するアプリケーションに応じた、個別のカスタマイズが必要になります。一方、Dockerの場合は、アプリケーションが必要とするライブラリーなど、アプリケーションの実行環境は、すべてまとめてDockerイメージに閉じ込められています。

 これにより、「アプリケーションが使うライブラリーのバージョンが間違ってインストールされていた!」というようなトラブルを回避することが可能になります。アプリケーションの実行に必要な環境は、アプリケーションの開発者自身が責任を持ってDockerイメージとして用意しておき、運用担当者は、RHEL Atomic HostにDockerイメージを展開するだけで、アプリケーションのデプロイが完了します。開発者と運用担当者の役割を明確に分離することで、開発と運用のスムーズな連携 ―― いわゆる「DevOps」が推進されることになります。

次回予告

 今回は、RHEL Atomic Hostのバージョン管理方式を紹介しました。次回は、Docker専用環境としての独自のチューニングについて紹介したいと思います。

参考資料

(*1) 「RHEL Atomic Hostのバージョン管理方式

 

++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
 CTC教育サービス Linuxのページ
 http://www.school.ctc-g.co.jp/linux/
 

Linux研修トレーニングならCTC教育サービス


 

筆者書籍紹介

Software Design plusシリーズ
「独習Linux専科」サーバ構築/運用/管理
  ――あなたに伝えたい技と知恵と鉄則

本物の基礎を学ぶ!新定番のLinux独習書

中井悦司 著
B5変形判/384ページ
定価3,129円(本体2,980円)
ISBN 978-4-7741-5937-9
詳しくはこちら(出版社WEBサイト)
「独習Linux専科」サーバ構築/運用/管理

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes