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

IBM Dojo: OpenShift4.3 + Watson アプリ開発体験 / OpenShift_Watson

IBM Dojo: OpenShift4.3 + Watson アプリ開発体験 / OpenShift_Watson

【オンライン】IBM Dojo: OpenShift4.3 + Watson アプリ開発体験
https://ibm-developer.connpass.com/event/171639/
・本日のセッション資料です
・IBM Cloud無料ライトアカウントはこちらから
https://ibm.biz/dojo20200408

Aya Tokura

April 08, 2020
Tweet

More Decks by Aya Tokura

Other Decks in Technology

Transcript

  1. IBM Developer Dojo
    OpenShift 101
    (Yasushi Osonoi)
    Sr. Developer Advocate
    Developer Advocacy Tokyo Client Team, IBM
    @osonoi
    (Aya Tokura)
    Sr. Developer Advocate
    Developer Advocacy Tokyo City Team, IBM
    @ayatokura
    #IBMDojo #OpenShiftWorldTour

    View Slide

  2. {
    OpenShiftǡċpjTküIJb
    Q+i
    OpenShiftËp‡±¿„¤±Â‰lZ~Upo
    7@P+UE‚Ay@£zULi
    •Ä£§÷ÎƅŽ„Ģzkğýbß
    Ȝ¡˜½ÄpjTk

    View Slide

  3. IBM Cloud‡ŠÄ¥(ţň)qĆı
    ǒĶIJŸĂŌ: https://ibm.biz/action1
    ÐáŒŜYWĥxloTß
    IBM Cloud uqƣƏr8u XUc+Z`ImqLehF}›„Ńý`k
    Îik[g_T
    ÜÌqWiFiāŗldžĚÉYÜàpƣƏbmŒ¾GmoÐYS€wb
    https://ibm.biz/dojo20200408

    View Slide

  4. Sli.do #dojo0408

    View Slide

  5. ˜¬µ-(!.
    #
    '!"#'!%

    C)2& )75.626*<*&,2.6,.5+*;;*-7:;
    C‘¾Š¦œ»¿£ˆC‡¾‰‡ÄšC™º­ÄŹÉÇó
    PŁǏ
    .>%.4ŒÄ™¨‡¯ÁĦ¿Gpofzq
    ŏǙ ǧǞÑ
    PljÕúNJĵÐ
    &7/*:..;206K(2;=*4&<=-277-. ǔƩÚńL
    ŧſƛŚÑ
    @ayatokura
    ¯ÂGAƝƉ¿‘Œš¥rWēƻpE

    View Slide

  6. #
    IBM Developer Advocacy Group, Client Developer Advocate
    '
    https://qiita.com/osonoi (Qiita)
    https://blogs.itmedia.co.jp/osonoi/ (IT Media)
    Twitter: @osonoi
    Facebook: @osonoi
    !
    “osonoi”"$

    View Slide

  7. City Leader
    AKIRA ONISHI
    City Team
    TAIJI HAGINO
    KYOKO NISHITO
    AYA TOKURA
    NORIKO KATO
    Program Manager
    TOSHIO YAMASHITA
    Client Team
    YASUSHI OSONOI
    JUNKI SAGAWA
    DEVELOPER ADVOCATE in TOKYO
    Tokyo Team is a part of Worldwide Developer Advocate Teams!

    View Slide

  8. öĹ
    1. •Ä£§
    2. Kubernetes
    3. OpenShift
    4. «Ä›ŽÄÃG‘˜½¡±

    View Slide

  9. odKðL
    •Ä£§/Docker/Kubernetesonq
    £‘ªÂ™GYźö_‚kTqXD
    1. •Ä£§

    View Slide

  10. https://youtu.be/1PPPUPcUkSs
    コンテナとは︖

    View Slide

  11. ü コンテナは仮想マシン(VM)に⽐べてリソース効率がよい
    ü スケールアウトが簡単
    VM(仮想マシン)とコンテナ
    VM(仮想マシン型) コンテナ型
    システム基盤
    ホストOS
    仮想化層
    ゲストOS ゲストOS ゲストOS
    Bin/Libs Bin/Libs Bin/Libs
    App1 App2 App3
    システム基盤
    ホストOS
    コンテナ・エンジン
    Bin/Libs Bin/Libs Bin/Libs
    App1 App2 App3

    View Slide

  12. •Ä£§„ŃifôÙqť‚
    7,3.:/24.on 7,3.:
    ‰¸G™on
    •Ä£§
    Á™š¥¿
    µ¨¯‹š¥l
    •Ä£§Ôõq
    ǜƲ„ĵƘ
    ôÙÒ
    •Ä£§
    ‰¸G™ĶĒ
    ‰¸G™q
    ƣƏ
    ôÙÒ
    ‡±¿÷Î
    ‡±¿ôÙ
    Ɨƨq±Âœš

    View Slide

  13. docker„ŃifƋ
    ğý
    Build
    Docker Runtime
    Gš}
    ųĒijġ
    åç¿´™¥¿G
    •Ä£§C‰¸G™
    Pull
    run/exec
    dockerHub
    dockerHub
    •Ä£§
    dockerHub
    ŽÄ¾‰ÄËpGd+T„ùŷ`kW[PmY\jTUZhqRƕlbB
    ƒFo‰¸G™qĆıAÔ͉¸G™qùŷYlZwbB
    DockerqǒĶrAķƊ_‚kTDocker •µÄ¦ICLIJ„ńý`wbB¼G—GrA
    įpoDocker image„•Ä£§øb]mlA‡±¿“G˜½Äm`kğýb]
    mYlZwbB

    View Slide

  14. コンテナレジストリ
    Container Registryはコンテナ・イメージを保管しておくための領域であり、Docker Hubはそのうちの
    ⼀つです。Container Registryは様々な種類があり、環境・⽤途によって使い分けが可能です。
    種類 概要 例
    Docker Hub
    様々なイメージが保管・公開されている。
    公開されているイメージを取得したり、作成したイメー
    ジを保管したりすることができる。
    料⾦を⽀払うことで、privateなレジストリとしても利⽤
    可能。
    -
    クラウド・サービス
    様々なクラウド・ベンダーなどが提供しているサービス。
    各ユーザーのPrivateな領域として利⽤可能。
    料⾦によって、サイズやアクセス回数の制限がある。
    IBM Cloud Container Registry
    Amazon ECR
    GCP Container Registry
    Azure Container Registry
    OSS
    ユーザー固有の環境に独⾃で作成するRegistry。
    環境・導⼊作業などは必要だが、基本的に⾃由に利⽤可
    能。
    NEXUS
    OCR (OpenShift Container Registry)
    また、各イメージはContainer Registryに作成された領域であるリポジトリ内に保存され、形式は下記の通りです。
    <リポジトリ名>/<イメージ名>(:)
    (例: ibmcom/websphere-liberty → ibmcomリポジトリ内のwebsphere-libertyイメージ)

    View Slide

  15. dockerコマンド操作
    イメージをdocker hubからpull
    > docker image pull gihyodocker/echo:latest
    イメージをコンテナ化して実⾏
    > docker container run -d -t -p 9000:8080 gihyodocker/echo:latest
    -d:バックグラウンドで実⾏
    -p:ポートフォワーディング
    コンテナを停⽌
    > docker container stop <コンテナID>
    コンテナを削除
    > docker container rm <コンテナID>
    イメージを削除
    > docker image rm <イメージID>

    View Slide

  16. dockerコマンド集(主なもの)
    概要 コマンド オプション
    イメージ取得 image pull {image}:{tag}
    イメージビルド image build {image}:{tag}
    イメージ⼀覧 image list
    タグの付与 image tag {image}:{tag} {image}:{新tag}
    イメージ削除 image rm {image id}
    コンテナ起動 container run {image}:{tag} -p {host port}:{container
    port}
    ポート公開
    -d バックグラウンド起動
    --rm 停⽌時にコンテナ削除
    コンテナ⼀覧 ps -a 停⽌状態含む全てのコンテナを取得
    コンテナ停⽌ container stop {container id}
    コンテナ削除 container rm {container id}
    コンテナ内でコマンド実⾏ container exec {container id}
    {command}
    -it インタラクティブに操作
    ステータス確認 stats --no-stream ⼀回のみ表⽰

    View Slide

  17. •Ä£§q´Gž®¿£ˆ
    ‡±¿“G˜½ÄǢƜpŖċoLJƙ¯†‰À„
    ­¡“G™Ä’lZ
    īü–G¬Gpƴã_‚oT
    Q Üa‡G£‘ ºqƅŽlS‚s
    ´Gž®¿£ˆYƙŘb
    KǠqƅŽlrĂTfL
    ĎĠYÙÚ`oT $%
    !

    $%
    #"

    #

    #
    #









    #

    #
    #



    View Slide

  18. ǘƈµ˜Ä(VM)pŦvk¿GšƐşY~T
    ´Gž®¿£ˆGYÛT
    š“GÀ‡Š¥YľƳ
    3Ɨƨq±Âœš„Ńýb]mlA
    ~€‡™º‰ÀoDevOpsmƸĕä‰Ä£’ÁG˜½Ä
    W~t¤¿¬¿GYŢŀpo
    •Ä£§qwmz

    View Slide

  19. •Ä£§m•Ä£§ŽG“š¥ÁG˜½ÄikD
    dockerg\a|Ÿ¸oqD
    2. Kubernetes

    View Slide

  20. https://youtu.be/zGXYRQ-8pU0
    Kubernetesとは︖

    View Slide

  21. •Ä£§GqĻý÷Îmŷü„ÎUJ+OUZj+Sfm¢GÀ
    ! •Ä£§GYÆƃpoik[m€:5D>3|w„¬G
    ! džĚq7,3.:³š¥qŷü
    ! ūńŤŶ
    ! š“™»G¿Ä’
    ! š“G¿Ä’
    ! ƠŠàq¿¬¿G
    ! ‡±¿÷ÎpŖċoGm`ghV+UE€
    ! ƫĕäoš¥ÁG™
    ! ©¡¥ÃG‘
    ! ‘Á¤Ä˜ºÀijġ .<,H
    ! ²{‡z¹¤À
    ! KSvZũŰL„ĵƘbmAe‚„÷Ĕ`ĕ\~Um`k[‚
    ! ƠŠà{ÔĂlƆǁĶ̈́÷Ŋ
    Kubernetesqœǐ

    View Slide

  22. Kubernetesの代表的な機能
    スケールアウト 負荷分散 バージョン管理
    (ロールアウト)
    ネットワーク管理
    永続ストレージ管理
    死活監視
    ⾃⼰復旧
    CPU / Memory リソース管理

    View Slide

  23. KuberneteslƮVkWZfTǡƀ
    Pod
    Kubernetes pW\ćûqŷüƬĪ
    !qÊpr 1;Œp q •Ä£§Yƍw‚
    $7-ƬĪlš“GÀ‰ÄCš“GÀ‡Š¥b
    $7-^mp$‡¦ÁšY‡–‰Ä_‚
    $7-$
    !"#!#$"%#&' !"#!#$"%#!$(

    View Slide

  24. KuberneteslƮVkWZfTǡƀ
    ReplicaSet
    Pod„ŷübfzqãű
    - PodqŖċǢƜ̄ãű
    - K8Sq Scheduler YnqªG¦p‡–‰Ä
    bXr
    - ĺNj`k[‚
    $7-$
    !"#!#$"%#&'
    !"#!#$"%#!!"
    ªG¦ ªG¦
    "%
    ”„‹2
    ‰r

    View Slide

  25. KuberneteslƮVkWZfTǡƀ
    Node Port
    &# %$†X '$$l‡‘
    œšbfzqãű
    &‘¾šžålq…=>Cb+ZY‡–‰Ä
    _‚
    &‘¾šžqnqªG¦X‡‘œš`k{
    Ĉǥ–G®špÀG£ˆÄ’_‚ $7-$
    !"#!#$"%#&'
    !"#!#$"%#!!"
    ªG¦ ªG¦
    "##$# "##$#

    View Slide

  26. KuberneteslƮVkWZfTǡƀ
    Deployment
    ÃG‘ÂG¦ãűõ
    $7-
    %.842,*&.<
    4=;<.:$;
    "7-.$7:<
    60:.;;
    $7-$
    !"#!#$"%#&'
    !"#!#$"%#!!"
    4=;<.:$








    #$$

    "!( %

    View Slide

  27. •Ä£§GqŽG“š¥ÁG˜½ÄC¢GÀ
    üƈũۄLjĤbmAeqũۄƼģ`~Umb
    3jqĊċ•Ä´G©Ä¥
    Pod
    Deployment
    Service
    Kubernetesqwmz
    PodrDeploymentp~ikĶĒ_‚Aŷü_‚wbB
    Deploymentp~ikĶĒ_‚fPoduq‡‘œšrA
    Service„Ńýb]mlľƳpo€wbB

    View Slide

  28. odKuberneteslro[OpenShift„ŃUqXD
    e{e{2jqŻTrD
    3. OpenShift

    View Slide

  29. https://youtu.be/KTN_QBuDplo
    OpenShiftとは︖

    View Slide

  30. View Slide

  31. IBM Cloud™ËqRedHat®OpenShift®rAÛòpš“G¾°ÀlėƪĐqÛTIBM
    Cloud±¾¡¥¯G·lƭþpŷü_‚fOpenShift‘¾šžG„ķƊbǕǛäo
    –G®šlbB The WeatherCompany®lljÅ2,500ħqŽÄ¤µÄ¦Ĩǂ„Ƽģb
    Kubernetes–G®špļƔŪÓ_‚kTwbB
    Red Hat OpenShift on IBM Cloud

    View Slide

  32. OpenShiftq`[x
    OpenShift 4 Platform
    ŪÓmÔĂø
    ˜G·ÁšoKubernetes¤±Â‰
    ‰Äš¥GÀqÔĂø
    R‘¿¡‘lq±¾¡¥¯G·Ʊè
    ‘¾Š¦¿GšqŽG¥š“G¿Ä’

    View Slide

  33. OpenShiftq`[x
    €Šš‚[t!x8yiV~…ŽmUehŒ“š~xD3`qb
    !$p,;4m$%*mIQ_whXv‹›“™3J’|~˜# x/-`qb
    /-`c‹›“™oD3mUehV "%*m<7_whXv!oƒ›‹~•‡x
    !%`qb
    ~…ŽiD3_wcE2rMLlkxBN`h~•‡x%oYZV!$o56™‡ˆ
    —m!%#`qb
    A]fg]V!$p‹›“™oDGmUeh~•‡œˆ—”x! mŒ“š~bvsY
    #o!$ $" "mDG`qb

    =1m#"&r" %$xK?`h>6–…\}‰ˆi]vsYm`qb
    K8s
    ‰¸G™Cš¥¿G·
    ¼G—G
    dockerHub
    Githubư
    åçÁ™š¥¿G
    ğý
    Build Deploy
    Sof
    integrated docker registry.
    ƒ›‹~•‡x‘˜Ž`h9+Œ“š~bvVjXY@p
    "o0j.aibnWcd`#FR*i;[b^ji
    ƒ›‹oH:Pu\OT4mSCmlehqbW

    View Slide

  34. Build Deploy
    K8s Runtime
    Gš}
    ųĒijġ
    ‰¸G™Cš¥¿G·
    ğý
    Build run/exec
    Docker Runtime
    Gš}
    ųĒijġ
    åçÁ™š¥¿G
    ‰¸G™
    ¼G—G
    Pull
    dockerHub
    Githubư
    åçÁ™š¥¿G
    ğý
    " ƵqKubernetesqƖŜǖǀ !
    dockermOpenShiftqšüqť‚qÞŦ

    View Slide

  35. OpenShiftuqÝìrƒFo­žGÄYS€wb
    K8s
    Deploy
    Dockerhubư
    Build
    docker
    Á™š¥¿
    Dockerfile
    Gš•G¦
    (Java, js, Py..etc)
    Catalog
    template
    (JSON/YAML)
    S2I
    Build
    Githubư
    file clipboard (folder)
    MDockerfile,Gš,TemplateqōZØđN
    Ąô_‚kT‰¸G™„eqww
    ƀĭy
    Ô͉¸G™„Ć€ĭy
    (OpenShiftËlBuild)
    ǝƙ‰¸G™pGš„ź
    Ý
    ļƔ÷Î
    žÂ’pƣ
    Ə
    DevOps Pipeline
    ‡±¿}¶¦ÀŠŒ‡mTifļƔäoG
    šlro[A‡±¿}¶¦ÀŠŒ‡„
    OpenShiftËnUĂXbXAmTUųĒ/ãű
    Ƨ„ǦƑm`kĵƘ`f{qlb
    OpenShiftuqƒFoÝìq­žGÄ

    View Slide

  36. OpenShiftコマンド操作
    OpenShiftへログイン
    > oc login -u <ユーザーID> -p <パスワード>
    プロジェクト新規作成
    > oc new-project <プロジェクト名>
    アプリケーション作成
    > oc new-app <コンテナイメージ>
    アプリケーションを公開
    > oc expose svc/<アプリケーション名>
    アプリケーションを削除
    > oc delete all -lapp=<アプリケーション名>
    プロジェクトを削除
    > oc delete project <プロジェクト名>
    OpenShiftからログアウト
    > oc logout

    View Slide

  37. OpenShiftコマンド集(主なもの)
    概要 コマンド オプション
    ログイン oc login -u developer -p hoge ログイン oc login -u developer -p hoge
    プロジェクトの作成 oc new-project プロジェクトの作成 oc new-project
    アプリケーションの作成 oc new-app アプリケーションの作成 oc new-app
    サービスの公開 oc expose svc/ サービスの公開 oc expose svc/
    ステータス表⽰ oc status ステータス表⽰ oc status
    オブジェクトの詳細表⽰ oc get all オブジェクトの詳細表⽰ oc get all
    デプロイメント構成(dc)
    の詳細表⽰ oc describe dc open-liberty
    デプロイメント構成(dc)の
    詳細表⽰ oc describe dc open-liberty
    アプリケーション⼀式の
    削除 oc delete all -lapp=
    アプリケーション⼀式の削
    除 oc delete all -lapp=
    プロジェクトの削除 oc delete project プロジェクトの削除 oc delete project
    プロジェクトのリスト oc projects プロジェクトのリスト oc projects
    ログアウト oc logout ログアウト oc logout
    ログイン oc login -u developer -p hoge ログイン oc login -u developer -p hoge
    プロジェクトの作成 oc new-project プロジェクトの作成 oc new-project

    View Slide

  38. https://youtu.be/cTPFwXsM2po
    KubernetesとOpenShiftの違い

    View Slide

  39. OpenShiftrAKubernetesmqnjƤЄƼģ`oYACICDąŀ„ďøAôÙÒpÿƒikA®À¦A
    ¿´™¥¿ƣƏA¤±Â‰„ÔĂ÷Î`wbB
    KubernetesmOpenShiftqŻT
    OPENSHIFT
    ąŀƢž
    OpenShift CICDğý
    ‡±¿“G˜½Ä
    I•Ä£§J
    Kubernetes
    ‡±¿“G˜½Ä
    I•Ä£§J
    Ubuntu / CentOS… Linux
    Kubernetes
    ‡±¿“G˜½Ä
    I•Ä£§J
    •Ä£§ ¾Äž‰·
    KubernetesqƥŒąŀ
    lųDž`f‡±¿“G˜½Ä
    nhl{
    ĂĶŢŀ
    RHEL / RHCOS
    •Ä£§ ¾Äž‰·

    View Slide

  40. Deploy:
    Gš•G¦X•Ä£§ĶĒm¤±Â‰wlqÔĂø
    Manage:
    Web•ĝGÀm•µÄ¦¾‰ÄqŔßXǒĶŢŀB
    ÷ÎũŰq¸¥¿¡‘šŤŶm’Öǚ{ķƊ
    Ļý:
    Ansible Playbook„ŃikŽG¥š“G¿Ä’YŢŀ
    Security:
    ProjectƬĪlǓƬpŷüŢŀ
    OpenShiftqwmz

    View Slide

  41. & Sli.do #X343
    https://app.sli.do/event/el0fcbgx

    View Slide

  42. http://ibm.biz/OpenShiftWS20200319
    4. «Ä›ŽÄÃG‘˜½¡±

    View Slide

  43. • Node-RED on OpenShift Workshop starter (日本語版)
    https://qiita.com/yamachan360/items/786f70cb532443f38c16
    • RedHat Japanのハンズオントレーニング ⽇本語訳
    複数コンテナの連携:
    https://github.com/osonoi/minishift/tree/master/lab1
    様々なデプロイメント⼿法:
    https://github.com/osonoi/minishift/tree/master/lab2
    追加ハンズオンワークショップ

    View Slide

  44. • 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 より抜粋
    Appendix: Minishift とは

    View Slide

  45. Setup 1
    「仮想化環境を構成する」の⽇本語版はこちら」
    • Windows: ibm.biz/Bdz39H
    • Mac: ibm.biz/Bdz39E
    Setup 2
    MinishiftのインストールおよびOpenShiftサーバーを開始し、
    Lab1から順番に進める。
    ibm.biz/openshift1
    Appendix: Minishift ワークショップ101

    View Slide

  46. IBM Code Patterns
    https://ibm.biz/ibmcodejp
    IJŸ ¤¹ĂŌ Gš•G¦YǨif‡±¿ôÙ­žGÄŕ

    View Slide

  47. ~xt6RGZ IBM Developer
    ibm.biz/IBMDevJP
    ćèijġ}šÀ‡¡±pŨëj„ƓVŧſĵЄķƊ

    View Slide

  48. #CallforCode

    View Slide

  49. 2020 Call for Code Nk+^i*WejmT
    ðéq£Gµr/ˆª•ƒ0m/COVID-190
    ! IBM Cloud„ńý`f‡±¿ôٕ욥
    ! KÌƹĜ\LmK!.:Ĝ\LpôƯ
    4/27 (v)

    #(
    ŵĉDŽł
    3/22 (n)
    ŞǍęŋ
    ôŇ
    ŲĘĉâ
    8,9v 10v
    ćʼnƿƾ
    G·Ùă
    6/30 (©)
    #
    ŞǍęŋ
    ćŎDŽł
    7/31 (s)

    ŞǍęŋ
    ćŎDŽł
    !7:87:*<276meqñÉAe‚YđŅbæÇÑq OěËW~tA
    %.-*<6,
    meqbvkqæÇÑrKÌƹĜ\L*44/7:7-.pr
    śĞlZwc…ql^źč[g_TB!Ñórǜ`[rÑå?–‰¥lB
    #CallforCode

    View Slide

  50. callforcode.org
    nožŽ
    https://ibm.biz/c4cjapan
    nož
    English
    #CallforCode

    View Slide

  51. View Slide