Share
Embed
Transcript
56 slides
-
ibm.biz/IKSdojo お越しになりましたら、 ワークショップに必要なセットアップを 先に進めてくださいませ 1. PayGアカウント登録 2. IBM Cloud CLI
インストール 3. IBM Cloud Kubernetes Service作成 -
夏のIBM Dojo 2019 No. 開催日 時間 タイトル #1 8月7日(水) 14:00-17:00
Cloud入門 #2 8月21日(水) 14:00-17:00 Webアプリ+DB on Cloud Foundry #3 8月28日(水) 14:00-17:00 Webアプリ+DB on Docker/Kubernetes #4 9月4日(水) 14:00-17:00 IoT/Node-RED and Mobile #5 9月11日(水) 14:00-17:00 AI (Watson API) #6 9月18日(水) 14:00-17:00 Analytics/機械学習 (Watson Studio) #7 9月25日(水) 14:00-17:00 Blockchain (Hyperledger Fabric/Composer) #8 10月2日(水) 14:00-17:00 Function as a Service (Functions, Knative) -
タイムテーブル 14:00-14:05 (5min) オープニング 14:05-15:00 (55min) 夏のIBM Dojo #2 Webアプリ+DB
on Kubernetes <座学> ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉 彩 15:00-17:00 (120min) Kubernetesコードチャレンジ <ワークショップ> ⽇本アイ・ビー・エム株式会社 デベロッパーアドボケイト ⼾倉 彩 ⻄⼾ 京⼦ 17:00-17:30 (30min) クローズ -
ayatokura ƓǷ ȯ (Aya Tokura) IBM Developer Advocate ! ¡Ò·¬ÏÓ´ÒØª©Î¾ØƧßÝċ
! ÙÞ½R±ÎÔÓÓ´ĝÝƧßÝċ ! DevRel Meetup in Tokyo¤ÊϹ´Ţŝ ¬Ê¸RÄØ¶ǔȱIǭäȑǜIȟȕŬĞąmwI čðé}öP| IBM Cloud Watson}ƔƭȮȶå`J -
学習の⽬的とゴール ⽬的 コンテナの概要と利⽤⽅法について理解する ゴール IBM Cloud Kubernetes Serviceを利⽤した Webアプリケーション+DBを構築できる このコースを学ぶ⽅の想定スキル
IBM Cloud上でコンテナ実⾏環境を初めて利⽤する⽅ -
F$07. IBM Cloud #'+*9NURL L ibm.biz/dojo20190828 ! IBM
Cloud 5($7 #&%7."AB 5($7 ! IBM Cloud 2$.#&%7.:@ #&%7."AB JQ"U XÞÙ}bȐ_ -
⽬次 1. コンテナが注⽬されている理由 2. コンテナのテクノロジーとは 3. IBM Cloud Kubernetes Service
の始め⽅ 4. Kubernetesコードチャレンジ -
https://www.jsanet.or.jp/seminar/text/seminar_177.html 物流コンテナによる⾰命 コンテナの発明者は、全⽶有数のトラック 運送会社のオーナーとなったマルコム・ マクリーン(Malcom P. McLean) 国際貨物輸送の分野に 海陸⼀貫輸送という⼤変⾰ 1970年代には世界の主要航路のコンテナ
化がほぼ完了した。わずか10年程度でこれ ほど急激な形態の変化が起こったのは海運 史上でも他に例がない。 https://en.wikipedia.org/wiki/Malcom_McLean -
¤Ø´¸ļø}¨ª´Ë ØÃÕ or ¡Ò· æ HA1 QA-HA1 DEV#1 æ HA2
QA-HA2 DEV#2 Storage Disk Array Tape Library Equipment ¨ª´ËƤėé ªR¾R½§ čðé ¨ªÅ ƶƫŀĘ ª£©ÏRÔ ƶƫǾņ ¾²±ǢĘ ġǡêǕĺ ¬ÏÓ´ ±ÏR¹Ø¢ ƗȡŐõƉIĒǮƠí ƏƢ ÃÓL©ÑÂŢĘ ŖȀŢĘ ƏƢ®Á¶}IJú Şi ƶƫģê_ Úƴ·ÏÌØ¶yȳßû{ǧĄ |¨ª´Ëčð&ŢĘ ÃÓL©ÑÂŢĘ ¤Ø´¸ļø} NJǿȡƕ}ǂ{ßîŞä ITILžǽ}îǹũŞİ -
IT}¤Ø´¸äıǁƋȥû|őǘ ÃÓ ¤Ø´¸ V1.2 ÃÓ ¤Ø´¸ V1.1 ŵƥĔŤ ´ª¶ ÃÓ
¤Ø´¸ V1.3a ÃÓ ¤Ø´¸ V1.3b µÓ½ÓL¾ÃÒØ ÞƱ ¦R¿ª čðà čðà ÃÓ ÃÓ ÃÓ ÃÓ µÄÖ²¾R µÄÖ²¾R ´ª¶Ø©¹ SRE òĊ|ĤǢēkr Ĵě}¤Ø´¸ ƠƝ¨ª´Ë |ƻaiydxe https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A#/media/File:Dol e_container_is_placed_onto_a_truck.jpg -
2. コンテナのテクノロジーとは 1 起動が早い • ホストOSからみると、プロセスが⽴ち上がるだけ • スケールしたときにもすぐにアプリが⽴ち上がる 2 冪等性が保たれる
• Infrastructure as Code により、環境構築の⼀連の作業をコード化できる • Immutable Infrastructure により、何度実⾏しても同じ環境が再現される 3 ポータビリティー性がある • アプリの実⾏に必要な依存関係をすべてパッケージングできる • Dockerエンジンが動く環境ならどこでも実⾏できることが保証されている べきとうせい -
"#$%&'$()*+$,'$( VȠƸɨØWyV¤Ø´¸W âDžMhttps://docs.docker.com/engine/docker-overview ! -ÕÄÔ}ȠƸē ! %)RºÔǏŮ ! ȠƸɨØjy|ȰǍ !
%)ÕÄÔ}ȠƸē ! %)RºÔżŮlIÃÖ¬ªylwƛĞ ! ÃÖ¬ª¢ÔRÃēlwȰǍ -
<082> ]¤Ø´¸ ¤Ø´¸ŀĘnr}džʼnşƺnÃÒ²¶ÁRË ! VčðédȚǦ|ÃÓ£R¨ÑØĞcnƶƫŞWiydxe ! ¤Ø´¸}µÁ¡¶ª¯Ø°R·
ÌR©}Şİ TÃÓ}čðU ÌR©}żŮ ¤Ø´¸R}đå .#*%0\ìJNhuy9S`i`e\à« -
¤Ø´¸R}ÈR¯¿Ó´ y <082>+ ! ¤Ø´¸R}ÈR¯¿Ó´ -<082>ÌR© ! ÃÓ£R¨ÑØȭǒ|ƂĨ{ȉNjÁÔ ¾²£R©Ø¢xe !
œė¦R½R|ǵúk{_ \ ómR´¡±Î}ƶƫx^ ÈR¯¿Ó´dNjƄ^ ! <082>+ '+, (" %! '+, *$)& %! * # * * Vȩ}ƶƫx~Ğ_rW Ĭłdðñl{_ Ŏǂ{ÄØ°Rdşƺn ¤Ø´¸RÌR© T®ÓÏR¨ÑØU}¯Ö¢ * # * * -
<082>ūurčð}Ɛ <082>G92 <082> ÌR© ¤Ø´¸R Õ©ª¶Ó ƂĨ{ IJúśȍ čðé ¤Ø´¸R
ÌR©Şİ ÌR©} ǔƿ čðé ÃÓđå ÃÓčð -
コンテナのはじめ⽅ n CNCFの Cloud Native Trail Map を参照 1. コンテナ化
• ⼀般的には Docker コンテナで実施 • いかなるサイズのアプリケーションも依存性もコンテナ化可能 • 時間が経つにつれ、アプリケーションを分割し マイクロサービス化したくなるだろう 2. CI/CD(継続デリバリの仕組み) • 継続インテグレーション・継続デリバリの仕組みをセットアップ • コード変更が 新しいコンテナ・イメージとして、 ⾃動的にビルドされ、テストされ、デプロイされるように 3. オーケストレーション&アプリ定義 • 互換性試験に合格している Certified Kubernetes 環境を選択 • もっとも複雑なアプリケーションであっても HELMで 定義して、導⼊して更新していくことが可能 -
¤Ø´¸ĝ|~ !<082>è}¦¶cƎȁ°ØÖR·ƍŨ - https://www.docker.com/products/docker-desktop - docker for Mac / docker
for Windows !<082>|v_wĝ -http://docs.docker.jp/index.html ! Ůǰ| <082>}·ÏÌØ¶d ÙÞƩēkw_n ! o~ <082>3692 _fvcũ_wl`O -
¤Ø´¸čðƶƫ !¤Ø´¸ēůŔ| ƂĨ{} 1<082> ®Rª¤R·LÕÈ©¶Ó ¿Ô·L´ª¶ëĞē³RÔ ¤Ø´¸RLÕ©ª¶Ó 6@A/ 6@"./ <082>(246?@>E
čðéƶƫ 46@ 09<;2 46@=A?5 46@0<::6@ ¤Ê²¶ ¶ÓR| ëĞđå ¤Ø´¸R }¿Ô· ÃÓ£R ¨ÑØ} ¿Ô· ¤R·}ģ Ř ´ª¶³R Ô}ëĞđ å <082>3692 ÃÓ£R¨ÑؤR·y óǂ|Ƥė ´ª¶ąſlrI ÞƱĘÕ©ª¶Ó|ǔ ƿ ĬłdðñlrȪǩ|ÁR·½²¡ -
¤Ø´¸ƔƭKǗžē} #}ģʼn ¡Ò·º´ÂLÃÓ Ǘžēǀljû|ŁĒ <082>!A/2>;2@2?} ¤Ê²¶ !A/2>;2@2?ÄRª} ¤Ø´¸ŖȀ®ÓÏR¨ÑØ ÛìK #
<<492{z Ě }ŗäKřĎdIJă ¤Ø´¸Ɣƭ ¤Ø´¸Ƥė IBM Cloud Kubernetes Service (IKS) ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï >.32.? >.32.? ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï IBM Cloud Private (ICP) Þpwab^ShuyÕ\ñ¼ & <;;20@K-.@?<;<:=.>2<:=9EK *>.;?3<>:.@6<;1B6?<>K#60><096:.@2K %#K)8E16B2K #,<602[email protected] -2/)=52>2K +>/.;<12 2=9<EK&#K/ K #'K K==<;;20@K.@.&<C2>Kq}ǥŎĻ -
# +.3$ !A/2>;2@2?)2>B602 !) # +.3$ &>6B.@2 &
~sei9l ylwşƺk {9kxƶƫ `9wƶƫ| ¤Ø´¸ƶƫƟȆLŢĘn 9l}®Á¶ -
.. huy×å6÷Ò§US S±YÂV ¡Ò·º´ÂLÃÓ Ǘžēǀljû|ŁĒ <082>!A/2>;2@2?} ¤Ê²¶ !A/2>;2@2?ÄRª} ¤Ø´¸ŖȀ®ÓÏR¨ÑØ ÛìK
# <<492{z Ě }ŗäKřĎdIJă ¤Ø´¸Ɣƭ ¤Ø´¸Ƥė /01 !"#$% 234()$(%(5*6()7'8(*9/26: ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï >.32.? >.32.? ¦R¿ªÌ²¨Ï >.32.? ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï ¦R¿ªÌ²¨Ï /01 !"#$% ;)'7&%(*9/";: Þpwab^ShuyÕ\ñ¼ & <;;20@K-.@?<;<:=.>2<:=9EK *>.;?3<>:.@6<;1B6?<>K#60><096:.@2K %#K)8E16B2K #,<602[email protected] -2/)=52>2K +>/.;<12 2=9<EK&#K/ K #'K K==<;;20@K.@.&<C2>Kq}ǥŎĻ -
.< /01 !"#$% 234()$(%(5*6()7'8( !"#$% /01 !"#$% ;)'7&%( !"&'% i9lylw
şƺk {9kxƶƫ `9wƶƫ| ¤Ø´¸ƶƫƟȆLŢĘn &''9l}®Á¶ /01 !"#$% /01 !"#$% -
.= /01 !"#$% 234()$(%(5*6()7'8( !"#$% /01 !"#$% ;)'7&%( !"&'% i9lylw
şƺk {9kxƶƫ `9wƶƫ| ¤Ø´¸ƶƫƟȆLŢĘn &''9l}®Á¶ /01 !"#$% /01 !"#$% -
.> IBM Cloud Kubernetes Service (IKS) ÁÔɺR©·{!A/2>;2@2?jşƺ iesPÈ[Z L°²¨ÏÇR·Ĝƃ LȇĻ}½R©ÑØşƺ
jR¹Ã L»R·ţĻ LŀĘnɨتŲ¡ LȠƸ¦R½RIÄÌ¯Ô ?>><ăö Lk8s}APII³RÔ LkubectlūurȘŞ Ößt9ÅV LÖ¢źƁ L͹¯ÓØ¢ ćúRi9l©ò LWatson LIoT LDatabase{z{z WYnd^R LȷȏĮ·½§R ġǢŪ{IJúyȷȏĮŒâ LÌR©ǫŕ L đå÷}ķǣ±²¡ -
.? ¿À ·¾Sv9qnq9RNi9lÉê ç v9qnq9 Á¢ Ĺ© ! @A,BC !
5$,BD ! %#ABC ! E#$,*2#$, ! F#AG# ! 6'$,&H#)( ų© ! I(JBD ! 5GKBD ! 5GKB< ! 1(J4#3)$( ! 6GK$(G njơàǙ ! &I5B. ! L)&BC ! I'JBD ! H&)BD ! MI5%()K&I ! N)&$AL3)% ! 1'J&$ ! ;&)'5 LjÜųþ ! J#$BC ! J#$B< ! O#$K#$ ČÜïþ ! I#$BD ! %#)BD ! PK8B> ! PK8B? ! 1#$%)(&J ! F#)#$%# ! Q&5@'$,%#$R*S" ČÜųþ ! K&JDB ! K&JDC ! K&JD. ! @#3BD ! 5&#BD ! S&JJ&5 ! E#35%#$ ! 6&#*;&3J# https://console.bluemix.net/docs/containers/cs_regions.html#regions-and-locations -
.T .T ĉċQelq9¹Ã i9}9îÑ ïí ²ªÇÎë :?(#%); ²ªÇÎë :A(#%)* ÏöÐ+
ȠƸ ¦R½R CS=> ";U <SC<C***V0*WM1 XDCY÷ù XCZ?ĩYì ǏŮȠƸ ¦R½R CS=> ";U <SC<C***V0*WM1 X.=Y÷ù X?ZTĩYì œė ¦R½R <SCT ";U .CS=DC*V0*WM1 XTBRCBBYì XC<ĩYì ïħS" CBDTÛ<ìĴƄ}ƻ ! ×RRL»R·}ȭǒ÷ù|ƉmrǛƴƯæ ! ɪ¯RL»R·~Ưæõƣĭ ! NQ6%#)&,(I;#)%&4J(*/;{zƂĨ|ƉmwŴǸƷĿ -
.[ .[ ^qܸ 234()$(%(5 ɪ¯RL»R· TĪǬƤėU 234()$(%(5 ×RRL»R· 234()$(%(5 ×RRL»R·
,-.à« EóíIPRlq97|9x\ Éê5 ,-.à«/01(Rȸ Eóíà« EóíGz9FX i9}9\¦Ć5 Eóí/01(Rȸ 234()$(%(5 ×RRL»R· -
ɹÁª¶ÁÔxƖƜȋŇ TƻU ! ¤Ø´¸RÌR©~N ! ¤Ø´¸R}Ļ~N ! ƂĨ{&+ #2:<>E~N !
ĭþ¡¬ª}r|čfÈR¶~N -
#<>=<>.@6<; Pod !Kubernetes |bhĤĖ}ƤėǦŏ -.$}à|~ ?M¾ } ¤Ø´¸dƾ
-&<1Ǧŏxª£RÔØLª£RÔ¶n -&<1jy| &·Õªd¦Øk &<1 & ()*(*+),*-. ()*(*+),*(+/ -
#<>=<>.@6<; ReplicaSet !&<1Ƥėnr}úƞ -&<1}ƂĨȭǒĻúƞ -!)} #'%$3+%0 d z}»R·|¦Ønc~šȎlwf
&<1 & ()*(*+),*-. ()*(*+),*(() %/+(#!%2 Ó³½@ º »R· »R· -
#<>=<>.@6<; Node Port !3"%0-%2%1µc *& &x¡¬ªnr}úƞ -!)¡Òª¯üx´PQZ9wd¦Øk -!)¡Òª¯}z}»R·c¡¬ªlw
ĥȴ¦R¿ª|ÔR´Ø¢k &<1 & ()*(*+),*-. ()*(*+),*(() »R· »R· .BBDB .BBDB -
#<>=<>.@6<; Deployment !ĤãǼû{×R¡ÖR·úƞĎ -&<1 -(2=960.)2@ -9A?@2> &? -$<12&<>@
- ;4>2?? &<1 & ()*(*+),*-. ()*(*+),*(() 9A?@2> & -&0%11 %/+.4,%-2 -
まとめ 02 01 コンテナとは︖ Dockerとは︖ 03 Kubernetesとは︖ 04 コンテナのはじめ⽅ •
Linux上の隔離された空間で実⾏されるプロセス • アプリの実⾏に必要な依存関係をすべてパッケージングできる • コンテナーの作成・共有・実⾏をするためのツール • 冪等性やポータビリティー性といったメリットがある • コンテナーのオーケストレーション・ツール • 理想状態を宣⾔すると、その状態を維持しようとしてくれる • まずはアプリをコンテナ(Docker)化してみるところからスタート • Kubernetesは必要な機能だけを絞って動かしてみる -
=. /01 !"#$% 234()$(%(5*6()7'8( !"#$% /01 !"#$% ;)'7&%( !"&'% i9lylw
şƺk {9kxƶƫ `9wƶƫ| ¤Ø´¸ƶƫƟȆLŢĘn &''9l}®Á¶ /01 !"#$% /01 !"#$% -
=< IBM Cloud Private c9ue|k9 ÄRª| ŗäĽh !A/2>;2@2?ŖȀ `9wèâ xđĴ
[~Ǟij}½R©ÑØx}şƺŋúxnJÖR·É²Ã~ƅdzy{ƍŨĮd^n #9<A1A@<:.@6<;#.;.42> Eóíà«}¨ª´ËŖȀ 2B%=?³RÔ±RØ #Ê·Ô %)) ®ÓÏR¨ÑØL¯Ö¢ ¼ÂÓ²·LÉÔ±¡Ò· µÃÖëĞēLƤė /01*\ ùeax ¤Ø´¸ !A/2>;2@2? ]H($Q@' 5A RÃØ®R ª L®Á¶ ŢĘƤė Ưæ #' &><:2@52A? &><1A0@ ;?645@? ¬ÏÓ´ ȷȏĮ ·½§R µª¡ȣǯē ¤ØÃÒØ ªõƉ ÖRÔÄRª ¡¬ª :60><096:.@2 -2/ Ƙê / # -
== [~Ǟij}½R©ÑØx}şƺŋúxnJÖR·É²Ã~ƅdzy{ƍŨĮd^n #9<A1A@<:.@6<;#.;.42> Eóíà«}¨ª´ËŖȀ 2B%=?³RÔ±RØ #Ê·Ô %)) ®ÓÏR¨ÑØL¯Ö¢ ¼ÂÓ²·LÉÔ±¡Ò· µÃÖëĞēLƤė
/01*\ ùeax ¤Ø´¸ !A/2>;2@2? RÃØ®Rª L®Á¶ ŢĘƤė Ưæ #' &><:2@52A? &><1A0@ ;?645@? ¬ÏÓ´ ȷȏĮ ·½§R µª¡ȣǯē ¤ØÃÒØªõƉ ÖRÔÄRª ¡¬ª :60><096:.@2 -2/ Ƙê / # IBM Cloud Private (ICP) -
=> IBM Cloud Private [~Ǟij}½R©ÑØx}şƺŋúxnJÖR·É²Ã~ƅdzy{ƍŨĮd^n #9<A1A@<:.@6<;#.;.42> Eóíà«}¨ª´ËŖȀ 2B%=?³RÔ±RØ #Ê·Ô %))
®ÓÏR¨ÑØL¯Ö¢ ¼ÂÓ²·LÉÔ±¡Ò· µÃÖëĞēLƤė /01*\ ùeax ¤Ø´¸ !A/2>;2@2? RÃØ®Rª L®Á¶ ŢĘƤė Ưæ #' &><:2@52A? &><1A0@ ;?645@? ¬ÏÓ´ ȷȏĮ ·½§R µª¡ȣǯē ¤ØÃÒØªõƉ ÖRÔÄRª ¡¬ª :60><096:.@2 -2/ Ƙê / # => IBM Cloud Private [~Ǟij}½R©ÑØx}şƺŋúxnJÖR·É²Ã~ƅdzy{ƍŨĮd^n Eóíà«}¨ª´ËŖȀ /01*\ /01*\ ùeax Ċð (HWĒīKªÔKÃÓĞŞ) } ` \ͬ ¤Ø´¸ !A/2>;2@2? ȚǦ| ÜĂ ¤Ø´¸ bǎǂǏĘ} ÃÒÄR¶ Kubernetes 2B%=?³RÔ±RØ :60><096:.@2 -2/ Ƙê ȚǦ| ¥ #9<A1A@<:.@6<;#.;.42> ¼ÂÓ²·LÉÔ±¡Ò· µÃÖëĞēLƤė ȚǦ| ôä ŢĘƤė Ưæ &><:2@52A? &><1A0@ ;?645@? ¬ÏÓ´ ȷȏĮ ·½§R µª¡ȣǯē ¤ØÃÒØªõƉ ÖRÔÄRª ¡¬ª ȚǦ| ʬ #Ê·Ô %)) ®ÓÏR¨ÑØL¯Ö¢ RÃØ®Rª L®Á¶ #' / # ȚǦ| ã Ö Ø¢K͹¯ÓØ¢KƯæƤė ȷȏĮõƉ ¡¬ªĪǬ ¦R¿ªčðKǻĶû|µÃÖ ƒĘÊ·ÔKRÃØ®Rª¤Ø´¸K8sĞŞ ¡Òª¯RǓƬKÉÔ±¡Ò·õƉ IBM Cloud Private T6¾£\`ei9lPJN°ËÉê ¤Ø´¸ÌR©KHelm Chart -
.).O®]LHP\32/32JWD8 !21.-¥á Ìąowd 9 ƇĿlr¬²¨ÑجʸRÄRª|ƔƭÂÖ¢|ũ_rI ĀƼũȖVWatsončðôƪWÃÕØ¶!! ÕĄÔÆ HȲx¡¬ªƍŨ{¦¶|Ġčlw_iy H #9<A1}Ɣƭ¦R¿ªŀĘLŚƦlw_iy HƉȔ÷ĵxĞŞƍŨ{¤Ø´Ø³x^iy
ÕĄ ¤ ļĆśȍlwÌRÔ|wjĕȓfsk_J12BC<>8?7= 6/: 0<: ȌȍŌ+(" śçȫĨ ũȖƝŷŌȅȄƱǯ ťį Ŝŕ #9<A1}ض ǔƿÌRÔ·Õª )A/720@|F-.@?<;ÞȊDŽFyśȍlwfsk_ %! QQZZlwrI%&.@@2>;?ȵȧIYY¶ÒÂÔ¨ÏR´Ø¢{z}ÂÖ¢ $ ¬²¨ÑØǑlcur{zƀƸ}}ÂÖ¢IśçƈȍIyśç}}ÂÖ¢