Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenShift 101 入門 / Dojo OpenShift101 2020Jan24

OpenShift 101 入門 / Dojo OpenShift101 2020Jan24

2020/01/24(金) IBM Developer Dojo OpenShift 入門
の資料です。

Ca7e4f1680e175e6462a039923e71fc5?s=128

Kyoko Nishito

January 24, 2020
Tweet

Transcript

  1. IBM Developer Dojo OpenShift 101 Kyoko Nishito Developer Advocate Tokyo

    City Team
  2. Kyoko Nishito IBM Developer Advocate 2 KyokoNishito

  3. 本⽇のタイムテーブル 14:00-14:05 (5min) オープニング 14:05-15:00 (55min) OpenShift概要 ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⻄⼾

    京⼦ 15:00-17:00 (120min) OpenShiftワークショップ ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⻄⼾ 京⼦ 17:00-17:30 (30min) クロージング
  4. 学習の⽬的とゴール ⽬的 OpenShift概要について理解する ゴール Watsonを組み込んだWebアプリをOpenShiftで動かす このコースを学ぶ⽅の想定スキル コンテナ実⾏環境を初めて利⽤する⽅

  5. 本⽇の資料 本⽇の資料はこちらからPCにダウンロードお願いし ます。URLをクリックしたり、コマンドをコピペしたりでき ますので、サイトでみるのではなく、ダウンロードをお勧めし ます。 http://ibm.biz/dojo20200124doc

  6. 本イベントでは、 IBM Cloud へのアクセスは上記URLから行ってください • IBM Cloud ログイン アカウントをすでにお持ちの方は、 こちらからログインしてください

    • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】 http://ibm.biz/dojo0124
  7. 事前準備まだお済みでない⽅ 1. IBM Cloudアカウント(無料)の取得 ☆操作解説動画: https://ibm.biz/action1

  8. ⽬次 1. コンテナ概要 2. Kubernetesとは 3. Red Hat OpenShiftとは 4.

    Minishift ワークショップ
  9. 1. コンテナ概要 なぜ「今」 コンテナ/Docker/Kubernetesなどの テクノロジーが注⽬されているのか

  10. What is Container (コンテナ)? https://youtu.be/1PPPUPcUkSs

  11. 「仮想マシン(VM)」と「コンテナ」 コンテナは仮想マシン(VM)に⽐べてリソース効率がよい スケールアウトが簡単

  12. コンテナを使った開発の流れ Dockerfileなど Docker イメージなど コンテナー レジストリ マニフェストで コンテナ⾃体の 詳細を記述 開発者

    コンテナー イメージ作成 イメージの 登録 開発者 アプリ実⾏ アプリ開発 3段階のプロセス
  13. コンテナーのポータビリティ ü アプリケーション稼働に必要な依存ファイルを パッケージングできる ü 物理サーバーに固定されない → 同じアーキテクチャの環境であれば ポータビリティが存在する システム基盤

    (クラウド) ホストOS システム基盤 (オンプレミス) ホストOS コ ン テ ナ エ ン ジ ン App1 Bin/Lib s App2 Bin/Lib s App3 Bin/Lib s 「僕の環境では動いた」 問題が発⽣しない コ ン テ ナ エ ン ジ ン App3 Bin/Lib s
  14. コンテナのまとめ • 仮想マシン(VM)に⽐べてリソース効率がよい • ボータビリティーが⾼い • スケールアウトが容易 • 3段階のプロセスを使⽤することで、 よりアジャイルなDevOpsと継続的インテグレーション

    およびデリバリーが可能になる
  15. 2. Kubernetesとは コンテナーの運⽤実⾏と管理を⾏うオーケストレーションツール • コンテナーが⼤量になってくると管理しきれない部分をカバー • 複数のDockerホストの管理 • 死活監視 •

    スケジューリング • スケーリング • 障害時のリカバリー • アプリ実⾏に必要なインフラリソースを管理 • 永続的なストレージ • ネットワーク • クレデンシャル情報 etc… • 宣⾔的設定モデル • 「あるべき状態」を記述すると、それを実現し続けようとしてくれる • 障害時も⾃動で復旧作業を実施
  16. Kubernetesの代表的な機能 スケールアウト 負荷分散 バージョン管理 (ロールアウト) ネットワーク管理 永続ストレージ管理 死活監視 ⾃⼰復旧 CPU

    / Memory リソース管理
  17. Pod nKubernetes における最⼩の管理単位 –Podの中には 1つ以上 の コンテナが含まれる –Pod単位でスケールイン・スケールアウトする –PodごとにIPアドレスがアサインされる Pod

    IP 10.1.206.34 10.1.206.128
  18. ReplicaSet nPodを管理するための定義 –Podの必要稼働数を定義 –K8Sの Scheduler がどのノードにアサインするかは 考慮してくれる Pod IP 10.1.206.34

    10.1.206.110 ReplicaSet - 必要数2 - 現⾏ 2 ノード ノード
  19. Node Port nKubernetes外から TCP/IPでアクセスする ための定義 –K8Sクラスタ内で⼀意となるポートがアサインされる –K8Sクラスタのどのノードからアクセスしても 当該サービスにルーティングされる Pod IP

    10.1.206.34 10.1.206.110 ノード ノード 30010 30010
  20. Deployment nワークロード定義体 –Pod –ReplicaSet –ClusterIPs –NodePort – (Ingress) Pod IP

    10.1.206.34 10.1.206.110 Cluster IP 10.0.0.142 169.56.42.73 Ingress IP Deployment
  21. What is Kubernetes? https://youtu.be/zGXYRQ-8pU0

  22. Kubernetesのまとめ • コンテナーのオーケストレーション・ツール • 理想状態を宣⾔すると、その状態を維持しようとしてくれる • 3つの主要コンポーネント • Pod, Deployment,

    Service • PodはDeploymentによって作成され、管理されます。 Deploymentによって作成されたPodへのアクセスは、 Serviceを使⽤することで容易になります。
  23. 3. Red Hat OpenShiftとは

  24. What is OpenShift? https://youtu.be/KTN_QBuDplo

  25. © 2019 IBM Corporation OpenShiftは、Kubernetesとの互換性を維持しながら、CICD機能を強化、開発者 に代わって、ビルド、リポジトリ登録、デプロイを⾃動実⾏します。 OPENSHIFT 機能拡張 OpenShift CICD利⽤

    アプリケーション (コンテナ) Kubernetes アプリケーション (コンテナ) Ubuntu / CentOS… Linux Kubernetes アプリケーション (コンテナ) コンテナ ランタイム Linux OS コンテナ オーケストレーション Kubernetesの標準機能 で構築したアプリケーション どちらでも 動作可能 RHEL / RHCOS コンテナ ランタイム OpenShiftのまとめ
  26. Red Hat OpenShift on IBM Cloud IBM Cloud™上のRedHat®OpenShift®は、⾼度にスケーラブルで信頼性の⾼いIBM Cloudプラットフォームで完全に管理されたOpenShiftクラスターを提供する包括的な サービスです。

    The WeatherCompany®で毎⽇2,500億のオンデマンド予測を維持す るKubernetesサービスに直接統合されています。
  27. KubernetesとOpenShiftの違い

  28. KubernetesとOpenShiftの違い • Deploy: ソースコードからコンテナ作成とデプロイまでの⾃動化 • Manage: Webコンソールとコマンドラインの両⽅から操作可能。 実⾏状態のメトリックス監視とログ分析も提供 • 運⽤:

    Ansible Playbookを使ってオートスケーリングが可能 • Security: Project単位で簡単に管理可能
  29. Kubernetes and OpenShift: What's the Difference? https://youtu.be/cTPFwXsM2po

  30. ワークショップ 4-1. IBM CloudでOpenShiftを使う 4-2. OpenShift ワークショップ

  31. 5-1. IBM CloudでOpenShiftを使う 1. IBM Cloud にログイン 本⽇は http://ibm.biz/dojo0124 にアクセスして

    右上の「ログイン」から ログインしてください 通常は https://cloud.ibm.com/ からログイン可能です ライトアカウント対象外です PAYGアカウントでお使い頂けます
  32. 5-1. IBM CloudでOpenShiftを使う 2. ダッシュボードから「カタログ」をクリック

  33. 5-1. IBM CloudでOpenShiftを使う 3. フィルターに[ライト]がある場合は[x]をクリックして削除 ↑フィルターが消える

  34. 5-1. IBM CloudでOpenShiftを使う 4. 左側のカテゴリーから「コンテナ」をクリック、 「Red Hat OpenShift Cluster」をクリック

  35. 5-1. IBM CloudでOpenShiftを使う 5. Red Hat OpenShift Cluster作成画⾯が表⽰されます。 ただしライトアカウントでは作成できないため、 ライトアカウントの場合は「アップグレード」ボタンが表⽰されます。

  36. 5-1. IBM CloudでOpenShiftを使う 6. 「 Red Hat OpenShift Cluster 」を作成します。動画で⾒てみましょう:

    https://youtu.be/UJ2frartWFk
  37. 5-1. IBM CloudでOpenShiftを使う 補⾜情報: 3分でわかるIBM Cloudシリーズ(動画) • OpenShiftクラスターに対してocコマンドでアクセスする • OpenShiftクラスターにHelloWorldアプリをデプロイしてみよう

    IBM Demos (デモ動画サイト、英語): • Red Hat OpenShift on IBM Cloud
  38. 5-2. OpenShift ワークショップ IBM Watson Visual Recognitionを使った node.jsの画像認識Webアプリ をOpenShift on

    IBM Cloudで実⾏する 【ワークショップ完了後のアプリ画⾯イメージ】 https://github.com/kyokonishito/watson- vr-node ソースはこちら︓
  39. 今回使⽤するIBM Watson API – Visual Recognition 2019年3⽉現在 Watson Assistant アプリケーションに⾃然⾔語インターフェースを追加して

    エンドユーザとのやり取りを⾃動化 Text to Speech テキスト⽂章を⾳声に変換する Speech to Text ⾳声をテキスト⽂章に変換する Visual Recognition 画像コンテンツに含まれる意味を検出する Discovery 先進的な洞察エンジンを利⽤して、デー タの隠れた価値を解明し、回答やトレン ドを発⾒する Discovery News Discovery上に実装され、エンリッチ情報 も付加されたニュースに関する公開デー タセット Personality Insights テキストから筆者の性格を推定する Language Translator テキストを他⾔語へ翻訳を⾏う Natural Language Understanding ⾃然⾔語処理を通じてキーワード抽出、エン ティティー抽出、概念タグ付け、関係抽出な どを⾏う Natural Language Classifier テキスト⽂章の分類を⾏う(質問の意図推定など) Tone Analyzer(⽇本語未対応) テキストから筆者の感情、社交性、⽂体を解析 Knowledge Studio コーディングなしに、業務知識から⽣成した 機械学習モデルで、⾮構造テキストデータか ら洞察を取得(学習⽀援ツール) ⼼理系 ⾔語系 照会応答系 知識探索系 ⾳声系 画像系 https://www.ibm.com/watson/jp-ja/developercloud/services-catalog.html
  40. Watson Visual Recognition (画像認識) 画像認識「⼀般種別」(General Tagging): • 事前学習済みの分類器の出⼒を返す 画像認識「カスタム」: •

    識別を⾏いたいクラスのイメージを事前学習させ、 その分類器の出⼒を返す 事前学習 不要 事前学習 必要 https://www.ibm.com/watson/jp-ja/developercloud/visual-recognition.html 画像に写った物体・情景など様々なものを分析・認識するAIサービス
  41. 操作の流れ 1. ワークショップ⽤の環境へのIBM Cloud ID関連付け 2. OpenShiftをコマンド実⾏できる環境の準備 3. Visual Recognitionサービスの作成

    4. 資格情報のダウンロード 5. 資格情報のアップロード 6. 資格情報の編集 7. OpenShiftアプリの作成
  42. 1. ワークショップ⽤のIBM Cloud環境にご⾃⾝の IBM Cloud IDを関連付ける 注意事項 ・ブラウザはFirefoxをご利⽤ください ・本ワークショップ⽤のIBM Cloud環境はセミナー開催⽇を

    含めて約3⽇間限定でお使いいただけます ・IBM Cloud上で継続的にOpenShiftを検証する環境が 必要な場合は、5-1. OpenShiftをご利⽤ください ・ローカルでOpenShiftを検証する環境を構築されたい場合は、 Appendix. Minishiftをご利⽤ください
  43. 1.1: 下記URLにFirefoxブラウザでアクセスする https://osaitok.mybluemix.net 1.2: [Lab Key] 、[Your IBMid]にご⾃⾝のIDを ⼊⼒し、チェックボックスにチェックを⼊れて [Submit]をクリックする

    Lab Keyは 講師にお尋ねください
  44. 1.3: Congratulations! が表⽰されたら [1. Log in IBM Cloud] リンクをクリックする

  45. 1.5: IBM Cloudダッシュボードの右上のアカウント情報の 右横の v をクリックする 1.6:[xxxxxxx – IBM] をクリックする

  46. 1.7: IBM Cloudダッシュボードの右上のアカウント情報が 変更されたことを確認し、[リソースの要約]の [Clusters]をクリックする

  47. 1.8: [osaitokxx]をクリックする ※本ワークショップではこちらのクラスタを使⽤します ※数字は⾃動的に割り当てられます

  48. 1.9: [OpenShift Webコンソール]ボタンをクリックします。

  49. 1.10: [OpenShift Container Platform]画⾯が表⽰されたら 右上のアカウント情報の隣の v をクリックし、 [Copy Login Command]を選択する

    ※後ほど使⽤する為、必要に応じてメモしておいてください
  50. 2. OpenShiftをコマンド実⾏できる環境の準備 2.1: 下記URLに⼿順1で使⽤したものと同じFirefoxブラウザ でアクセスする https://workshop.shell.cloud.ibm.com passcodeは 講師にお尋ねください

  51. 2.2: IBM Cloud Shell for Workshopサイトの右上の アカウント情報の v をクリックして[xxxxxxx -

    IBM] を選択する
  52. 2.3: アカウント情報が更新されたことを確認し、左隣の ターミナルアイコンをクリックする 2.4: しばらくするとターミナルが表⽰される

  53. 2.5: 前章1.10でコピーしたコマンドを⼊⼒し実⾏する 2.6: 「Welcome!」が表⽰されればログイン成功です

  54. 3. Visual Recognitionサービスの作成 Visual Recognitionを新規に作成する⽅は次のページに進んでください。 既に以前に作成済みの⽅は、作成済みのものが使⽤できます。 作成済みの⽅は以下の⼿順を参照しVisual Recognitionの管理の画⾯を表⽰後、 http://ibm.biz/watson-service-screen 当資料「4.

    Visual Recognitionサービスibm-credentials.env のダウンロード」まで進んでく ださい。 ブラウザー上で、新しいタブを開きます。 https://cloud.ibm.com/ にアクセスして、ダッシュボードを開きます。 XXXXXXX – IBM ではなく⾃分のアカウントになっていることを確認し、異なっ ている場合はクリックして変更します
  55. 3.1 上部のメニューにある「カタログ」をクリックします

  56. 3.2 Visual Recognitionサービスの選択 1. 左側のメニューから「AI」をクリック 2. 下にスクロールして表⽰された「Visual Recognition」をクリック

  57. 価格プランに「ライト」が選択されていることを確認して、 「作成」をクリック 3.3 Visual Recognitionサービスを作成する

  58. 3.4 Visual Recognitionサービスを作成確認、管理画⾯の表⽰ 下の画⾯が出たら、作成完了です。 左のメニューから「管理」をクリックして管理画⾯を表⽰します

  59. 資格情報の「ダウンロード」を クリックし、⾃分のPCに ibm-credentials.env という ファイルを保存します。 4. Visual Recognitionサービス ibm-credentials.env のダウンロード

  60. 5. ibm-credentials.env のアップロード 5.1. ブラウザーのIBM Cloud Shell for Workshopのタブ をクリックして表⽰します。

  61. 5. ibm-credentials.env のアップロード 5.2. メニューバーのアップロードアイコンをクリック、 ibm-credentials.envを指定してアップロード

  62. 5. ibm-credentials.env のアップロード 5.3 ファイルアップロードを確認 ls ターミナルに下記コマンドを⼊⼒し、確認します。 出⼒例: 尚、今後のコマンドは以下からコピペできます https://ibm.box.com/v/openshift-101-command

  63. 6. ibm-credentials.env コピーと編集 6.1. ibm-credentials.env をコピー cp ibm-credentials.env ibm-credentials.env.nodevr ターミナルに下記コマンドを⼊⼒。

    出⼒例: 6.2. ibm-credentials.env.nodevr の権限変更 chmod o+r ibm-credentials.env.nodevr ターミナルに下記コマンドを⼊⼒。 出⼒例:
  64. 6. ibm-credentials.env コピーと編集 6.3 メニューバーの鉛筆(Edit)アイコンをクリックして、 エディターを⽴ちあげる 上半分にエディターが開きます

  65. 6. ibm-credentials.env コピーと編集 6.4 左側のEXPLORERからibm-credentials.env.nodevr をダブルクリックして開きます。 ダブルクリック

  66. 6. ibm-credentials.env コピーと編集 6.5 VISUAL_RECOGNITIONで始まっていない⾏(1〜4 ⾏⽬と最後の⾏)を削除します。 削除前 削除後

  67. 6. ibm-credentials.env コピーと編集 6.6 「File」メニューをクリックし、「Save」をクリッ クして保存します。

  68. 7.1. プロジェクトを作成する oc new-project watson-vr --display-name="watson-vr" -- description="Sample Watson Visual

    Recognition Node.js app" ターミナルに下記コマンドを⼊⼒し、新しいアプリケーション⽤に新しい プロジェクトを作成します。 (コマンドは1⾏です。コマンドは以下からコピペできます。 https://ibm.box.com/v/openshift-101-command) 7. Openshift アプリの作成 出⼒例:
  69. 7.2. アプリケーションの作成 ターミナルに下記のコマンドを⼊⼒し、 githubのソースコードから、アプ リケーションを作成します。 (コマンドは1⾏です) oc new-app https://github.com/kyokonishito/watson-vr-node.git --build-env-file=./ibm-credentials.env.nodevr

    --build-env CLASSIFIER_ID=food 7. OpenShiftアプリの作成
  70. 7.2. アプリケーションの作成 出⼒例: 7. OpenShiftアプリの作成

  71. 7.3 ビルドログを表⽰します oc logs -f bc/watson-vr-node ターミナルに下記のコマンドを⼊⼒しビルドログを表⽰し、 「 Push successful

    」で終わるまで待ちます。 7.4 ロードバランサーのサービスを作成します oc expose dc watson-vr-node --port=3000 --type=LoadBalancer -- name=watson-vr-node-ingress ターミナルに下記のコマンドを⼊⼒し実⾏します。(コマンドは1⾏です) 7. OpenShiftアプリの作成
  72. 7.5. ロードバランサーのサービスを公開します oc expose service watson-vr-node-ingress ターミナルに下記のコマンドを⼊⼒し実⾏します。 7. OpenShiftアプリの作成 これで完了です!ターミナルに下記のコマンドを⼊⼒し実⾏し、その結果を

    参照して、OpenShift で実⾏されているアプリケーションにアクセスでき ます。 oc get route/watson-vr-node-ingress NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD watson-vr-node-ingress watson-vr-node-ingress-watson-vr.openshifttokyo17-0e3e0ef4c9c6d831e8aa6fe01f33bfc4-0002.jp- tok.containers.appdomain.cloud watson-vr-node-ingress 3000 None 以下のような出⼒があった場合は、 watson-vr-node-ingress-watson-vr.openshifttokyo17-0e3e0ef4c9c6d831e8aa6fe01f33bfc4-0002.jp- tok.containers.appdomain.cloud にブラウザでアクセスします。
  73. 7.6 ブラウザーでアプリケーションにアクセスします アプリケーションは表⽰できましたか? ボタンを押して動作確認してみましょう! 「ファイルの選択」から写真を選んだ後、各⻘ボタンを クリックして、Visual Recognitionの結果を確認しま す。 • Watsonで認識(Watson学習済みモデルを利⽤):

    • Watsonが写真を認識した内容を表⽰します。 • Watsonで認識(カスタムモデルを利⽤): • IBM提供の⾷品に特化したカスタムモデルFoodで認識し たクラスを表⽰します。 ※スマートフォンでの確認 ⼀番下にQRコードが表⽰されているので、それをスマートフォ ンのカメラで読んでアプリケーションのURLにアクセすると、ス マートフォンでも結果を確認できます。 スマートフォンでは「ファイルの選択」ボタンでその場で撮った 写真も認識可能です。
  74. [オプション] ブラウザーでOpenShift Web Consoleに アクセスして作成したアプリを確認 1/2(1.10で開いたWeb画⾯ です) ←View Allをクリック 下にスクロールすると

    watson-vr プロジェクト があるので、クリックし ます。
  75. [オプション] ブラウザーでOpenShift Web Consoleに アクセスして作成したアプリを確認 1/1 ←このあたりをいろいろクリックすると情報が⾒れます ↑ここもクリックするといろいろ情報が⾒れます

  76. 追加ワークショップ (オプション) • Node-RED on OpenShift Workshop starter (日本語版) https://qiita.com/yamachan360/items/786f70cb532443f

    38c16 • RedHat Japanのハンズオントレーニング ⽇本語訳 複数コンテナの連携: https://github.com/osonoi/minishift/tree/master/lab1 様々なデプロイメント⼿法: https://github.com/osonoi/minishift/tree/master/lab2
  77. Appendix: Minishift とは • OpenShiftは、Kubernetesに、Red Hat社独⾃の拡張を加え、さらに、 Red Hatのソフトウェア保守とウェブや電話での問い合わせ対応 サービスを提供する企業向けKubernetesのプラットフォーム •

    OpenShiftは、Red Hat社が提供する有償サービス(サブスクリプション) のもとで利⽤できるソフトウェア • OpenShiftの学習やローカルの開発環境⽤に無償で提供されるのが、 Minishift (OpenShift 3.11に相当) 「MiniShiftに関する疑問の整理、「 Dockerから⼊るKubernetes」執筆打明け話とか、OKDやCRCとの整理など」 https://qiita.com/MahoTakara/items/3c1c208640518e832660 より抜粋
  78. Appendix: Minishift ワークショップ 101 (オプション) Setup 1 「仮想化環境を構成する」の⽇本語版はこちら」 • Windows:

    ibm.biz/Bdz39H • Mac: ibm.biz/Bdz39E Setup 2 MinishiftのインストールおよびOpenShiftサーバーを開始し、 Lab1から順番に進める。 ibm.biz/openshift1
  79. IBM Code Patterns https://ibm.biz/ibmcodejp 解説 + デモ動画 + ソースコードが揃ったアプリ開発パターン集

  80. 開発者向けサイト IBM Developer ibm.biz/IBMDevJP 最新情報やスキルアップに役⽴つ6,000を超える技術記事を提供

  81. None