■本日の資料 https://ibm-developer.connpass.com/event/209024/
■IBM Cloudへのログイン https://ibm.biz/BdfYtE
IBM Tech/Developer Dojo [!"]#$%&'()*+,-./0%$12$3$4567892021/04/14
View Slide
【⼊⾨】WebアプリケーションをKubernetesで構築するIBM Tech/Developer Dojoへようこそセミナー中のご質問はこちらからslido.com#dojo0414pm
学習の⽬的とゴール⽬的コンテナの概要と利⽤⽅法について理解するゴールIBM Cloud Kubernetes Serviceを利⽤したWebアプリケーション+DBを構築できるこのコースを学ぶ⽅の想定スキルIBM Cloud上でコンテナ実⾏環境を初めて利⽤する⽅
本イベントでは、IBM Cloud へのアクセスは上記URLから行ってくださいibm.biz/BdfYtE• IBM Cloud ログインアカウントをすでにお持ちの方は、こちらからログインしてください• IBM Cloud ライトアカウント作成アカウントをお持ちでない方は、ご登録をお願いします【本⽇のお願い】
1. [管理]→[アカウント]をクリックする 2. [アカウント設定]をクリックする 3. アカウント・タイプを確認する1. IBM Cloudアカウント種類の確認ü ライトアカウント (無料)ü PayG (従量課⾦)ü サブスクリプション※今回はライトアカウントを利⽤して説明を進めます
2. ワークショップ⽤のIBM Cloud環境にご⾃⾝のIBM Cloud IDを関連付ける注意事項・ブラウザはFirefoxが推奨です。・outlook.jpドメインのメールアドレスでうまく登録できない問題が確認されています。もしgmailなどをお持ちでしたらそちらをご利⽤ください。・本ワークショップ⽤のIBM Cloud環境はセミナー開催⽇を含めて約1⽇間限定でお使いいただけます
1.1: 下記URLにFirefoxブラウザでアクセスするhttps://techdojo.mybluemix.net1.2: [Lab Key]に oslab 、[Your IBMid]にご⾃⾝のIDを⼊⼒し、チェックボックスにチェックを⼊れて[Submit]をクリックする
1.3: Congratulations! が表⽰されたら [1. Log in IBM Cloud]リンクをクリックする
1.5: IBM Cloudダッシュボードの右上のアカウント情報の右横の v をクリックする1.6:[xxxxxxx – IBM] をクリックする
1.7: IBM Cloudダッシュボードの右上のアカウント情報が変更されたことを確認し、[リソースの要約]の[Clusters]をクリックする
1.8: [techdojo-xxx]をクリックする※本ワークショップではこちらのクラスタを使⽤します※数字は⾃動的に割り当てられます
⽬次1. コンテナテクノロジーとは2. IBM Cloud Kubernetes Service の始め⽅3. Kubernetesを活⽤したアプリ開発体験
1. コンテナテクノロジーとはなぜ「今」コンテナ/Docker/Kubernetesなどのテクノロジーが注⽬されているのか
(789Z['\)8]!"#$ or %&'(!"HA1QA-HA1DEV#1!"HA2QA-HA2DEV#2StorageDiskArrayTapeLibraryEquipment!"#$%&'!"#"$%&)*+ ,-!.()*+!'()"*(),-./01+23456789:#;09<=>?@ABCDEFGHI/0JK:LMNOP+QRP+STUVWXYZ[\]^!"#$%&jklmno-Z@pqrstuEv9+w;xfgyzBJK:LMNOP+1"23456789:6;<=>?@ITIL_`Xabcd[e
IT'(789^_`ab*c"defJK:!"#$V1.2JK:'()*V1.1!"#$%&'JK:!"#$V1.3aJK:!"#$V1.3b!"#"$%&'(&)()*+,&-./-./JK: JK: JK: JK:fgh/.< fgh/.< #"Wi>M=J SRE 0123456789:;<=%>?@A&%B2CDEFGHIJEhttps://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A#/media/File:Dole_container_is_placed_onto_a_truck.jpg
コンテナテクノロジーの特⻑1 起動が早い• ホストOSからみると、プロセスが⽴ち上がるだけ• スケールしたときにもすぐにアプリが⽴ち上がる2冪等性が保たれる• Infrastructure as Code により、環境構築の⼀連の作業をコード化できる• Immutable Infrastructure により、何度実⾏しても同じ環境が再現される3ポータビリティー性がある• アプリの実⾏に必要な依存関係をすべてパッケージングできる• Dockerエンジンが動く環境ならどこでも実⾏できることが保証されているべきとうせい
!"#$%'()*#+'!"#$%&'(!)&*+'+,-https://docs.docker.com/engine/docker-overview! fghij)kl2! mno0pj.qr! klstTub!vw! mnhij)kl2! mno0pj.xr:$Eyz{b:;|]! Eyz{.Uj0E2:;vw
;2BCDEABCDEFGHIE ABCDEFJKLM1"23L$M-NO!"#$%&'()*+)*+,-./-012./-0345)*+6789:678;<
)&*+,-.,/01*2 ( 3456789:;<! )*+,-3=->?8+@!!"#$%&'()*+! P#OQL,R"STUVW^_QLM"`abc! defLgLUhijkm noPLp2%qr6staukvwLxyO2z{Y|uc! ABCDEFGHIJ!"#$%&'()*+,-"./0!"#$%&'12345",-"./0!"#$%"&"67789:;<=:>?677@9:;<=:>?677A9:;<=:>?}~6staÄlÅÇÉÑ{*ÖÜ!"#$%&'()**'!""#$!"#$%&'()*+'!"#$%!'()#**!"#$%&'()**'+%,-(.%&%/*0,%&12á;<à"âL{äãåc1"23LJKLMçéOèL,R"ê6ëxí`!"#$%"&"677A9:;<=:>?
コンテナのはじめ⽅n CNCFの Cloud Native Trail Map を参照1. コンテナ化• ⼀般的には Docker コンテナで実施• いかなるサイズのアプリケーションも依存性もコンテナ化可能• 時間が経つにつれ、アプリケーションを分割しマイクロサービス化したくなるだろう2. CI/CD(継続デリバリの仕組み)• 継続インテグレーション・継続デリバリの仕組みをセットアップ• コード変更が 新しいコンテナ・イメージとして、⾃動的にビルドされ、テストされ、デプロイされるように3. オーケストレーション&アプリ定義• 互換性試験に合格している Certified Kubernetes 環境を選択• もっとも複雑なアプリケーションであってもHELMで 定義して、導⼊して更新していくことが可能
コンテナを学ぶにはnDocker 社のサイトから無償ダウンロード可能– https://www.docker.com/products/docker-desktop– docker for Mac / docker for WindowsnDocker について学ぶ–http://docs.docker.jp/index.html• 有志により Dockerのドキュメントが ⽇本語化されています• まずは Dockerfile をいくつか書いてみましょう︕
2. IBM Cloud Kubernetes Serviceの始め⽅従量課⾦(PAYG)またはサブスクリプションのアカウントhttps://cloud.ibm.com/docs/account?topic=account-accounts&locale=ja※ワークショップでは用意した環境を利用します
2. 画面右上の[Actions]→[Web端末]の順にクリックする。3. [インストール]をクリックする。完了後は先ほどの[Web端末]ボタンより利用可能です。【Kubernetes Webターミナルの導⼊⽅法】(参考)• Kubernetes Webターミナルのインストールにお時間(約10分前後)を要する場合があります。• Kubernetesクラスタの有無および状態の確認方法は下記の通りです。1. リソース・リストの[Clusters]のご自身で作成したクラスタ情報のページを表示する。※今回用意したクラスタ環境では利用することができません。
!"!"#$!"#$%&'()*+,-./012345678349:-;<=+,>?5@AB CDEFGHIJKLM
!#%&'()*=>?@ABCDE!"#$%& FGHIJ'()*+,-"./0 -KLMNOP
+,-)*.)/)0+,-)*.)/)0123456789%&:;<=>?@2ABC/D,+E/FG"HI/J
IBM Cloud Kubernetes Service (IKS)FGHI!"#$%&'!"#$%&'()*!+,-.'/0123()*+,-.!4'(5,!6789:$1;<#=!>?@'.'ABCDEF/00123!k8s-APIAG'F!kubectlHIJKLM4567+89!NOPQ!RSET1O:;,!7<=>?!Watson!IoT!DatabaseUVUV@ABCDE,!WXYC(.Z['ü†°>¢öz£§NY•+!ZD'/\]! ^_`-abcd#=
,-*./01234*5*,6789:;<=> ?*./@AB*1C@1D*EFGHI,1J*+FGKLMNO%P"&Q'3R*,FG!"#$%&$'$(
Kubernetes,W%XO&YZ,[\%]e¶ß®U©B™E´61"23]¨e?≠ÜÅ1"23L©B™E´UÆØjklm-n-
!"#$%#&'"(%)*+,&-./01/2Pod%&'()*1!"Node#$%"&'()*+,
!"#$%#&'"(%)*+,&-./01/2PodKubernetes +,-.%&'(/0!"#$%#&'"(%)*+,&-./01/2!"#$%#&'"(%)*+,&-./01/2!"#$%&$'$()*+,-.$%Node# Kubernetes-./01*23
!"#$%#&'"(%)*+,&-./01/2Pod!"#$%#&'"(%)*+,&-./01/2!"#$%#&'"(%)*+,&-./01/2!"#$%&$'$()*+,-.45&'()67894:;<=Node#>&'()?@A+,Kubernetes +,-.%&'(/0
!"#$%#&'"(%)*+,&-./01/2Pod!"#$%#&'"(%)*+,&-./01/2!"#$%#&'"(%)*+,&-./01/2!"#$%&$'$()*+,-.45Node67894:;<=Node#>&'()?@A+,Kubernetes +,-.%&'(/0
!"#$%#&'"(%)*+,&-./01/2Pod!"#$%#&'"(%)*+,&-./01/2!"#$%#&'"(%)*+,&-./01/2!"#$%&$'$()*+,-.Pod BCDE1-#!) Pod "#$%&' 10.1.0.x.10 .11 .12 .13 .14 .15 .16 .17 .18.19Kubernetes +,-.%&'(/0
マニフェストファイルで状態宣⾔(例)• コンテナーイメージは︖• コンテナーの数は︖• 必要なCPU/Memoryは︖• 外部アクセスのために開くポートは︖
3. Kubernetes を活⽤したアプリ開発体験ibm.biz/dojokadai1
Lab 0 – 0. 78#9: (1)Ck?l7)m$%no'pqrs$t$)IBM Cloud Shell*uvwxyQRISTUVWXSYZ[\]%&^_`a-bc01de=fQRISTUVWXS,gMUUh)ijk5lmZl8dno0ep
Lab 0 – 0. 操作の補⾜ (2)ログイン時はAdvoworkを指定してください。その次のリソースグループの指定は不要です。
IBM Cloud CLIから作成したIKSクラスタリストを表⽰する⽅法ibmcloud ks cluster lsLab 0 – 2. 操作の補⾜ (2)表示例
IBM Cloud CLI Plugin container-service/kubernetes-service(v1.0.8以降) または IBM Cloud Shellを利⽤時︓Kubernetesクラスタへの接続情報を取得するコマンドibmcloud ks cluster config --cluster <クラスタ名>Lab 0 – 2. 操作の補⾜ (3)
Lab 1 – 1.の4 操作の補⾜ (4)IBM Cloud Shellを利⽤時︓KubernetesのPort番号を確認KubernetesのワーカーノードのパブリックIP アドレス取得Kubectl get service guestbookibmcloud ks worker ls –cluster <クラスタ名>
作成したクラスタの削除⽅法Clusters リソースリスト現在利⽤しているサービスが確認できます。各サービス右側の(・・・)から削除してください。 クリックすると、以下のメニューが表⽰され編集や削除ができます※ワークショップで用意されたクラスタは自動的に削除されます
免責事項IBM Developer Dojoは開発者の⽅を対象に、IBM Cloudを主とした技術情報をお伝えする⽬的で開催しています。講師や運営スタッフにより、開催毎に最適と判断した内容でお届けしています。現在、ハンズオンを伴う講義はお客様の費⽤負担がない環境と⼿順でご案内しています。講義終了後、不要になりました制作物はお客様ご⾃⾝で削除をお願いいたします。クレジットカードの登録が伴わない場合、費⽤は⼀切発⽣致しませんが、ご登録いただいたお客様はご注意ください。講師陣はみなさまの利⽤状況を個別に確認することはできません。ご理解とご協⼒をお願いいたします。利⽤したサービスの削除⽅法については講義の中でご案内します。ご不明な点がございましたら、当⽇確認をお願いいたします。講義終了後、 IBM Developer Dojoに関するお問い合わせは「Slack」にお願いします。それ以外のIBM Cloudのお問い合わせにつきましては、弊社サポートセンターまで、次のいづれかの⽅法でお問い合わせください。IBM Cloudダッシュボードの「サポート」メニューから「Case」を作成し、英語でご記⼊くださいIBM Cloudサポートセンター「相談する」ボタンからチャットまたは電話でご連絡くださいhttps://www.ibm.com/jp-ja/cloud/supportご参加ありがとうございました。
【⼊⾨】WebアプリケーションをKubernetesで構築するIBM Tech/Developer Dojo お疲れ様でしたアンケートはこちらからslido.com#dojo0414pm