IBM Cloud Blog

第3回 『コンテナ技術の「師匠」を目指す人へ、有用なリンク紹介』

記事をシェアする:

オープンソース・ソフトウェア(以下OSS)をコアとした製品のドキュメントには、ITサプライヤーが追加した機能が重点的に解説され、基礎となるOSS技術について、必要最低限しか記述されていない特有の隙間があります。それは、コンテナやKubernetesなどの重厚な機能のソフトウェアほど、その傾向が強いようです。

ユーザーは、コンテナやKubernetesのOSS技術を簡単に導入したくて、製品を購入するのですが、そのコアとなっているOSS技術は一般的基礎知識とみなされ、ITサプライヤーが提供するドキュメントからは十分に得られない隙間があります。

この隙間を埋めるために、時間を掛けずに手っ取り早く、OSSの基礎技術を身に着けるには、どうしたら良いでしょうか?

 

筆者の経験では、ドキュメントだけからは読み取れないことがOSSには沢山あります。そんなOSSのスキルを最短で身に着けるには、良く理解している身近にいる「師匠」から教えてもらうことが、近道と思います。「師匠」に傍らにいてもらい、何でも聞くことができれば、悩んだり調べたりする時間を減らすことができますから、効率よくスキルを獲得することが出来るでしょう。

 

しかし、そんな恵まれた機会は滅多にありません。その代わりに2番目に良い方法は、優れた「師匠」が書いた本や記事を読むことですが、この方法には欠点があります。それは本に書かれていることが、すべてでは無いという点です。それは執筆者の限られた時間、出版社の予算の範囲内のページ数で書かれているため、概要的な範囲から、それ以上深くならないわけです。

 

3番目は、インターネット上に公開されているOSSプロジェクトの技術ドキュメントを、自身で読み解けるようになることです。ただし、これらのドキュメントは基礎知識のあるエンジニアを対象に書かれ、英語である場合が多く、初心者にとっては難解です。時間を必要としますが、この術が身に付けば深い知識と確信を得ることができるでしょう。

 

この攻略法は意外に簡単なものです。まずは目次を見渡して、全体感を把握することです。そして、必要のない文書は読まないことです。良質な英語ドキュメントは、段落(パラグラフ)の先頭行を読むだけで、要点が掴めるように書かれています。この点を活用すれば短時間で必要な情報にたどり着けます。英語の問題は、ブラウザに翻訳機能が付いたものがありますから、上手に活用すれば、正確な翻訳かどうかは別として、短時間に概要を掴むことができるでしょう。

 

それでは、IT業界で「師匠」と呼ばれる人たちが参照しているWebサイトのドキュメントを見てきましょう。Dockerコンテナ、Kubernetes、そして OpenShiftの順に進めていきます。

 

コンテナのビルドについての情報源

最初に、コンテナをビルドする情報から入っていきます。 Red Hatは、Dockerの置き換えを目指して、dockerコマンドの互換であるPodman と コンテナランタイムContainerd互換のCRI-Oへの投資を続け、Dockerと遜色ない優れた機能をもったソフトウェアへと仕上げています。 しかし、その基準となっている機能を抑えておくことは大切だと思います。そこでDocker社のドキュメントを中心に、そして、Red Hat社ならではのドキュメントのリンクを紹介します。

 

Docker コマンドリファレンス

Dockerコマンドのリスト、そして、コンテナのビルドなど実行時のオプションが実行例付きの解説があります。

 

Dockerfile リファレンス

Dockerのイメージをビルドするために、コンテナに含めるモジュール、起動時の環境変数やコマンドなどをDockerfileに記述しなければなりません。このリンクには丁寧な解説があります。

 

Docker ドキュメント日本語化プロジェクト

有志による日本語化プロジェクトによる翻訳です。翻訳の良いところは、日本人にとって英語を読むより日本語は、素早く頭に入ってきます。 機械翻訳ではない自然な日本語は解り易く、理解するための思考にエネルギーを使わなくて済みます。翻訳の残念なところは、原文の英語に比べ、どうしても遅延が発生することですが、それでも十分に役立ちます。

 

Red Hat コンテナイメージについての一般的なガイドライン

このリンクは、OpenShift v3の最後のリリースのドキュメントですが、「コンテナをつくる」ための深い知識が書かれています。例えば、sshdサーバーを起動してはいけない理由などが説明されています。そして、OpenShift固有の考慮点についても必読です。この内容はv4のドキュメントに載っていませんから、v3のサポートが無くなる前に、是非、チェックすることをお勧めします。

 

 

コンテナのセキュリティ

Dockerセキュリティ

Dockerのセキュリティの主要な領域について解説されています。カーネルのセキュリティやネームスペースとcgroupのサポート、Dockerデーモンの攻撃断面、コンテナの抜け穴、カーネルのセキュリティ強化機能など、基本的な知識は知っておくべきでしょう。

 

コンテナイメージ カタログ

Red HatはOSSプロダクトのディストリビューターであると同時に、Linux最大級のOSSセキュリティパッチの提供機関という側面があります。そのノウハウを生かし、Red Hatイメージカタログに脆弱性リスク評価 (Health Indicator)が示されています。

 

 

Kubernetesのスキルを身に着けるリンク

Red Hat OpenShiftやVMware Tanzuを始め、クラウドのKubernetesサービスのコアとなっているCNCF のKubernetesプロジェクトのドキュメントを見ていきます。

 

Kubernetesドキュメント コンセプト

Kubernetesをこれから学びたいと思っている人に、お勧めしたいのは、コンセプトのドキュメントです。このパートでは、基本構造と各コンポーネントの役割、ポッドやノードといった基本的な単語の意味をクイックに把握できます。このパートを読めば、Kubernetesと呼ばれるソフトウェアのコア部分について正しく理解できるでしょう。

 

Kubernetesチュートリアル

全体を見渡せたら、次に具体的なソフトウェアの動作を理解していくのがお勧めです。チュートリアルは、コマンドと実行結果が示されているので、インストールなど環境をセットアップする時間が惜しい時でも読むだけで理解を深めることができます。

 

Kubernetesタスク

いよいよ実際に動かして、機能検証したい段階になってきたら、このタスクのリンクから、Kubernetes APIオブジェクトの設定や動作について、詳細に理解していくことができます。このパートを理解したらKubernetesの認定資格 CKA (Certified Kubernetes Administrator) などにチャレンジする基礎ができたことになります。

 

kubectl コマンド

Kubernetesを運用するにあたって、Kubernetesを管理するコマンドのオプションや使い方を熟知しておくと、効率良く仕事を進めることができます。そこで参考にしたいのが、kubectlコマンドリファレンスです。このリンクの先には、チートシートという目的別にオプションに書き方を整理したリンクがあります。OpenShiftのocコマンドもコアがkubectlなので、このチートシートを利用できますから、SREとして業務を推進する方は、ブックマークすることをお勧めします。

 

Kubernetes API Reference

Kubernetes APIを記述したYAMLを詳細に理解したいと考えるエンジニアにとって大切な情報源がこのリンクです。 YAMLの階層構造を追いながら、APIのキーとバリューの意味を理解していくことができます。Kubernetesで出来ることは、すべて、このドキュメントに集約されています。

 

Kubernetes Blog

Kubernetesをコアとするソフトウェア製品に、今後どのような機能が追加されるかを知ることができる情報源が、このブログのリンクです。 新マイナーバージョンで新たにリリースされる機能の概要、注目のトピックなどの最新の情報を得られます。

 

 

OpenShiftのスキルを身に着けるリンク

OSSプロダクトと比較して、有償製品の優れている点は、チュートリアルやドキュメントが整備されている点です。OpenShiftも日本語に翻訳された親切なドキュメントが豊富にあります。

 

インタラクティブ・チュートリアル

OpenShiftはRed Hatにサブスクリプションの料金を払うか、クラウドのサービスとして利用するか、どちらにしても利用料金の負担が必要になります。 自分自身の技術スキルを向上させたいと願い者にとって、この負担は辛いものがあります。そんな悩みにRed Hatが無料する提供するOpenShiftを動かして学べるWebサイトのリンクはお勧めです。

 

OpenShiftのドキュメント

Kubernetesをコアとして機能拡張したOpenShiftのドキュメントのリンクを紹介します。このリンク先は親切にOpenShiftのバージョンごとにリンクを追うことができ、日本語に翻訳されているコンテンツの比率が高くなっています。また、日本語に翻訳されたドキュメントのリンクも添えておきます。 (日本語ドキュメント) このリンクを参照する前に、前述の「Kubernetes ドキュメント コンセプト」を読んでおくこと理解が早いでしょう。

 

APIリファレンスマニュアル

コアとなっているKubernetesに対して、Red Hatが追加したAPIを知りたい時に、このリンクが役立ちます。KubernetesのAPIは拡張が容易で、OpenShift追加分と一体化して区別が難しいので、このリンクに情報が無い場合は、前述のKubernetes APIのリンクを参照することをお勧めします。

 

OpenShiftというソフトウェアは、DockerやKubernetesの技術の上に成り立っているRed Hatのソフトウェアです。 そのため、その元になっているドキュメントから学ぶことが、高いスキルを身に着けた「師匠(Guru)」と呼ばれる道だと思いますが、みなさんは、どう思われるでしょうか?

 

以上

 

高良 真穂

高良 真穂
日本アイ・ビー・エム株式会社
Hybrid Cloud CTO

 

日本IBMに入社以来、自動車、航空、金融、大学および研究機関などのプロジェクトに参画。基幹系システムから科学計算システムまで、幅広いシステムを手掛ける。現在、IBM Cloud戦略の一環であるKubernetesをコアとしたIBM Cloudサービスやソフトウェア製品を担当。

 

More IBM Cloud Blog stories

【NTTコミュニケーションズ様との共同実証報告】AI時代のネットワーク運用高度化に向けた取り組み

IBM Cloud Blog, オートメーション

システム障害と聞くだけで緊張してしまうのは私だけでしょうか?心理的にも体力的にも負荷が高いこの仕事をAIによって、なんとか楽にならないのか、と誰しもが思っています。そこで、IBMのAIによる運用支援ソリューションであるA ...続きを読む


IBMテクノロジーをフル活用しサービス競争力を大幅に向上させた、証券会社向けサービス「KICSクラウド」とは?

IBM Cloud Blog, IBM Partner Ecosystem

光世証券株式会社(以下、光世証券)は、証券業務を行う事業者向けに、証券基幹業務システムをクラウドで利用できる“KICS クラウド”の提供を開始することを発表しました。KICSクラウドはIBM Cloud環境で稼働している ...続きを読む


700社が効果を実感!コンテンツマネジメントシステム(CMS)を用いたWebサイト運用における課題への最適なアプローチ

IBM Cloud Blog, IBM Partner Ecosystem, デジタル変革(DX)

近年、PC、スマートフォン、タブレット、スマートウォッチなど、デバイスの多様化により、それぞれのデバイスに適した形で情報を配信することや、ユーザー毎に最適な情報を出し分けた配信というものが求められ、Webサイトの管理や更 ...続きを読む