はじめに
「DXを売る」シリーズを担当しているサイオステクノロジーの長谷川です。
前回はサイドカーについて説明しましたが、今回はコンテナ向けオペレーティングシステム(OS)についてです。
一般のLinuxではダメなの? なぜこんなOSが必要なの? という疑問について調べてみました。エンジニアの方は、このSIOSDXのテクノロジーBlogの記事「セキュアなコンテナホストOSについて調べてみた」を見ていただければと思いますが、今回は営業向けに纏めますね。
第一回記事:「DXを売る」IT営業が気を付けるべき7つのポイント
第二回記事:「DXを売る」”DXに関心を持たせる” 営業トーク 」
第三回記事:「DXを売る」営業の”知ったかぶりコンテナ・トーク”」
第四回記事:「DXを売る」”IT自動化とDX推進を繋げる5つのポイント”
第五回記事:「DXを売る」営業の素朴な疑問 ”コンテナってどこでも動くの?”
第六回記事:「DXを売る」営業の素朴な疑問 ”サイドカーって何モノ?”
第七回記事:「DXを売る」営業の素朴な疑問 ”コンテナ向けOSって何?”
第八回記事:「DXを売る」DX営業”OpenShiftの特徴を説明できる?”(1/2)
第九回記事:「DXを売る」DX営業”OpenShiftの特徴を説明できる?”(2/2)
第10回記事:「DXを売る」DX営業 ”サービスメッシュ” を説明できる?
第11回記事:「DXを売る」DX営業 ”API連携とは何?”を理解する
第12回記事:「DXを売る」DX営業 ”APIマネージメントとは?” を理解する!
第13回記事:「DXを売る」DX営業 ”K8sの機能を理解する”!
第14回記事:「DXを売る」DX営業 ”Podmanを知っている?”
第15回記事:「DXを売る」DX営業 ”Pod”についての理解
【疑問1】何故コンテナ向けOSが必要なのか?
コンテナプラットフォームであるKubernetesは、Red Hat Enterprise Linux(RHEL)やUbuntu, CentOS、Debianなどの様々なLinuxで動作します。なので別にコンテナ向けOSなんて要らないといえば要らないのですが、システムを動かすうえで余分な機能が無い方が軽くて動作が速くなります。以前のBlogでも紹介しましたが、一般の仮想化技術よりもコンテナは軽量に作られています。であれば、OSもコンテナが動くだけに絞ったものにすればバランスもよくなりますよね。

話は変わりますが、私の息子が幼い時に見ていたガンダムSEEDを思い出しました。危機が迫って偶然に搭乗したキラ少年がストライクガンダムを動かそうとするのですが、OSが重たくてガンダムが機敏に動けません。キラはとっさにガンダムのOSを変更していきます。OSが軽くなったのか最適されたのかは不明ですが、ストライクガンダムは急に機敏に動き始めます。(私はこのシーンが一番好きなのです)
だいぶ脱線してしまいましたが、コンテナ向けOSは、コンテナが稼働する最低限の構成のみとなっており、とても軽量となっています。
参考までに、汎用のLinuxをインストール時に最小構成を選んだとしても、コンテナの稼働に必要のないパッケージもインストールされてしまいますので、コンテナ利用に最適な軽量化にはできません。
*最低限のパッケージで構成されている
*リソースの空き容量が大きくなり、多くのコンテナを起動できます
【疑問2】コンテナ向けOSの特徴って軽いだけ?
答えはNOです。
疑問1にも記述しましたが、汎用のLinuxを最小構成でインストールしてもコンテナで利用する以外のパッケージがインストールされます。余分なモジュールがあるということは、セキュリティの観点でもリスクが増えることになりますので、管理運用上の課題が発生することになります。
コンテナ向けOSを利用することで、
*セキュリティアップデートの負荷が軽くなる

【疑問3】コンテナ向けOSだけで大丈夫? 汎用Linuxは不要?
きっと大丈夫です。
例えば、Red HatのOpenShift製品にはコンテナ向けOSであるCoreOSが同梱されていますので、CoreOS上にOpenShiftをインストールすればよいことになります。
ただ、汎用Linux(例えばRed Hat Enterprise Linux)を利用したほうがよい場合があります。なぜなら、コンテナ専用OSにはコンテナを稼働させるための最低限の機能しか搭載していないからです。

以上からわかるように、コンテナ毎にLinuxを用意することなしに、同一Linux上に複数のコンテナやPodを動かすことができます。
VMwareのように仮想マシン毎にゲストOSを用意するものとは異なります。
【疑問4】Red Hat社のコンテナ向けOSとは?
CoreOS(コアOS)といいます。正式名称は、RED HAT ENTERPRISE LINUX COREOS (RHCOS)です。
このCoreOSはLinuxカーネル上で開発されたOSSのオペレーティングシステムです。しかもDockerコンテナを動かすために開発されていますので、そのための最小限の機能を搭載しながらも、ユーザーが拡張や管理が容易になるように作られています。
Red HatがCoreOSを採用するまでの経緯があります。
Red Hat社が2018年にCoreOS社を買収するまでは、Red HatではFedora Atomic HostベースのRHEL Atomic Hostというコンテナ向けOSをリリースしていました。
CoreOS(当時は、Container Linuxという名称)とRHEL Atomic Hostとは類似点も多く、カバーする領域も重なっていることが多いことからCoreOS社を買収して、Red Hat Enterprise Linux(RHEL)CoreOSとして統合されました。
【疑問5】CoreOSは購入できるのか?
疑問3に記述しましたが、Red Hat OpenShiftを購入すればCoreOSが含まれていますので、購入する必要はありません。
ただし、Red Hat Enterprise Linux(RHEL)にはCoreOSは含まれていませんのでご注意を!
また、コミュニティ版のCoreOSには、Fedora CoreOSがありますが、RHEL CoreOSとは多少異なる可能性があるので要注意です。
【まとめ】
- コンテナを快適に効率よく利用するならコンテナ向けOSを利用する
- Red Hat OpenShiftを購入すれば、CoreOSが含まれているので別途RHELを購入する必要はない
- 汎用LinuxであるRed Hat Enterprise Linux(RHEL)には、CoreOSは含まれていない。
以上、
今回のBlogの内容はお役に立ちましたでしょうか?
今後のBlog記事に関するご要望や実際のビジネスでのご相談事などございましたらお問合せいただきますようお願いいたします。最後まで読んでいただきありがとうございました。