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

冬のIBM Dojo #3 OpenShift 入門 ~Watson を使ったWebアプリを試そう~ / IBM Dojo OpenShift 20200129

Aya Tokura
January 29, 2020

冬のIBM Dojo #3 OpenShift 入門 ~Watson を使ったWebアプリを試そう~ / IBM Dojo OpenShift 20200129

■冬のIBM Dojo #3 OpenShift 入門 ~Watson を使ったWebアプリを試そう~
https://ibm-developer.connpass.com/event/159764/
本イベントのプレゼンおよびワークショップ資料です。
・IBM Cloudライトアカウント作成およびログインURL
https://ibm.biz/dojo20200129

Aya Tokura

January 29, 2020
Tweet

More Decks by Aya Tokura

Other Decks in Technology

Transcript

  1. 事前準備まだお済みでない⽅ 1. IBM Cloudアカウント(無料)の取得 ☆操作解説動画: https://ibm.biz/action1 2. IBM Cloud 従量課⾦アカウントへのアップグレード

    (オプション) ☆操作解説動画: https://ibm.biz/action2 ※ ワークショップでは無料枠内で作業します。 従って、今回の有償アカウントへのアップグレードや、ワークショップに参加によって 利⽤料⾦が請求されることはありません
  2. 本⽇のタイムテーブル 14:00-14:05 (5min) オープニング 14:05-15:00 (55min) OpenShift概要 ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉

    彩 15:00-17:00 (120min) OpenShiftワークショップ ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉 彩 ⻄⼾ 京⼦ 17:00-17:30 (30min) クロージング
  3. G .5+ IBM Cloud #)(8OURLN  ibm.biz/dojo20200129 ! IBM Cloud

    3$ 5 "!5+ CD 3$ 5   ! IBM Cloud 1 +"!5+;B "!5+CD MSU  YÛ×~cȘ`
  4. £Ö²¶“ūvsĈí~Ɣ Dockerfile|{ Docker ˜ÊR¨|{ £Ö²¶R Ó¨©´Ñ Ç·¿š©´y £Ö²¶çĉ~ ȮȀ“ŗǗ Ĉíå

    £Ö²¶R ˜ÊR¨ŚĪ ˜ÊR¨~ ǩLJ Ĉíå –ÁÑČá –ÁÑĈí ǖDz~ÁÔ«©
  5. コンテナーのポータビリティ ü アプリケーション稼働に必要な依存ファイルを パッケージングできる ü 物理サーバーに固定されない → 同じアーキテクチャの環境であれば ポータビリティが存在する システム基盤

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

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

    スケジューリング • スケーリング • 障害時のリカバリー • アプリ実⾏に必要なインフラリソースを管理 • 永続的なストレージ • ネットワーク • クレデンシャル情報 etc… • 宣⾔的設定モデル • 「あるべき状態」を記述すると、それを実現し続けようとしてくれる • 障害時も⾃動で復旧作業を実施
  8. Node Port "6$'30'5'4Ÿd )% %y– «©o sˆ~øơ  ( Щ­úyŠžTU\}>te–¥˜Öl

     ( Щ­~{~¹Rµd– «©mx‰ ġȿ¥R½©}ÒR²—Ö¡l %@5% !"#!#$"%#&' !"#!#$"%#!!" ¹Rµ ¹Rµ "##$# "##$#
  9. Deployment "ÕR ÔRµøơĉ %@5 '6A=:42(6E =FDE6C%D #@56%@CE  ?8C6DD %@5%

    !"#!#$"%#&' !"#!#$"%#!!" =FDE6C%      0)3'44  '2.1:/'05
  10. IBM~£Ö²¶ƗƵMǫſσ~ğŽŀ‡ Йµ¸˜²—ÀP–ÁÑ ǫſσljǘù}Ĺč @4<6C F36C?6E6Dƒ~ £È°´ F36C?6E6DÂR©~ £Ö²¶ŎȊ¬ÑÍR§ÏÖ ÙèO"Š @@8=6|{

    ĕ ~ŏàOőĉeĬĀ £Ö²¶ƗƵ £Ö²¶ƫĒ %&' !"#$% ()*+,-+.+/01+,234+05%(16 ¥R½©Ê°§Í C2762D ¥R½©Ê°§Í ¥R½©Ê°§Í C2762D ¥R½©Ê°§Í ¥R½©Ê°§Í C2762D C2762D ¥R½©Ê°§Í C2762D ¥R½©Ê°§Í ¥R½©Ê°§Í ¥R½©Ê°§Í ¥R½©Ê°§Í ¥R½©Ê°§Í %&' !"#$% 7,328.+05%976 Ž¹oztbc_Wi…ru’²^Ä£ %@??64EO,2ED@?@>A2C6@>A=JO )C2?D7@C>2E:@?5G:D@CO":4C@4=:>2E6O $"O(<J5:G6O"+@:462E6H2JO ,63(A96C6O *C32?@56 6A=@JO%"O3 O "&OOAA@??64EO2E2%@H6COr~Ƕņij
  11. Kubernetesのまとめ • コンテナーのオーケストレーション・ツール • 理想状態を宣⾔すると、その状態を維持しようとしてくれる • 3つの主要コンポーネント • Pod, Deployment,

    Service • PodはDeploymentによって作成され、管理されます。 Deploymentによって作成されたPodへのアクセスは、 Serviceを使⽤することで容易になります。
  12. © 2019 IBM Corporation OpenShiftMKubernetesz~ȚǪĩ“ȉĽm|eMCICDĞŪ“ĨĎMĈíå }Ė’vxM½ÒµMÑƨ´ÑǩLJM³ÁԘ“çĚČám†oN OPENSHIFT ĞŪǧƴ OpenShift CICDĸē

    –ÁÑ¢R§ÏÖ U£Ö²¶V Kubernetes –ÁÑ¢R§ÏÖ U£Ö²¶V Ubuntu / CentOS… Linux Kubernetes –ÁÑ¢R§ÏÖ U£Ö²¶V £Ö²¶ ÐÖ­˜É Linux OS £Ö²¶ R¢©´ÓR§ÏÖ Kubernetes~ǫſĞŪ yƣȐms–ÁÑ¢R§ÏÖ {uy‰ ĚŚƐŪ RHEL / RHCOS £Ö²¶ ÐÖ­˜É F36C?6E6Dz$A6?(9:7E
  13. Red Hat OpenShift on IBM Cloud z IBM Cloud™Ý~RedHat®OpenShift®Mïć}©¢RÐÀÒyıǴĩ~ï`IBM CloudÁа´¿œRÉyǺĔ}ƫĒlsOpenShift

    Щ­R“śǁoȦȬù| ¥R½©yoN The WeatherCompany®yȖ×2,500ł~Ö³ÇÖµńȎ“ȉĽo Kubernetes¥R½©}šǑƚælx`†oN
  14. 5-1. "=@F5y$A6?(9:7E“ūa "=@F5}Ô¡˜Ö Û× :3> 3:K 5@;@  }– «©mx

    ǬÝ~WÔ¡˜ÖXd Ô¡˜Ömxgtl` ĂƢ https://cloud.ibm.com/ dÔ¡˜ÖƐŪyo И´–ž™Ö´òƪħyo %.–ž™Ö´ycū`ȴh†o
  15. ąþūēo"Watson API – Visual Recognition 2019‡3¡± "#541044+45#05 –ÁÑ¢R§ÏÖ}çǚľư˜Ö­R¿šR©“ƿķmx ›ÖµÎR¦z~ŠŽğŽ“çĚĎ '95512''%*

    ²Ÿ©´űȫ“ǯƤ}ƆǪo 2''%*51'95 ǯƤ“²Ÿ©´űȫ}ƆǪo !+46#.'%1)0+5+10 Żț£Ö²Ö±}Dž†ĥǠ“ʼnÞo +4%17'3: Ņįù|ȻǙ›Ö¨Ö“ĸēmxM³R ­~ȠsřǍ“ŒĄmMþǡŠ´ÓÖ µ“íìo +4%17'3:'84 :D4@G6CJÝ}ČȁlM›ÖÑ°¯ŔĻ ‰źķls·ÍR©}ÿoĜĈ³R ­«°´ '3410#.+5:04+)*54 ²Ÿ©´dȝå~ĩů“ǜøo #0)6#)' 3#04.#513 ²Ÿ©´“ǶľưƒɀȲ“áa #563#.#0)6#)' 0&'345#0&+0) çǚľưƏĒ“ĂnxŸRÕRµȼÞM›Ö ²—²—RȼÞMȶƸ­¡źhMÿŴȼÞ| {“áa #563#.#0)6#)'.#44+<'3 ²Ÿ©´űȫ~éǰ“áaƬĦ~ĥǝǜø|{ 10'0#.:;'3†ˆ½Ç’² ²Ÿ©´dȝå~ƁŔMäŦĩMűĉ“ŒȪ 018.'&)'56&+1 £R³—Ö¡|m}MàīŖǞdîĪms Ğȷęǽ˳ÒyMdzƣƷ²Ÿ©´³R­d ȻǙ“ğŐęǽŁƨ±RÒ œĒǤ ľưǤ ȤÚƋǡǤ ŖǞȜȭǤ ǯƤǤ ŻțǤ 9EEAD HHH :3> 4@> H2ED@? ;A;2 56G6=@A6C4=@F5 D6CG:46D42E2=@8 9E>=
  16. Watson Visual Recognition (画像認識) 画像認識「⼀般種別」(General Tagging): • 事前学習済みの分類器の出⼒を返す 画像認識「カスタム」: •

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

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

    含めて約2⽇間限定でお使いいただけます ・IBM Cloud上で継続的にOpenShiftを検証する環境が 必要な場合は、5-1. OpenShiftをご利⽤ください ・ローカルでOpenShiftを検証する環境を構築されたい場合は、 5-2. Minishiftをご利⽤ください
  19.  +:DF2='64@8?:E:@?¥R½©~ŚĪ +:DF2='64@8?:E:@?“ýƊ}ŚĪoóŝ~ÃR¨}į”ygtl`N ÑV¥”Vª §ZW“MŚĪĿ‡~‰~eūēyf†oN ŚĪĿ‡~óĴă~êȅy+:DF2= '64@8?:E:@?~ƫĒ~Żť“ěŜmx 9EEA :3> 3:K

    H2ED@?D6CG:46D4C66? W +:DF2='64@8?:E:@?¥R½©:3>4C656?E:2=D 6?G ~®™ÖÔRµX†yį”ygtl`N ÀЙ¦RÝyM–MFp{^—IYNN 9EEAD 4=@F5 :3> 4@> }– «©mxM®°§ÍÅRµ“Ĉf†oN  "SXUJŽW_eb…t}|vx`jz“ŲŕmMǻ|vx `ëæ Ñ° mxƆǿm†o
  20.  :3>4C656?E:2=D 6?G £¾Rzǹƃ  :3>4C656?E:2=D 6?G “£¾R #$%&'()#*+,+-.&/!"0+-1 &'()#*+,+-.&/!"0+-10-2,+1*

    ­RȶÒ}ăŗ£ÇÖµ“ñāN Þāǂ  :3>4C656?E:2=D 6?G ?@56GC ~İƞƆǿ #3(2, 24* &'()#*+,+-.&/!"0+-10-2,+1* ­RȶÒ}ăŗ£ÇÖµ“ñāN Þāǂ
  21. 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アプリの作成
  22. 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 にブラウザでアクセスします。
  23.   ÀЙ¦Ry–ÁÑ¢R§ÏÖ}– «©m†o –ÁÑ¢R§ÏÖěŜyf†msd ŭ֓ǸmxĚŚŲŕmx‡†m‹a W¿•˜Ò~ĊȞXdǃţ“Ċ”tõMƇNjŭ֓ Ñ° mxM+:DF2='64@8?:E:@?~ōŬ“Ųŕm† oN

    ! ,2ED@?yŕǞU,2ED@?ęǽĿ‡Ë³Ò“ĸē ! ,2ED@?eǃţ“ŕǞmsúŤ“ěŜm†oN ! ,2ED@?yŕǞUž©­É˳ғĸē ! "śǁ~ƼŸ}ƀĎmsž©­É˳Ò@@5yŕǞm s Щ“ěŜm†oN [©ÇR´¿œÖy~Ųŕ ßƹă}&'£RµeěŜlx`~yMr“©ÇR´¿œ Ö~žÊÐyȑ”y–ÁÑ¢R§ÏÖ~*'!}– «ozM© ÇR´¿œÖy‰ōŬ“Ųŕyf†oN ©ÇR´¿œÖyW¿•˜Ò~ĊȞXÅ­Öyr~ëyȱvs ǃţ‰ŕǞƐŪyoN
  24. 追加ワークショップ (オプション) • 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
  25. 5-3. 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 より抜粋
  26. 5-3. Minishift ワークショップ 101 Setup 1 「仮想化環境を構成する」の⽇本語版はこちら」 • Windows: ibm.biz/Bdz39H

    • Mac: ibm.biz/Bdz39E Setup 2 MinishiftのインストールおよびOpenShiftサーバーを開始し、 Lab1から順番に進める。 ibm.biz/openshift1