$30 off During Our Annual Pro Sale. View Details »

IBM Developer Dojo OpenShift 101

Aya Tokura
December 11, 2019

IBM Developer Dojo OpenShift 101

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

Aya Tokura

December 11, 2019
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/dojo20191218 ! 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¨~ Ǥǂ ćíå –ÁÑċá –ÁÑćí Ǒǭ~ÁÔ«©
  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 "5#&2/&4&3šd )% %y– «©o sˆ~øƝ  ( Щ­úy…™PQXx<oe–¥˜Ö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%      /(2&33  &1-09.&/4
  10. IBM~£Ö²¶ƓƱMǦŻčƒ~ЎĽ‡ Йµ¸˜²—ÀP–ÁÑ ǦŻčƒDŽǓù}ĶČ @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 ‰³juo]^[Sd€mp­Z¾ž %@??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~DZŃİ
  11. Kubernetesのまとめ • コンテナーのオーケストレーション・ツール • 理想状態を宣⾔すると、その状態を維持しようとしてくれる • 3つの主要コンポーネント • Pod, Deployment,

    Service • PodはDeploymentによって作成され、管理されます。 Deploymentによって作成されたPodへのアクセスは、 Serviceを使⽤することで容易になります。
  12. © 2019 IBM Corporation OpenShiftMKubernetesz~ȕǥħ“Ȅĺm|eMCICDĝŦ“ĦčMćíå }ĕ’vxM½ÒµMÑƨ´ÑǤǂM³ÁԘ“çęċá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½©}ŝnjƖæ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. 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 より抜粋
  16. 5-2. Minishift ワークショップ 101 Setup 1 「仮想化環境を構成する」の⽇本語版はこちら」 • Windows: ibm.biz/Bdz39H

    • Mac: ibm.biz/Bdz39E Setup 2 MinishiftのインストールおよびOpenShiftサーバーを開始し、 Lab1から順番に進める。 ibm.biz/openshift1
  17. ĄýŧĒo"Watson API – Visual Recognition 2019‚3Šœ¬ !"430/33*34"/4 –ÁÑ¢R§ÏÖ}çǕĻƬ˜Ö­R¿šR©“ƻĴmx ›ÖµÎR¦z~ŠŽĞŽ“çęč &84401&&$)

    ²Ÿ©´ŭȥ“ǪƠ}Ƃǥo 1&&$)40&84 ǪƠ“²Ÿ©´ŭȥ}Ƃǥo *35"-&$0(/*4*0/ ŷȖ£Ö²Ö±}ǀ†ģǛ“ņÞo *3$06&29 łĭù|ȴǔ›Ö¨Ö“ĵĒmxM³R ­~țsŕLj“ŎămMýǜŠ´ÓÖ µ“íìo *3$06&29&73 :D4@G6CJÝ}ċǼlM›ÖÑ°¯Őĸ ‰ŶĴls·ÍR©}þoěć³R ­«°´ &230/"-*49/3*()43 ²Ÿ©´dȘå~ħū“Ǘøo "/(5"(& 2"/3-"402 ²Ÿ©´“DZĻƬƒȹȬ“áa "452"-"/(5"(&/%&234"/%*/( çǕĻƬƋđ“ānxŸRÕRµȵÞM›Ö ²—²—RȵÞMȯƴ­¡ŶhMþŰȵÞ| {“áa "452"-"/(5"(&-"33*'*&2 ²Ÿ©´ŭȥ~éǫ“áaƨĤ~ģǘǗø|{ 0/&/"-9:&2ƒ·Ã­ ²Ÿ©´dȘå~ŽŐMäŢħMŭĈ“ŎȤ /07-&%(&45%*0 £R³—Ö¡|m}MàĩŒǙdîĨms ĝȰĘǸ˳ÒyMǮƟƳ²Ÿ©´³R­d ȴǔ“ĞŌĘǸľƤ±RÒ ŏđǟ ĻƬǟ ȟÚƇǜǟ ŒǙȗȧǟ ǪƠǟ ŷȖǟ 9EEAD HHH :3> 4@> H2ED@? ;A;2 56G6=@A6C4=@F5 D6CG:46D42E2=@8 9E>=
  18. Watson Visual Recognition (画像認識) 画像認識「⼀般種別」(General Tagging): • 事前学習済みの分類器の出⼒を返す 画像認識「カスタム」: •

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

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

    含めて約3⽇間限定でお使いいただけます ・IBM Cloud上で継続的にOpenShiftを検証する環境が 必要な場合は、5-1. OpenShiftをご利⽤ください ・ローカルでOpenShiftを検証する環境を構築されたい場合は、 5-2. Minishiftをご利⽤ください
  21.  +:DF2='64@8?:E:@?¥R½©~ŖĨ +:DF2='64@8?:E:@?“üƆ}ŖĨoóř~ÃR¨}ĭ”ygtl`N ÍR R¥›¢VSŽ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‘ICkvZ’EUJN 9EEAD 4=@F5 :3> 4@> }– «©mxM®°§ÍÅRµ“ćf†oN  "OTQF‰‹S[`]€o}|vx`jz“ŮőmMǶ|vx `ëæ Ñ° mxƂǺm†o
  22.  :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 ÞĀƾ
  23. 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アプリの作成
  24. 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 にブラウザでアクセスします。
  25.   ÀЙ¦Ry–ÁÑ¢R§ÏÖ}– «©m†o –ÁÑ¢R§ÏÖĚŘyf†msd ŭ֓dzmxęŖŮőmx‡†m‹a W¿•˜Ò~ĉșXdƿş“ĉ”tõMƃdžŭ֓ Ñ° mxM+:DF2='64@8?:E:@?~ʼnŨ“Ůő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‰ʼnŨ“Ůőyf†oN ©ÇR´¿œÖyW¿•˜Ò~ĉșXÅ­Öyr~ëyȫvs ƿş‰őǙƌŦyoN
  26. 追加ワークショップ (オプション) • Node-RED on OpenShift Workshop starter (日本語版) https://qiita.com/yamachan360/items/786f70cb532443

    f38c16 • RedHat Japanのハンズオントレーニング ⽇本語訳 複数コンテナの連携: https://github.com/osonoi/minishift/tree/master/lab1 様々なデプロイメント⼿法: https://github.com/osonoi/minishift/tree/master/lab2