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

IBM Dojo OpenShift 101 with AI

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Aya Tokura Aya Tokura
November 29, 2019

IBM Dojo OpenShift 101 with AI

IBM Dojo 追加コース:OpenShift(Minishift) 101 入門のセッション資料
https://ibm-developer.connpass.com/event/154573/

・IBM Cloudライトアカウント無料登録はこちら
https://ibm.biz/dojo20191129

Avatar for Aya Tokura

Aya Tokura

November 29, 2019
Tweet

More Decks by Aya Tokura

Other Decks in Technology

Transcript

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

    彩 14:30-16:30 (120min) Minishift 101 ワークショップ ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉 彩 / ⻄⼾ 京⼦ 16:30-17:00 (30min) クロージング
  2. G,;!,2h‰qzd~†‰x„BWVaQ^X HΎ¥¹ ŠŒXBjB£Mª^aEhnpru€F ¢Ÿ£Y–“UX¬Êc_Lª^SK\PA ąþ|ªµO{ɗǛÑ®²S/70=T{ĊìIJêv źɃÚ{ŹÙǓȪť‘`ȰciuHÔÙv{3D)3:{ ƕŒòˆHÿŒò‘…yh’wÝɌz²Ož¥ÌO‘ Ű_uŪ_u]ep‹wŲ]„kI ÔóL Ö

    æ Ôȑ  ĊȘ êĭL¦ÊӞȷŶơ șɑÙơ ǡŘLŎĖħ  £O»§¡O´‡id|`Œļv WٖÀÓ²zÿk`ĩ]ämHgŎĖ|fr‹ ¦ÊӞȷŶơșɑÙơ +#  éĥŅǹĴƃƅșɑ   07B :F 3D)3:==9
  3. F .5+ IBM Cloud #)(8MURLL  ibm.biz/dojo20191129 ! IBM Cloud

    3$ 5 "!5+ CD 3$ 5   ! IBM Cloud 1 +"!5+;B "!5+CD KPR  UÙÔ{`ȸ]
  4. 事前準備まだお済みでない⽅ 1. IBM Cloudアカウント(無料)の取得 ☆操作解説動画: https://ibm.biz/action1 2. IBM Cloud 従量課⾦アカウントへのアップグレード

    ☆操作解説動画: https://ibm.biz/action2 ※ ワークショップでは有償アカウントを使⽤しますが、無料枠内で作業します。 従って、今回の有償アカウントへのアップグレードや、ワークショップ参加によって 利⽤料⾦が請求されることはありません
  5. ¡Ó°´‘ŷspĊì{ƢŽ Dockerfileyx Docker –ÇO¦yx ¡Ó°´O Ц§²Î ĵ½˜§²v ¡Ó°´åċ{ ɐȝ‘ŢǪ Ċìã

    ¡Ó°´O –ÇO¦ŦĮ –ÇO¦{ ǿǘ Ċì㠔¿ÎĎß ”¿ÎĊì ǩȊ{¿Ñ©§
  6. コンテナーのポータビリティ nコンテナーのポータビリティ •アプリケーション稼働に必要な依存ファイルを パッケージングできる •物理サーバーに固定されない → 同じアーキテクチャの環境であれば ポータビリティが存在する システム基盤 (クラウド)

    ホストOS システム基盤 (オンプレミス) ホストOS コ ン テ ナ エ ン ジ ン App1 Bin/Lib s App2 Bin/Lib s App3 Bin/Lib s 「僕の環境では動いた」 問題が発⽣しない コ ン テ ナ エ ン ジ ン App3 Bin/Lib s
  7. コンテナのはじめ⽅ n CNCFの Cloud Native Trail Map を参照 1. コンテナ化

    • ⼀般的には Docker コンテナで実施 • いかなるサイズのアプリケーションも依存性もコンテナ化可能 • 時間が経つにつれ、アプリケーションを分割し マイクロサービス化したくなるだろう 2. CI/CD(継続デリバリの仕組み) • 継続インテグレーション・継続デリバリの仕組みをセットアップ • コード変更が 新しいコンテナ・イメージとして、 ⾃動的にビルドされ、テストされ、デプロイされるように 3. オーケストレーション&アプリ定義 • 互換性試験に合格している Certified Kubernetes 環境を選択 • もっとも複雑なアプリケーションであっても HELMで 定義して、導⼊して更新していくことが可能
  8. 2. Kubernetesとは コンテナーの運⽤実⾏と管理を⾏うオーケストレーションツール • コンテナーが⼤量になってくると管理しきれない部分をカバー • 複数のDockerホストの管理 • 死活監視 •

    スケジューリング • スケーリング • 障害時のリカバリー • アプリ実⾏に必要なインフラリソースを管理 • 永続的なストレージ • ネットワーク • クレデンシャル情報 etc… • 宣⾔的設定モデル • 「あるべき状態」を記述すると、それを実現し続けようとしてくれる • 障害時も⾃動で復旧作業を実施
  9. IBM{¡Ó°´ƦDŽHȂƏЀ{ĠŒŊ… žÍ—³¶–°•¾K”¿Î ȂƏЀǙǫøzĿď =193@"C03@<3B3A€{ ¡Å®² "C03@<3B3AÀO§{ ¡Ó°´řȩªÎÊO¥ÌÓ ÖæJ!$ˆ ==5:3yx Ė

    {ŚÞJŜċbİĀ ¡Ó°´ƦDŽ ¡Ó°´ƻē "#$ !"#$% %&'()*(+(,-.()/01(-2"%.3 £O»§Ç®¥Ê @/43/A £O»§Ç®¥Ê £O»§Ç®¥Ê @/43/A £O»§Ç®¥Ê £O»§Ç®¥Ê @/43/A @/43/A £O»§Ç®¥Ê @/43/A £O»§Ç®¥Ê £O»§Ç®¥Ê £O»§Ç®¥Ê £O»§Ç®¥Ê £O»§Ç®¥Ê "#$ !"#$% 4)0/5+(-2"643 ´s~wfgdXn‰uy”®c¾Ÿ '!=<<31BJ./BA=<=;>/@3=;>:FJ +@/<A4=@;/B7=<2D7A=@J$71@=1:7;/B3J &$J*9F27D3J!$-=713/B3E/FJ .30*>63@3J ,@0/<=23 3>:=FJ'$J0 J $(J!!J>>=<<31BJ/B/'=E3@Jo{Ȓőĸ
  10. Kubernetesのまとめ 動画をもう⼀度⾒たい⽅はこちら: • https://developer.ibm.com/jp/new-builders/kubernetes/ ⽂章での説明もあります • コンテナーのオーケストレーション・ツール • 理想状態を宣⾔すると、その状態を維持しようとしてくれる •

    3つの主要コンポーネント • Pod, Deployment, Service • PodはDeploymentによって作成され、管理されます。 Deploymentによって作成されたPodへのアクセスは、 Serviceを使⽤することで容易になります。
  11. © 2019 IBM Corporation OpenShift|HKubernetesw{ȺȁĬ‘ȧņiyb‹HCICDğŵ‘īĐHĊìã zėsuH»Ï³HÎæ²ÎǿǘH±¿Ñ–‘åěĎßi„kI OPENSHIFT ğŵǽǃ OpenShift CICDľĔ

    ”¿Î O¥ÌÓ Q¡Ó°´R Kubernetes ”¿Î O¥ÌÓ Q¡Ó°´R Ubuntu / CentOS… Linux Kubernetes ”¿Î O¥ÌÓ Q¡Ó°´R ¡Ó°´ ÍÓ«–Æ Linux OS ¡Ó°´ ›O §²ÐO¥ÌÓ Kubernetes{ȂƏğŵ vƵȱip”¿Î O¥ÌÓ xr‹v‡ ěŦƞŵ RHEL / RHCOS ¡Ó°´ ÍÓ«–Æ "C03@<3B3Aw&>3<*674B
  12. KubernetesとOpenShiftの違い まとめ • Deploy: • ソースコードからコンテナ作成とデプロイまでの⾃動化 • Manage: • Webコンソールとコマンドラインの両⽅から操作可能。

    • 実⾏状態のメトリックス監視とログ分析も提供 • 運⽤: • Ansible Playbookを使ってオートスケーリングが可能 • Security: • Project単位で簡単に管理可能
  13. 5-1. !$:=C2v&>3<*674B‘ŷ^ !$:=C2zџ–Ó ÙÔ| 70; 07G 2=8=   z”ž©§iu

    ȃÛ{Sџ–ÓTa‹ џ–Óiudqh] Ăƴ| https://cloud.ibm.com/ a‹ÑŸ–Óƞŵvk
  14. 5-2. 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 より抜粋
  15. 5-3. Minishift ワークショップ (準備) Setup 1 「仮想化環境を構成する」の⽇本語版はこちら」 • Windows: ibm.biz/Bdz39H

    • Mac: ibm.biz/Bdz39E Setup 2 MinishiftのインストールおよびOpenShiftサーバーを開始する ibm.biz/openshift1 Setup 3 コードエディタをインストールする(オプション)
  16. Watson API£O»§Ýɚ 2019‹3‘­ &(985488089(49 ”¿Î O¥ÌÓzåǮŇǀ–Ó«O½˜O§‘ǏĽiu ™Ó³ËO¤w{ˆŒĠŒ‘åěĐ #,=995"6,,*/ °§²Žɍ‘ȆƶzƖȁk "6,,*/95#,=9

    Ȇƶ‘°§²ŽɍzƖȁk %08:(2!,*5.409054 Ɖȼ¡Ó°Ó¯zǖ„ŽĨǴ‘ŕÜk 08*5;,7> ŏĵøyɝǭ™Ó¦Ó‘ľĔiuH±O «{ɀŽpŤǝ‘ŝĄiHþǵˆ²ÐÓ ³‘ìëk 08*5;,7>,<8 7A1=D3@FÛzĎȞhŽH™Óή­şł ‡ƈĽhŽpµÊO§zÿkĝĊ±O «©®² ,7854(209>480./98 °§²a‹Ⱦã{ĬŻ‘ǰ÷k (4.:(., #7(482(957 °§²‘ȒŇǀ€ɢɓ‘ß^ (9:7(2(4.:(.,$4+,789(4+04. åǮŇǀƝē‘ĂjuOÒO³ɞÜH™Ó °•°•OɞÜHɖLj«ŸƈeHÿƀɞÜy x‘ß^ (9:7(2(4.:(.,2(880-0,7 °§²Žɍ{çȇ‘ß^Ƽĩ{ĨDZǰ÷yx #54,4(2>?,7ŠŒ·Ã”® °§²a‹Ⱦã{ƐşHâŰĬHŽċ‘ŝɋ 45<2,+.,"9:+05 ¡O±•ÓŸyizHÞįšDza‹íĮip ğɘĚțȱÏvHȍƵLJ°§²±O«a ‹ɝǭ‘ĠśĚțŋƹ¯OÏ ŞēǺ ŇǀǺ ɅØƙǵǺ šDzȽɏǺ ȆƶǺ ƉȼǺ 6BB>A EEE 70; 1=; E/BA=< 8>8/ 23D3:=>3@1:=C2 A3@D713A1/B/:=5 6B;:
  17. Watson Visual Recognition (画像認識) 画像認識「⼀般種別」(General Tagging): • 事前学習済みの分類器の出⼒を返す 画像認識「カスタム」: •

    識別を⾏いたいクラスのイメージを事前学習させ、 その分類器の出⼒を返す 事前学習 不要 事前学習 必要 https://www.ibm.com/watson/jp-ja/developercloud/visual-recognition.html 画像に写った物体・情景など様々なものを分析・認識するAIサービス
  18. 1. Visual Recognitionサービス ibm-credentials.env のダウンロード 1.1: IBM Cloudにログインし、 Visual Recognitionサービスの管理画⾯を表⽰します。

    ⼿順が不明の⽅は、下記を参照してください: https://qiita.com/nishikyon/items/9b8f697db7ad0a693839#2- %E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%81%AE%E8%B3%87%E6%A0%BC% E6%83%85%E5%A0%B1%E5%8F%96%E5%BE%97
  19.  70;1@323<B7/:A 3<D {¬—ÓÑO³ ﯺł{S¬—ÓÑO³T‘ žÎ®žiHåç{'z 70;1@323<B7/:A 3<D w]^ ½“–Ï‘đǯi„kI

    \wv¡Äӳ͖Óa‹f{ ½“–Ï‘ō÷i„k{vH =1¡ÄÓ³‘ĎßkŎ÷{ ƁĨ{½šÏ¬zđǯi„kI X¡ÄÓ³ɂŦzɔŽuy]ò|H ±§ž²®¿ĹĪ{êĭ‘ǰɠi„kI
  20. 2. Minishift アプリ作成 2.1. クラスターにログインします $ oc login -u system:admin

    minishift startを実⾏した後、下記のコマンドでクラスターにログイン します。 2.2. プロジェクトを作成する $ oc new-project watson-vr --display-name="watson-vr" -- description="Sample Watson Visual Recognition Node.js app" 下記コマンドで、新しいアプリケーション⽤に新しいプロジェクトを 作成します。 (コマンドは1⾏です)
  21. 2.3. アプリケーションの作成 $ oc new-app https://github.com/kyokonishito/watson-vr-node.git -- build-env-file=<ibm-credentials.env> --build-env CLASSIFIER_ID=food

    githubのソースコードから、下記のコマンドでアプリケーションを作成 します。 • 1.2でダウンロードしたibm-credentials.envをPATHも含めて、 下記<ibm-credentials.env>に指定します。 (コマンドは1⾏です) $ oc new-app https://github.com/kyokonishito/watson-vr-node.git -- build-env-file=./ibm-credentials.env --build-env CLASSIFIER_ID=food 例
  22. 2.4. ビルドログを表⽰します $ oc logs -f bc/watson-vr-node 下記のコマンドでビルドログを表⽰し、「 Push successful

    」で終わる まで待ちます。 2.5. ポートを公開します $ oc expose dc watson-vr-node --port=3000 --type=LoadBalancer -- name=watson-vr-node-ingress 下記コマンドを実⾏します。(コマンドは1⾏です)
  23. 2.6. 作成されたNodePortを確認します $ oc get --export svc watson-vr-node-ingress 2.7. アクセス可能なクラスターIPアドレスを確認します

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE watson-vr-node-ingress LoadBalancer <none> 172.29.77.196 3000:31202/TCP <unknown> 下記コマンドを実⾏します。(コマンドは1⾏です) 下記コマンドを実⾏します。(コマンドは1⾏です) $ oc get node -o wide 出⼒: 下記の場合、マッピングされた外部ポートは31202 NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME localhost Ready <none> 26m v1.11.0+d4cacc0 192.168.64.19 <none> CentOS Linux 7 (Core) 3.10.0-957.5.1.el7.x86_64 docker://1.13.1 出⼒: 下記の場合、アクセス可能なクラスターIPアドレスは192.168.64.19
  24.  ¾Í—¤Ov”¿Î O¥ÌÓz”ž©§i„k vĠśipÃO² vĠśip!'”³Ð§     

    { êä| http://192.168.64.19:31202/ z”ž©§i„kI gåç{ǝ‘`ŷ]dqh] ”¿Î O¥ÌÓ|ĜŨvc„ipa «ӑȔiuěŦžŠiu…„i‰^
  25. 5-4. 追加ワークショップ (オプション) • Node-RED on Minishift https://github.com/yamachan/node-red-workshop- starter/blob/japanese-readme/README-ja.md •

    RedHat Japanのハンズオントレーニング ⽇本語訳 複数コンテナの連携: https://github.com/osonoi/minishift/tree/master/lab1 様々なデプロイメント⼿法: https://github.com/osonoi/minishift/tree/master/lab2
  26. 5-5. 補⾜ • Minishiftの停⽌コマンド $ minishift stop • Minishiftの起動、初期メモリ・ディスクの制限 $

    minishift start --memory 2G --disk-size 10G --vm-driver <drivername> • Minishift VM削除(VM再作成したい場合などに、、、) $ minishift delete • Minishift コマンドラインで作成したProjectをWebコンソール で表⽰(developerでログイン) $ oc policy add-role-to-user admin developer