Slide 1

Slide 1 text

೔ຊΞΠɾϏʔɾΤϜגࣜձࣾ ςΫϊϩδʔࣄۀຊ෦ ΧελϚʔɾαΫηε ϓϦϯγύϧɾϚωʔδϟʔ ݉ 8JOEPXT$POUBJOFS1PSUJOH1SPHSBNਪਐϦʔμʔ େ੢ জ "LJSB0OJTIJ!JCNDPN 5XJUUFS!POJBL IUUQTXXXGBDFCPPLDPNBLJSBPOJTIJ IUUQTXXXMJOLFEJODPNJOPOJBL Windows ίϯςφ %PKP ୈճ 0QFO4IJGUͰֶͿ ,VCFSOFUFTೖ໳

Slide 2

Slide 2 text

ࣗݾ঺հ 1SPQFSUZ 7BMVF ࢯ໊ େ੢ জ 5XJUUFS-JOLFE*O POJBL *5ۀքྺ ೥໨ ௚ۙͷ৬ྺ Microsoft ೥ *#.೥໨ )BTI5BH ͍͍Ͷ͐੩Ԭੜ׆ ࠲ӈͷ໏ ౿·Εͯ΋ͳ্ཱ͓͕ͪΔಓͷ૲ Α͘࢖͏ٕ ೴಺ม׵Ͱࣗ෼ΛϙδςΟϒʹ IUUQTXXXGBDFCPPLDPNBLJSBPOJTIJ 'BDFCPPLʮ͓ʹ͋͘ʯͰݕࡧ

Slide 3

Slide 3 text

ୈճͷൣғ 3FE)BU0QFO4IJGUΛ,VCFSOFUFTͱͯ͠ར༻ ,VCFDUM ίϚϯυΛ࢖ͬͯ؀ڥΛૢ࡞ ˞ମݧ͕த৺ͷͨΊɺ,VCFSOFUFTΛ໢ཏతʹ ղઆ͢ΔηογϣϯͰ͸͋Γ·ͤΜɻ

Slide 4

Slide 4 text

0QFO4IJGUɺϋΠϒϦουΫϥ΢υઓུ

Slide 5

Slide 5 text

,VCFSOFUFTϓϥοτϑΥʔϜ https://kubernetes.io/ja/docs/concepts/overview/what-is-kubernetes/ ίϯςφͷ͋Δ΂͖ঢ়ଶΛ એݴతʹهड़ɺ ͦΕʹԠ࣮ͨ͡ߦɺࣗಈԽ ෛՙ෼ࢄɺࣗݾम෮ ػີ৘ใͱߏ੒؅ཧ

Slide 6

Slide 6 text

,VCFSOFUFTΞʔΩςΫνϟʔ %# FUDE "1*4FSWFS $MJFOU6TFS LVCFDUM $-* 8BUDIFS $POUSPMMFS /FUXPSLT 7PMVNFT 4FDSFUT 3FRVFTU .POJUPS ,VCFSOFUFT͸σʔλϕʔε FUDE ͷΑ͏ͳ΋ͷ 8BUDIFSͱ$POUSPMMFS͕σʔλϕʔε಺ͷมߋΛ൓ө͢Δ "1*4FSWFS͸ IUUQ3&45ʹΑΔσʔλϕʔεͷϑϩϯτΤϯυ /PEF /PEF 1PE #BTF04,FSOFM $POUBJOFS 3VOUJNF *NBHFT -JCFSUZ 6CVOUV ,VCFMFU ,VCF 1SPYZ 1PE4FSWJDF $ $ $

Slide 7

Slide 7 text

,VCFSOFUFTͷϫʔΫϩʔυ https://kubernetes.io/ja/docs/concepts/workloads/ 1PE,VCFSOFUFT಺Ͱ ࡞੒ɾ؅ཧͰ͖Δ ίϯϐϡʔςΟϯάͷ ࠷খͷσϓϩΠՄೳͳϢχοτ ίϯςφͷΠϯελϯεʣ %FQMPZNFOUల։ͷཧ૝తͳঢ়ଶ 3FQMJDBTFU1PEͷෳ੡໨ඪ

Slide 8

Slide 8 text

ࠓ೔ͷ࿩୊ 3FE)BU0QFO4IJGUͷ؀ڥΛར༻͠ɺ ओʹίϚϯυத৺Ͱ࣍ͷγφϦΦΛମݧ͠·͢ ɾ0$ίϚϯυ͔Β0QFO4IJGUʹ઀ଓ͢Δ ɾ%PDLFS)VCʹ͋Δ/HJOYͷΠϝʔδ SPPUݖݶෆཁͷ΋ͷ Λల։͢Δ ɾىಈதͷ1PEΛ࡟আ͢Δ ɾ1PEΛ4FSWJDFͰެ։͢Δ ɾϧʔτΛ࡞੒͢Δ ˞,VCFSOFUFTͰ͸ͳ͘0QFO4IJGUͷػೳ ɾϧʔτΛ࢖ͬͯΞϓϦʹΞΫηε͢Δ ɾ%FQMPZNFOUͷ1PE਺Λ૿΍͢ ɾ%FQMPZNFOUʹ࢖͍ͬͯΔίϯςφΠϝʔδΛߋ৽͢Δ ɾΠϝʔδͷߋ৽ΛऔΓফ͠ɺલͷόʔδϣϯʹ໭͢

Slide 9

Slide 9 text

ࢀߟ%PDLFS)VCΠϝʔδΛ࢖͏৔߹ͷ஫ҙ఺ IUUQTDMPVESFEIBUDPNCMPHEFQMPZJOHJNBHFTGSPNEPDLFSIVC IUUQTDMPVESFEIBUDPNCMPHHFUUJOHBOZEPDLFSJNBHFSVOOJOHJOZPVSPXOPQFOTIJGUDMVTUFS https://cloud.redhat.com/blog/managing-sccs-in-openshift https://docs.openshift.com/container-platform/4.10/authentication/managing-security-context-constraints.html Docker Hubに公開されて いるコンテナイメージの中 には、LinuxのRoot権限を 必要とするものがあり、 OpenShiftのセキュリティ 設定により動作しない場合 があります

Slide 10

Slide 10 text

3FE)BU0QFO4IJGUͷ؀ڥΛىಈ 3FE)BU0QFO4IJGU-PDBMΛ͓࣋ͪͷ৔߹ DSD TUBSU͋Δ͍͸(6*ϝχϡʔ͔Βىಈ ͋Δ͍͸ %FWFMPQFS4BOECPYGPS3FE)BU0QFO4IJGU΁ ઀ଓ

Slide 11

Slide 11 text

PD ίϚϯυͷ༗ޮԽ 3FE)BU0QFO4IJGU-PDBMͷ৔߹ IUUQTBDDFTTSFEIBUDPNEPDVNFOUBUJPOFOVTSFE@IBU@PQFOTIJGU@MPDBMIUNMHFUUJOH@TUBSUFE@HVJEFVTJOH@HTHBDDFTTJOHUIFPQFOTIJGUDMVTUFSXJUIPD@HTH 8JOEPXT 1PXFS4IFMM DSD PDFOWc*OWPLF&YQSFTTJPO .BD04 FWBM DSD PDFOW GUIから [Open developer terminal]を 選択すると oc コマンドが有効化され たターミナル (Windowsの場合は PowerShell)が起動します

Slide 12

Slide 12 text

PD ίϚϯυͷμ΢ϯϩʔυ ΋͠3FE)BU0QFO4IJGU-PDBM؀ڥΛߏஙͰ͖ͣɺ %FWFMPQFS4BOECPYΛར༻͢Δ৔߹ɺԼه63-͔Β PD ίϚϯυΛऔಘ 3FE)BUΞΧ΢ϯτ͕ඞཁ IUUQTDPOTPMFSFEIBUDPNPQFOTIJGUEPXOMPBETUPPMPD PDίϚϯυͷ;JQϑΝΠϧʹLVCFDUMίϚϯυؚ͕·Ε͍ͯ·͢

Slide 13

Slide 13 text

LVCFDUM ίϚϯυͷμ΢ϯϩʔυ https://kubernetes.io/ja/docs/tasks/tools/install-kubectl/ kubectl コマンドは演習で必須です Ocコマンドをダウンロードした⽅は 同梱のkubectlを使ってください もし今後、個別にkubectlの インストールが必要な場合は、 このスライドにあるURLを参照し、 インストール⽅法に従って、 コマンドを有効にしてください

Slide 14

Slide 14 text

PDίϚϯυͱLVCFDUMίϚϯυ OC コマンド kubectl コマンド Red Hat OpenShift API Server (クラスタAPI) Kubernetes API Server https://docs.openshift.com/container-platform/4.10/cli_reference/openshift_cli/usage-oc-kubectl.html https://kubernetes.io/ja/docs/concepts/overview/kubernetes-api/ https://docs.openshift.com/container-platform/4.10/rest_api/index.html Red Hat OpenShift クラスタ Kubernetes クラスタ ※ kubectlからOpenShift API Serverへは接続できません

Slide 15

Slide 15 text

Kubectl cluster-info のエラーメッセージ (developerアカウントでは権限が⾜りていない) To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. Error from server (Forbidden): services is forbidden: User "developer" cannot list resource "services" in API group "" in the namespace "kube-system" ԋशPD ίϚϯυͱ LVCFDUM ίϚϯυ PD MPHJOVEFWFMPQFSQEFWFMPQFSIUUQTBQJDSDUFTUJOH PD OFXQSPKFDULVCF LVCFDUM DMVTUFSJOGP LVCFDUM DPOGJHHFUDPOUFYUT PD MPHPVU PD MPHJOVLVCFBENJO Qύεϫʔυ IUUQTBQJDSDUFTUJOH PD QSPKFDULVCF oc new-project kube101 のエラーメッセージ (Developer Sandboxだと許可されていない) Error from server (Forbidden): You may not request a new project via this API.

Slide 16

Slide 16 text

ԋश4BOECPYͷ৔߹ ↓の oc コマンド⾏をコピー

Slide 17

Slide 17 text

ԋशίϯςφΠϝʔδ͔ΒΞϓϦల։ LVCFDUM DSFBUFEFQMPZNFOUOHJOYBQQJNBHFOHJOYJODOHJOYVOQSJWJMFHFEBMQJOF LVCFDUM HFUQPET

Slide 18

Slide 18 text

ԋशىಈதͷ1PEΛ࡟আ͢Δ LVCFDUM HFUQPET LVCFDUM EFMFUFQPE1PE໊ OHJOYBQQYYYY LVCFDUM HFUQPET IUUQTWJEFPJCNDPNDIBOOFMWJEFPEFMFUF1PE#Z,VCFDUM

Slide 19

Slide 19 text

ԋश4FSWJDFΛ࡞੒͢Δ LVCFDUM FYQPTFEFQMPZNFOUOHJOYBQQUZQF/PEF1PSUQPSU LVCFDUM HFUTFSWJDFOHJOYBQQ Pod 1 Label: app=nginx Port:32582 https://kubernetes.io/ja/docs/concepts/services-networking/service/

Slide 20

Slide 20 text

ԋशϧʔτΛ࡞੒͢Δ 1. OpenShiftのコンソールを開き、 画⾯左上のメニューから [Administrator]パースペクティブに 切り替えます 2. [ネットワーク] > [ルート]を選びます 3. [ルートの作成]をクリックします https://access.redhat.com/documentation/ja-jp/openshift_container_platform/4.10/html/networking/_configuring-routes ※ もし[ルートの作成]が表⽰されて いない場合kubeadminとしてログインが必要

Slide 21

Slide 21 text

ԋशϧʔτΛ࡞੒͢Δ ଓ͖ 4. 必須項⽬を⼊⼒します 名前: nginx-app パス: /web サービス: nginx-app ターゲットポート: 8080 → 8080 (TCP) 5. [作成]をクリックします

Slide 22

Slide 22 text

ԋशϧʔτΛ࢖ͬͯΞϓϦʹΞΫηε 1.[場所]に書かれているURLにアクセス 2.次のページが表⽰されるのを確認 404 Not Found nginx/1.15.12

Slide 23

Slide 23 text

ԋश%FQMPZNFOUͷ1PE਺Λ૿΍͢ LVCFDUM TDBMFEFQMPZNFOUOHJOYBQQSFQMJDBT IUUQTWJEFPJCNDPNDIBOOFMWJEFPLVCFDUM4DBMF%FQMPZNFOU --replicas= の数字を変えて、実⾏されているPodの数が 変化することを確認しましょう Red Hat OpenShiftの実⾏環境で利⽤できるリソースに 制約がある場合、必ずしも全てのPodが起動するとは 限りません (Kubernetesとしては宣⾔された値に近づく よう努⼒しますが、利⽤可能なシステムリソースが 確保できない場合は展開できないこともあります)

Slide 24

Slide 24 text

ԋश%FQMPZNFOUͷΠϝʔδมߋ LVCFDUM TFUJNBHFEFQMPZNFOUOHJOYBQQOHJOYVOQSJWJMFHFEOHJOYJODOHJOYVOQSJWJMFHFE LVCFDUM SPMMPVUTUBUVTEFQMPZNFOUOHJOYBQQ IUUQTWJEFPJCNDPNDIBOOFMWJEFPLVCFDUM4FU*NBHFSPMMPVUVOEP nginxinc/nginx-unprivileged:1.15.12-alpine nginxinc/nginx-unprivileged:1

Slide 25

Slide 25 text

nginxinc/nginx-unprivileged:1 ԋशมߋͨ͠ΠϝʔδͷऔΓফ͠ LVCFDUM SPMMPVUVOEPEFQMPZNFOUOHJOYBQQ IUUQTWJEFPJCNDPNDIBOOFMWJEFPLVCFDUM4FU*NBHFSPMMPVUVOEP nginxinc/nginx-unprivileged:1.15.12-alpine

Slide 26

Slide 26 text

PS C:¥Users¥containerdev> oc login -u developer -p developer https://api.crc.testing:6443 >> oc new-project kube101 >> kubectl cluster-info >> kubectl config get-contexts Login successful. You have one project on this server: "test" Using project "test". Now using project "kube101" on server "https://api.crc.testing:6443". You can add applications to this project with the 'new-app' command. For example, try: oc new-app rails-postgresql-example to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application: kubectl create deployment hello-node --image=k8s.gcr.io/e2e-test-images/agnhost:2.33 -- /agnhost serve-hostname To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. Error from server (Forbidden): services is forbidden: User "developer" cannot list resource "services" in API group "" in the namespace "kube-system" CURRENT NAME CLUSTER AUTHINFO NAMESPACE crc-admin api-crc-testing:6443 kubeadmin default crc-developer api-crc-testing:6443 developer default * kube101/api-crc-testing:6443/developer api-crc-testing:6443 developer/api-crc-testing:6443 kube101 test/api-crc-testing:6443/developer api-crc-testing:6443 developer/api-crc-testing:6443 test PS C:¥Users¥containerdev> kubectl create deployment nginx-app --image=nginxinc/nginx-unprivileged:1.15.12-alpine >> >> kubectl get pods >> deployment.apps/nginx-app created NAME READY STATUS RESTARTS AGE nginx-app-7668764795-nfxxf 0/1 ContainerCreating 0 0s PS C:¥Users¥containerdev> kubectl delete pod nginx-app-7668764795-nfxxf pod "nginx-app-7668764795-nfxxf" deleted PS C:¥Users¥containerdev> kubectl get pods NAME READY STATUS RESTARTS AGE nginx-app-7668764795-s7k6n 1/1 Running 0 6s PS C:¥Users¥containerdev> kubectl expose deployment nginx-app --type="NodePort" --port=8080 >> kubectl get service nginx-app service/nginx-app exposed NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE nginx-app NodePort 10.217.5.113 8080:32542/TCP 0s PS C:¥Users¥containerdev> kubectl scale deployment nginx-app --replicas=5 deployment.apps/nginx-app scaled PS C:¥Users¥containerdev> kubectl get pods NAME READY STATUS RESTARTS AGE nginx-app-7668764795-5vqc9 1/1 Running 0 7s nginx-app-7668764795-7vmqf 1/1 Running 0 7s nginx-app-7668764795-s7k6n 1/1 Running 0 3m24s nginx-app-7668764795-swkt9 1/1 Running 0 7s nginx-app-7668764795-v7hz2 1/1 Running 0 7s PS C:¥Users¥containerdev> kubectl set image deployment/nginx-app nginx-unprivileged=nginxinc/nginx-unprivileged:1 deployment.apps/nginx-app image updated PS C:¥Users¥containerdev> kubectl rollout status deployment/nginx-app deployment "nginx-app" successfully rolled out PS C:¥Users¥containerdev> kubectl rollout undo deployment nginx-app deployment.apps/nginx-app rolled back PS C:¥Users¥containerdev> 演習確認︓ Developer Sandbox for OpenShift Red Hat OpenShift Local (Windows 11 Pro)

Slide 27

Slide 27 text

·ͱΊ 3FE)BU0QFO4IJGUͷ؀ڥΛར༻͠ɺ ओʹίϚϯυத৺Ͱ࣍ͷγφϦΦΛମݧ ɾ0$ίϚϯυ͔Β0QFO4IJGUʹ઀ଓ͢Δ ɾ%PDLFS)VCʹ͋Δ/HJOYͷΠϝʔδ SPPUݖݶෆཁͷ΋ͷ Λల։͢Δ ɾىಈதͷ1PEΛ࡟আ͢Δ ɾ1PEΛ4FSWJDFͰެ։͢Δ ɾϧʔτΛ࡞੒͢Δ ˞,VCFSOFUFTͰ͸ͳ͘0QFO4IJGUͷػೳ ɾϧʔτΛ࢖ͬͯΞϓϦʹΞΫηε͢Δ ɾ%FQMPZNFOUͷ1PE਺Λ૿΍͢ ɾ%FQMPZNFOUʹ࢖͍ͬͯΔίϯςφΠϝʔδΛߋ৽͢Δ ɾΠϝʔδͷߋ৽ΛऔΓফ͠ɺલͷόʔδϣϯʹ໭͢

Slide 28

Slide 28 text

ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃の⾒解を反映したものです。それらは情報 提供の⽬的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助⾔を意図したものではなく、またそのような結果を⽣むも のでもありません。本講演資料に含まれている情報については、完全性と正確性を期するよう努⼒しましたが、「現状のまま」提供され、明⽰または暗 ⽰にかかわらずいかなる保証も伴わないものとします。本講演資料またはその他の資料の使⽤によって、あるいはその他の関連によって、いかなる損害 が⽣じた場合も、IBMは責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかな る保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使⽤を規定する適⽤ライセンス契約の条項を変更することを意図したもので もなく、またそのような結果を⽣むものでもありません。 本講演資料でIBM製品、プログラム、またはサービスに⾔及していても、IBMが営業活動を⾏っているすべての国でそれらが使⽤可能であることを暗⽰ するものではありません。本講演資料で⾔及している製品リリース⽇付や製品機能は、市場機会またはその他の要因に基づいてIBM独⾃の決定権をもっ ていつでも変更できるものとし、いかなる⽅法においても将来の製品または機能が使⽤可能になると確約することを意図したものではありません。本講 演資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上⾼の向上、またはその他の結果が⽣じると述べる、または暗⽰すること を意図したものでも、またそのような結果を⽣むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使⽤し た測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラ ミングの量、⼊出⼒構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、 個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使⽤したか、またそれらのお客様が達成した結果の実例として⽰された ものです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、IBM Cloud、IBM Cloud Paksは、 世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他 の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、 www.ibm.com/legal/copytrade.shtmlをご覧ください。 Microsoft, Windows, Windows Server, .NET Framework, .NET, .NET Coreは、Microsoft Corporationの商標または登録商標です。