CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
昨年の話になりますが、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に含まれるパッケージ群は、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機能により、指定バージョンのディレクトリーをルートファイルシステムに切り替えます。
図1 rpm-ostreeによるバージョンの切り替え
ソースコードのバージョン管理システム「Git」をご存知の方であれば、特定バージョンのコードをチェックアウトする操作を思い浮かべるとよいかも知れません。図1の「デプロイ」の処理がコードの「チェックアウト」に対応するような感覚です。
なお、デプロイされたファイルは、実際には、リポジトリ内のファイルへのハードリンクになっており、複数バージョンで共通のファイルは1つのファイルとしてリポジトリ保存するなど、ディスク容量を無駄に消費しない仕組みが取り入れられています。具体的な操作手順については、筆者のBlogを参考にしてください(*1)。
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/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes