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

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

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

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

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

Aya Tokura

April 14, 2021
Tweet

More Decks by Aya Tokura

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. 本イベントでは、
    IBM Cloud へのアクセスは上記URLから行ってください
    ibm.biz/BdfYtE
    • IBM Cloud ログイン
    アカウントをすでにお持ちの方は、
    こちらからログインしてください
    • IBM Cloud ライトアカウント作成
    アカウントをお持ちでない方は、
    ご登録をお願いします
    【本⽇のお願い】

    View Slide

  5. 1. [管理]→[アカウント]をクリックする 2. [アカウント設定]をクリックする 3. アカウント・タイプを確認する
    1. IBM Cloudアカウント種類の確認
    ü ライトアカウント (無料)
    ü PayG (従量課⾦)
    ü サブスクリプション
    ※今回はライトアカウントを利⽤して説明を進めます

    View Slide

  6. 2. ワークショップ⽤のIBM Cloud環境に
    ご⾃⾝のIBM Cloud IDを関連付ける
    注意事項
    ・ブラウザはFirefoxが推奨です。
    ・outlook.jpドメインのメールアドレスでうまく登録できない
    問題が確認されています。もしgmailなどをお持ちでしたら
    そちらをご利⽤ください。
    ・本ワークショップ⽤のIBM Cloud環境はセミナー開催⽇を
    含めて約1⽇間限定でお使いいただけます

    View Slide

  7. 1.1: 下記URLにFirefoxブラウザでアクセスする
    https://techdojo.mybluemix.net
    1.2: [Lab Key]に oslab 、[Your IBMid]にご⾃⾝のIDを
    ⼊⼒し、チェックボックスにチェックを⼊れて
    [Submit]をクリックする

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. ⽬次
    1. コンテナテクノロジーとは
    2. IBM Cloud Kubernetes Service の始め⽅
    3. Kubernetesを活⽤したアプリ開発体験

    View Slide

  13. 1. コンテナテクノロジーとは
    なぜ「今」
    コンテナ/Docker/Kubernetesなどの
    テクノロジーが注⽬されているのか

    View Slide

  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

    View Slide

  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

    View Slide

  16. コンテナテクノロジーの特⻑
    1 起動が早い
    • ホストOSからみると、プロセスが⽴ち上がるだけ
    • スケールしたときにもすぐにアプリが⽴ち上がる
    2
    冪等性が保たれる
    • Infrastructure as Code により、環境構築の⼀連の作業をコード化できる
    • Immutable Infrastructure により、何度実⾏しても同じ環境が再現される
    3
    ポータビリティー性がある
    • アプリの実⾏に必要な依存関係をすべてパッケージングできる
    • Dockerエンジンが動く環境ならどこでも実⾏できることが保証されている
    べきとうせい

    View Slide

  17. !"#$%'()*#+'
    !"#$%&'(!)&*+'
    +,-https://docs.docker.com/engine/docker-overview
    ! fghij)kl2
    ! mno0pj.qr
    ! klstTub!vw
    ! mnhij)kl2
    ! mno0pj.xr:$Eyz{b:;|]
    ! Eyz{.Uj0E2:;vw

    View Slide

  18. ;2BCDEABCDEFGHIE ABCDEF
    JKLM
    1"23L
    $M-NO
    !"#
    $%&'(
    )*+
    )*+,-
    ./-012
    ./-03
    45
    )*+
    6789:
    678;<

    View Slide

  19. )&*+,-.,/01*2 ( 3456789:;<
    ! )*+,-3=->?8+@
    !!"#$%&'()*+
    ! P#OQL,R"STUVW^_QLM"`abc
    ! defLgLUhijkm noPLp2%qr6staukv
    wLxyO2z{Y|uc
    ! ABCDEFGHIJ
    !"#$%&
    '()*+,
    -"./0
    !"#$%&
    '12345",
    -"./0
    !
    "
    #
    $
    %
    "
    &
    "
    6778
    9:;<=:>
    ?
    677@
    9:;<=:>
    ?
    677A
    9:;<=:>
    ?
    }~6staÄlÅÇ
    ÉÑ{*ÖÜ!"#$%&'()**'!""#$
    !"#$%&'()*+'!"#$%!'()#**
    !"#$%&'()**'+%,-(.%&%/*0,%&12
    á;<à"âL{äãåc
    1"23LJKLM
    çéOèL,R"ê6ëxí`
    !
    "
    #
    $
    %
    "
    &
    "
    677A
    9:;<=:>
    ?

    View Slide

  20. コンテナのはじめ⽅
    n CNCFの Cloud Native Trail Map を参照
    1. コンテナ化
    • ⼀般的には Docker コンテナで実施
    • いかなるサイズのアプリケーションも依存性もコンテナ化可能
    • 時間が経つにつれ、アプリケーションを分割し
    マイクロサービス化したくなるだろう
    2. CI/CD(継続デリバリの仕組み)
    • 継続インテグレーション・継続デリバリの仕組みをセットアップ
    • コード変更が 新しいコンテナ・イメージとして、
    ⾃動的にビルドされ、テストされ、デプロイされるように
    3. オーケストレーション&アプリ定義
    • 互換性試験に合格している Certified Kubernetes 環境を選択
    • もっとも複雑なアプリケーションであっても
    HELMで 定義して、導⼊して更新していくことが可能

    View Slide

  21. コンテナを学ぶには
    nDocker 社のサイトから無償ダウンロード可能
    – https://www.docker.com/products/docker-desktop
    – docker for Mac / docker for Windows
    nDocker について学ぶ
    –http://docs.docker.jp/index.html
    • 有志により Dockerのドキュメントが ⽇本語化されています
    • まずは Dockerfile をいくつか書いてみましょう︕

    View Slide

  22. 2. IBM Cloud Kubernetes Serviceの始め⽅
    従量課⾦(PAYG)またはサブスクリプションのアカウント
    https://cloud.ibm.com/docs/account?topic=account-accounts&locale=ja
    ※ワークショップでは用意した環境を利用します

    View Slide

  23. 2. 画面右上の[Actions]→[Web端末]
    の順にクリックする。
    3. [インストール]をクリックする。
    完了後は先ほどの[Web端末]ボタン
    より利用可能です。
    【Kubernetes Webターミナルの導⼊⽅法】(参考)
    • Kubernetes Webターミナルのインストールにお時間(約10分前後)
    を要する場合があります。
    • Kubernetesクラスタの有無および状態の確認方法は下記の通りです。
    1. リソース・リストの[Clusters]の
    ご自身で作成したクラスタ情報の
    ページを表示する。
    ※今回用意したクラスタ環境では利用することができません。

    View Slide

  24. !"
    !"#$
    !"#$%&'()*+,-
    ./012345678
    349:-;<=+,>?5@A
    B CDEFGHIJKLM

    View Slide

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

    View Slide

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

    View Slide

  27. IBM Cloud Kubernetes Service (IKS)
    FGHI!"#$%&'
    !"#$%&'()*
    !+,-.'/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#=

    View Slide

  28. ,-*./01
    234*5*,6789:
    ;<=> ?*./@AB*1
    C@1D*EFG
    HI,1J*+FG
    KLMNO%P"&Q'3R*,FG
    !"#$%&$'$(

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  34. !"#$%#&'"(%
    )*+,&-./01/2
    Pod
    !"#$%#&'"(%
    )*+,&-./01/2
    !"#$%#&'"(%
    )*+,&-./01/2
    !"#$%&$'$()*+,-.
    Pod BCDE1-#!) Pod "#$%&' 10.1.0.x
    .10 .11 .12 .13 .14 .15 .16 .17 .18
    .19
    Kubernetes +,-.%&'(/0

    View Slide

  35. マニフェストファイルで状態宣⾔
    (例)
    • コンテナーイメージは︖
    • コンテナーの数は︖
    • 必要なCPU/Memoryは︖
    • 外部アクセスのために開くポートは︖

    View Slide

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

    View Slide

  37. Lab 0 – 0. 78#9: (1)
    Ck?l7)m$%no'pqrs$t$)
    IBM Cloud Shell*uvwxy
    QRISTUVWXSYZ[\]%&^_`a-bc01de=
    fQRISTUVWXS,gMUUh)ijk5lmZl8dno0ep

    View Slide

  38. Lab 0 – 0. 操作の補⾜ (2)
    ログイン時はAdvoworkを指定してください。
    その次のリソースグループの指定は不要です。

    View Slide

  39. IBM Cloud CLIから作成したIKSクラスタリスト
    を表⽰する⽅法
    ibmcloud ks cluster ls
    Lab 0 – 2. 操作の補⾜ (2)
    表示例

    View Slide

  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)

    View Slide

  41. Lab 1 – 1.の4 操作の補⾜ (4)
    IBM Cloud Shellを利⽤時︓
    KubernetesのPort番号を確認
    KubernetesのワーカーノードのパブリックIP アドレス取得
    Kubectl get service guestbook
    ibmcloud ks worker ls –cluster <クラスタ名>

    View Slide

  42. 作成したクラスタの削除⽅法
    Clusters リソースリスト
    現在利⽤しているサービスが確認できます。
    各サービス右側の(・・・)から削除してください。 クリックすると、以下の
    メニューが表⽰され編集
    や削除ができます
    ※ワークショップで用意されたクラスタは自動的に削除されます

    View Slide

  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
    ご参加ありがとうございました。

    View Slide

  44. 【⼊⾨】WebアプリケーションをKubernetesで構築する
    IBM Tech/Developer Dojo お疲れ様でした
    アンケートはこちらから
    slido.com
    #dojo0414pm

    View Slide