未解決
1 Rookie
•
67 メッセージ
1
318
コンテナ事始め(1) OpenShiftをサクっと試してみよう!
こんにちは。デル・テクノロジーズでクラウド、コンテナ関連を担当している平原です。ここ最近お客様と会話をしていると、仮想化環境を取り巻く状況から開発者だけでなく、普段からお付き合いが多いIT担当者の方からもコンテナ、Kubernetes (以下K8s) に関する問い合わせを多く受けるようになりました。とはいえ、最早当たり前の技術として受け入れられている仮想化と異なり、コンテナ技術はまだこれから勉強していくという段階のようにも見受けられます。私もなのですが、新しい技術は何よりも触って覚えるのが手っ取り早いのですが、そうは言ってもOSSがベースでカッチリとしたものが少ないコンテナ環境を一から作るというのはなかなか大変なことです。
そこで今回は当社マルチクラウド関連製品でも緊密な開発関係を持っているパートナー様の一つであるRed Hat社のOpenShiftを使ってコンテナを体験してみようと思います。
現在、当社はOpenShift関連製品としてAPEX Cloud Platform for Red Hat OpenShift (以下ACP for RH) を販売しています。これはコンテナ市場で高いシェア実績を誇るRed Hat社の商用KubernetesであるOpenShiftを当社最新ハードウェアに統合し、フルスタックでの迅速確実な導入とシンプルな運用を実現するハイブリッドクラウドプラットフォームです。これによってOpenShift環境を共通レイヤーにしてパブリッククラウドでもオンプレミスでも共通の開発運用体験でコンテナアプリケーションを柔軟に展開できるようになります。
このACP for RHに統合されているRed Hat OpenShiftですが、大きな特徴は手間をかけることなく「使える」コンテナ基盤を導入、維持でき、しっかりとした商用サポートが受けられる点にあると思います。一般的に言われるK8sはコンテナアプリケーションの配備に関わる部分の自動化機能でしかなく、ログ収集や監視の仕組み、開発ツールやミドルウェアとの連携は他のOSSコンポーネントを寄せ集めて、手作業で構築ができる「テッキー」な人向けの技術でした。Red Hat OpenShiftはそんな導入障壁を一般の技術者に向けて大きく下げるものとなっています。
では、そろそろOpenShiftの体験に移ってみたいと思いますが今回はRed Hat社が提供しているDeveloper Sandbox for Red Hat OpenShiftというものを使ってみたいと思います。この利用にはRed Hat社のアカウント登録が必要です。まずは下記サイトにアクセスし、画面右上の人の形をしたログインアイコンをクリックします。今回、私は個人のGmailで登録してみました。手順に従い登録します。
https://developers.redhat.com/developer-sandbox
登録が完了したら「Start your sandbox for free」ボタンをクリックします。
補足情報を入力し「Submit」すると、Red Hat Hybrid Consoleという画面に遷移します。「Get started」ボタンをクリックします。
そうするとsandbox環境の起動メニューにたどり着きます。Red Hat OpenShiftの「Launch」ボタンをクリックします。
「DevSandbox」ボタンをクリックし、ログインします。
OpenShiftコンソールが開きました。ここからコンテナイメージの作成、アプリケーション展開ができるようになります。早速アプリケーションを展開してみましょう。赤丸で囲んだ部分ですが、<登録したアカウント名-dev>という名前になっているはずです。これはプロジェクトと呼ばれるものでK8sではネームスペースに相当します。vSphereで言い換えるとリソースプールみたいなものと考えてください。アプリケーションを展開する時にはどのプロジェクトに展開するかを意識する必要があります。では、赤丸部分のプロジェクトをクリックします。
追加という画面に遷移します。ここからソースコードやコンテナイメージを指定することでアプリケーション展開のためのリソースをOpenShift上に追加していきます。今回は「Gitからのインポート」をクリックします。
次の画面でソースコードを指定するのですが、今回はJavaScriptで書かれたソースコードがGitHubというリポジトリ(ソースコード管理の格納庫)で公開されている下記のサンプルコードを使用します。
https://github.com/sclorg/nodejs-ex
GitリポジトリURLに先ほどのサンプルコードのURLを入力します。URLが正しければ緑色のチェックアイコンが表示されます。またその下にはビルダーイメージとしてNode.jsが検出されたメッセージが表示されています。これはOpenShiftがソースコードから実行に必要なライブラリを含む環境イメージを検出し、これを使用してコンテナイメージとしてアプリケーションをビルドしてくれます。
画面をスクロールします。展開される際のアプリケーション名やポート番号が指定されています。もう一つ重要なのは「routeを作成する」へのチェックです。このチェックが入ることによって指定したポート番号でアプリケーションの外部公開が可能になります。今回はこのまま使用します。「作成」ボタンをクリックします。
トポロジーメニューに画面が遷移します。しばらくするとマップ上に青い丸のアイコンが現れます。この青い丸の部分がPodと呼ばれるものになり、ビルドされたアプリケーションの実体になります。次に赤丸で囲った右上の小さなアイコンをクリックしてみます。
このアイコンにはroute、つまり外部公開のURLが設定されており、ここをクリックすることでウェブ上のアプリケーションにアクセスすることができます。
極めて単純なサンプルではありましたがいかがだったでしょうか?これまでの仮想化環境だと開発者はVMを引き渡されて、本来の自分の仕事でもないゲストOS上への必要なライブラリやミドルウェアを仕方なく?インストールしていたと思いますが、コンテナでの開発ではそんな作業も必要なくなります。開発者はインフラの層を気にする必要なくアプリケーションのコーディングに集中でき、また必要なタイミングで修正をかけることが可能になります。こうした仕組みによって、昨今のモバイルアプリケーションは短期間での不具合修正や機能追加が可能になっている訳です。
コンテナは仮想化の単なる置き換えではありません。コンテナがもたらす俊敏性はビジネスチャンスを逃さないという動機からもIT部門以外からの要求によってその導入は促進されていくでしょう。今回はOpenShiftの操作を通してコンテナアプリケーションの展開をご覧いただきました。なお、下記のリンクに様々なユースケースに基づいたsandbox環境のステップバイステップのガイダンスもあります。英語ベースですが実際にコマンド打ってみて操作を覚えるのにも有用かと思います。次回は私の勉強も兼ねて、自宅にOpenShiftを構築してみたいと思います。