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

WebアプリケーションをKubernetesで構築する / IBMDojo_k8s

WebアプリケーションをKubernetesで構築する / IBMDojo_k8s

■本日の資料
https://ibm-developer.connpass.com/event/209024/

■IBM Cloudへのログイン
https://ibm.biz/BdfYtE

8065fe5a0d33908c6f71c5ae28939dcd?s=128

Aya Tokura

April 14, 2021
Tweet

Transcript

  1. IBM Tech/Developer Dojo [!"] #$%&'()*+,-./0%$12$3$456789 2021/04/14

  2. 【⼊⾨】WebアプリケーションをKubernetesで構築する IBM Tech/Developer Dojoへようこそ セミナー中のご質問はこちらから slido.com #dojo0414pm

  3. 学習の⽬的とゴール ⽬的 コンテナの概要と利⽤⽅法について理解する ゴール IBM Cloud Kubernetes Serviceを利⽤した Webアプリケーション+DBを構築できる このコースを学ぶ⽅の想定スキル

    IBM Cloud上でコンテナ実⾏環境を初めて利⽤する⽅
  4. 本イベントでは、 IBM Cloud へのアクセスは上記URLから行ってください ibm.biz/BdfYtE • IBM Cloud ログイン アカウントをすでにお持ちの方は、

    こちらからログインしてください • IBM Cloud ライトアカウント作成 アカウントをお持ちでない方は、 ご登録をお願いします 【本⽇のお願い】
  5. 1. [管理]→[アカウント]をクリックする 2. [アカウント設定]をクリックする 3. アカウント・タイプを確認する 1. IBM Cloudアカウント種類の確認 ü

    ライトアカウント (無料) ü PayG (従量課⾦) ü サブスクリプション ※今回はライトアカウントを利⽤して説明を進めます
  6. 2. ワークショップ⽤のIBM Cloud環境に ご⾃⾝のIBM Cloud IDを関連付ける 注意事項 ・ブラウザはFirefoxが推奨です。 ・outlook.jpドメインのメールアドレスでうまく登録できない 問題が確認されています。もしgmailなどをお持ちでしたら

    そちらをご利⽤ください。 ・本ワークショップ⽤のIBM Cloud環境はセミナー開催⽇を 含めて約1⽇間限定でお使いいただけます
  7. 1.1: 下記URLにFirefoxブラウザでアクセスする https://techdojo.mybluemix.net 1.2: [Lab Key]に oslab 、[Your IBMid]にご⾃⾝のIDを ⼊⼒し、チェックボックスにチェックを⼊れて

    [Submit]をクリックする
  8. 1.3: Congratulations! が表⽰されたら [1. Log in IBM Cloud] リンクをクリックする

  9. 1.5: IBM Cloudダッシュボードの右上のアカウント情報の 右横の v をクリックする 1.6:[xxxxxxx – IBM] をクリックする

  10. 1.7: IBM Cloudダッシュボードの右上のアカウント情報が 変更されたことを確認し、[リソースの要約]の [Clusters]をクリックする

  11. 1.8: [techdojo-xxx]をクリックする ※本ワークショップではこちらのクラスタを使⽤します ※数字は⾃動的に割り当てられます

  12. ⽬次 1. コンテナテクノロジーとは 2. IBM Cloud Kubernetes Service の始め⽅ 3.

    Kubernetesを活⽤したアプリ開発体験
  13. 1. コンテナテクノロジーとは なぜ「今」 コンテナ/Docker/Kubernetesなどの テクノロジーが注⽬されているのか

  14. (789Z['\)8] !"#$ or %&'( !" HA1 QA-HA1 DEV#1 !" HA2

    QA-HA2 DEV#2 Storage Disk Array Tape Library Equipment !"#$%&' !"#"$%& )*+ ,-!. ()*+ !'()"* (),- ./01+ 23456 789:#; 09<=>? @ABCDEFGHI /0 JK:LMNOP+ QRP+ STUVWXYZ [\]^ !"#$%& jklmno-Z@pqrstu Ev9+w;xfgyzB JK:LMNOP+ 1"23456 789:6;<=>?@ ITIL_`Xabcd[e
  15. IT'(789^_`ab*c"def JK: !"#$ V1.2 JK: '()* V1.1 !"#$ %&' JK:

    !"#$ V1.3a JK: !"#$ V1.3b !"#"$%&'(&) () *+,& -./ -./ JK: JK: JK: JK: fgh/.< fgh/.< #"Wi>M=J SRE 012345678 9:;<=%> ?@A&%B 2CDEFGHIJE 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
  16. コンテナテクノロジーの特⻑ 1 起動が早い • ホストOSからみると、プロセスが⽴ち上がるだけ • スケールしたときにもすぐにアプリが⽴ち上がる 2 冪等性が保たれる •

    Infrastructure as Code により、環境構築の⼀連の作業をコード化できる • Immutable Infrastructure により、何度実⾏しても同じ環境が再現される 3 ポータビリティー性がある • アプリの実⾏に必要な依存関係をすべてパッケージングできる • Dockerエンジンが動く環境ならどこでも実⾏できることが保証されている べきとうせい
  17. !"#$%&#'()*#+&#' !"#$%&'(!)&*+' +,-https://docs.docker.com/engine/docker-overview ! fghij)kl2 ! mno0pj.qr ! klstTub!vw !

    mnhij)kl2 ! mno0pj.xr:$Eyz{b:;|] ! Eyz{.Uj0E2:;vw
  18. ;2BCDE<FGHIJ,KL ABCDEFGHIE ABCDEF JKLM 1"23L $M-NO !"# $%&'( )*+ )*+,-

    ./-012 ./-03 45 )*+ 6789: 678;<
  19. )&*+,-.,/01*2 ( 3456789:;< ! )*+,-3=->?8+@ !!"#$%&'()*+ ! P#OQL,R"STUVW<XYZ[J\] ^_QLM"`abc !

    defLgLUhijk<l m noPLp2%qr6staukv wLxyO2z{Y|uc ! ABCDEFGHIJ !"#$%& '()*+, -"./0 !"#$%& '12345", -"./0 ! " # $ % " & " 6778 9:;<=:> ? 677@ 9:;<=:> ? 677A 9:;<=:> ? }~6staÄlÅÇ ÉÑ{*ÖÜ<l !"#$%&'()**'!""#$ !"#$%&'()*+'!"#$%!&#'()#** !"#$%&'()**'+%,-(.%&%/*0,%&12 á;<à"âL{äãåc 1"23LJKLM çéOèL,R"ê6ëxí` ! " # $ % " & " 677A 9:;<=:> ?
  20. コンテナのはじめ⽅ n CNCFの Cloud Native Trail Map を参照 1. コンテナ化

    • ⼀般的には Docker コンテナで実施 • いかなるサイズのアプリケーションも依存性もコンテナ化可能 • 時間が経つにつれ、アプリケーションを分割し マイクロサービス化したくなるだろう 2. CI/CD(継続デリバリの仕組み) • 継続インテグレーション・継続デリバリの仕組みをセットアップ • コード変更が 新しいコンテナ・イメージとして、 ⾃動的にビルドされ、テストされ、デプロイされるように 3. オーケストレーション&アプリ定義 • 互換性試験に合格している Certified Kubernetes 環境を選択 • もっとも複雑なアプリケーションであっても HELMで 定義して、導⼊して更新していくことが可能
  21. コンテナを学ぶには nDocker 社のサイトから無償ダウンロード可能 – https://www.docker.com/products/docker-desktop – docker for Mac /

    docker for Windows nDocker について学ぶ –http://docs.docker.jp/index.html • 有志により Dockerのドキュメントが ⽇本語化されています • まずは Dockerfile をいくつか書いてみましょう︕
  22. 2. IBM Cloud Kubernetes Serviceの始め⽅ 従量課⾦(PAYG)またはサブスクリプションのアカウント https://cloud.ibm.com/docs/account?topic=account-accounts&locale=ja ※ワークショップでは用意した環境を利用します

  23. 2. 画面右上の[Actions]→[Web端末] の順にクリックする。 3. [インストール]をクリックする。 完了後は先ほどの[Web端末]ボタン より利用可能です。 【Kubernetes Webターミナルの導⼊⽅法】(参考) •

    Kubernetes Webターミナルのインストールにお時間(約10分前後) を要する場合があります。 • Kubernetesクラスタの有無および状態の確認方法は下記の通りです。 1. リソース・リストの[Clusters]の ご自身で作成したクラスタ情報の ページを表示する。 ※今回用意したクラスタ環境では利用することができません。
  24. !" !"#$ !"#$%&'()*+,- ./012345678 349:-;<=+,>?5@A B CDEFGHIJKLM<N:OP !"#$%

  25. !# %&'()* =>?@ABCDE !"#$%& FGHIJ '()*+,-"./0 - KLMNOP

  26. +,-)*.)/)0 +,-)*.)/)0 123456789%&:;<=>?@2AB C/D,+E/FG"HI/J

  27. IBM Cloud Kubernetes Service (IKS) FGHI<J=KLMN./O.P.QRSTU !"#$%&' !"#$%&'()* !+,-.'/0123 ()*+,-.

    !4'(5, !6789:$1;<#= !>?@'.'ABCDEF /00123 !k8s-APIAG'F !kubectlHIJKLM 4567+89 !NOPQ !RSET1O :;,!7<=>? !Watson !IoT !DatabaseUVUV @ABCDE, !WXYC(.Z[' ü†°>¢öz£§NY•+ !ZD'/\] ! ^_`-abcd#=
  28. ,-*./01 234*5*,6789: ;<=> ?*./@AB*1 C@1D*EFG HI,1J*+FG KLMNO%P"&Q'3R*,FG !"#$%&$'$(

  29. Kubernetes,W%XO&YZ,[\%] e¶ß®U<cï§ ©B™E´61"23]¨e ?≠ÜÅ1"23L©B™E´UÆØ jkl m-n-

  30. !"#$%#&'"(% )*+,&-./01/2 Pod %&'()* 1!"Node#$%"&'()*+,

  31. !"#$%#&'"(% )*+,&-./01/2 Pod Kubernetes +,-.%&'(/0 !"#$%#&'"(% )*+,&-./01/2 !"#$%#&'"(% )*+,&-./01/2 !"#$%&$'$()*+,-.

    $%Node# Kubernetes-./01*23
  32. !"#$%#&'"(% )*+,&-./01/2 Pod !"#$%#&'"(% )*+,&-./01/2 !"#$%#&'"(% )*+,&-./01/2 !"#$%&$'$()*+,-. 45&'()67894:;<=Node#>&'()?@A+, Kubernetes

    +,-.%&'(/0
  33. !"#$%#&'"(% )*+,&-./01/2 Pod !"#$%#&'"(% )*+,&-./01/2 !"#$%#&'"(% )*+,&-./01/2 !"#$%&$'$()*+,-. 45Node67894:;<=Node#>&'()?@A+, Kubernetes

    +,-.%&'(/0
  34. !"#$%#&'"(% )*+,&-./01/2 Pod !"#$%#&'"(% )*+,&-./01/2 !"#$%#&'"(% )*+,&-./01/2 !"#$%&$'$()*+,-. Pod BCDE1-#<FGIP*HIJAK+LM

    !) Pod "#$%&' 10.1.0.x .10 .11 .12 .13 .14 .15 .16 .17 .18 .19 Kubernetes +,-.%&'(/0
  35. マニフェストファイルで状態宣⾔ (例) • コンテナーイメージは︖ • コンテナーの数は︖ • 必要なCPU/Memoryは︖ • 外部アクセスのために開くポートは︖

  36. 3. Kubernetes を活⽤したアプリ開発体験 ibm.biz/dojokadai1

  37. Lab 0 – 0. 78#9: (1) Ck?l7)m$%no'pqrs$t$) IBM Cloud Shell*uvwxy

    QRISTUVWXSYZ[\]%&^_`a-bc01de= fQRISTUVWXS,gMUUh)ijk5lmZl8dno0ep
  38. Lab 0 – 0. 操作の補⾜ (2) ログイン時はAdvoworkを指定してください。 その次のリソースグループの指定は不要です。

  39. IBM Cloud CLIから作成したIKSクラスタリスト を表⽰する⽅法 ibmcloud ks cluster ls Lab 0

    – 2. 操作の補⾜ (2) 表示例
  40. IBM Cloud CLI Plugin container-service/kubernetes-service (v1.0.8以降) または IBM Cloud Shellを利⽤時︓

    Kubernetesクラスタへの接続情報を取得するコマンド ibmcloud ks cluster config --cluster <クラスタ名> Lab 0 – 2. 操作の補⾜ (3)
  41. Lab 1 – 1.の4 操作の補⾜ (4) IBM Cloud Shellを利⽤時︓ KubernetesのPort番号を確認

    KubernetesのワーカーノードのパブリックIP アドレス取得 Kubectl get service guestbook ibmcloud ks worker ls –cluster <クラスタ名>
  42. 作成したクラスタの削除⽅法 Clusters リソースリスト 現在利⽤しているサービスが確認できます。 各サービス右側の(・・・)から削除してください。 クリックすると、以下の メニューが表⽰され編集 や削除ができます ※ワークショップで用意されたクラスタは自動的に削除されます

  43. 免責事項 IBM Developer Dojoは開発者の⽅を対象に、IBM Cloudを主とした技術情報をお伝えする⽬的で開催しています。 講師や運営スタッフにより、開催毎に最適と判断した内容でお届けしています。 現在、ハンズオンを伴う講義はお客様の費⽤負担がない環境と⼿順でご案内しています。講義終了後、不要に なりました制作物はお客様ご⾃⾝で削除をお願いいたします。クレジットカードの登録が伴わない場合、費⽤は ⼀切発⽣致しませんが、ご登録いただいたお客様はご注意ください。 講師陣はみなさまの利⽤状況を個別に確認することはできません。

    ご理解とご協⼒をお願いいたします。 利⽤したサービスの削除⽅法については講義の中でご案内します。 ご不明な点がございましたら、当⽇確認をお願いいたします。 講義終了後、 IBM Developer Dojoに関するお問い合わせは「Slack」にお願いします。それ以外のIBM Cloud のお問い合わせにつきましては、弊社サポートセンターまで、次のいづれかの⽅法でお問い合わせください。 IBM Cloudダッシュボードの「サポート」メニューから「Case」を作成し、英語でご記⼊ください IBM Cloudサポートセンター「相談する」ボタンからチャットまたは電話でご連絡ください https://www.ibm.com/jp-ja/cloud/support ご参加ありがとうございました。
  44. 【⼊⾨】WebアプリケーションをKubernetesで構築する IBM Tech/Developer Dojo お疲れ様でした アンケートはこちらから slido.com #dojo0414pm