Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

Sli.do #dojo0408

Slide 5

Slide 5 text

˜¬µ-(!. # '!"#'!% 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

Slide 6

Slide 6 text

# 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”"$

Slide 7

Slide 7 text

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!

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

ü コンテナは仮想マシン(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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

コンテナレジストリ 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イメージ)

Slide 15

Slide 15 text

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>

Slide 16

Slide 16 text

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 ⼀回のみ表⽰

Slide 17

Slide 17 text

•Ä£§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 $% ! $% #" # # # # # #

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

•Ä£§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œǐ

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

•Ä£§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

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

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

Slide 34

Slide 34 text

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ÞŦ

Slide 35

Slide 35 text

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Ä

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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

Slide 39

Slide 39 text

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 •Ä£§ ¾Äž‰·

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

• 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 追加ハンズオンワークショップ

Slide 44

Slide 44 text

• 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 とは

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

#CallforCode

Slide 49

Slide 49 text

2020 Call for Code Nk+^i*WejmT ðéq£Gµr/ˆª•ƒ0m/COVID-190 ! IBM Cloud„ńý`f‡±¿ôٕģš¥ ! KÌƹĜ\LmK!.:Ĝ\LpôƯ 4/27 (v) q­ #( ŵĉDŽł 3/22 (n) ŞǍęŋ ôŇ ŲĘĉâ 8,9v 10v ćʼnƿƾ G·Ùă 6/30 (©) # ŞǍęŋ ćŎDŽł 7/31 (s) q­ ŞǍęŋ ćŎ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

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

No content