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

IBM Developer Dojo OpenShift 101

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Aya Tokura Aya Tokura
December 11, 2019

IBM Developer Dojo OpenShift 101

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

Avatar for Aya Tokura

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