Slide 1

Slide 1 text

Watson APIを呼び出す アプリケーションを Kubernetesで動かそう ⽇本アイ・ビー・エム(株) Developer Advocate ⻄⼾ 京⼦ DOC ID / Month XX, 2018 / © 2018 IBM Corporation python-flask版

Slide 2

Slide 2 text

Kyoko NISHITO IBM Developer Advocate @kyokonishito t in

Slide 3

Slide 3 text

Developer Advocate

Slide 4

Slide 4 text

TECHNOLOGISTS RULE THE WORLD 技術者が世の中を変えていくお⼿伝いをします︕ ・技術情報を提供します ・開発者と話をします ・開発者にとって何が⼀番良いかを考えます ・開発者の困ったを⼀緒に解決します ・開発者をヒーローにします

Slide 5

Slide 5 text

OUR ACTIVITIES こんな活動をしながら技術者のみなさまをサポートします︕ ・オンラインでの情報発信(Blog、SNS、Podcastなど) ・オフラインでの情報発信(書籍、雑誌など) ・セミナー、勉強会などでの登壇 ・コミュニティ、Meetupなどのリード ・ハンズオンワークショップなどでの講師 ・ハッカソン、ラボ、Dojoなどでのテックサポート

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

Yes, we are DeveloperAdvocate

Slide 8

Slide 8 text

8 本⽇の出席確認 https://ibm.biz/BdzME9 下記のURLより出席確認を兼ねて IBM Cloudにログインお願いします。

Slide 9

Slide 9 text

本⽇の資料はこちら 9 ibm.biz/w20190710 またはこのイベントのコンパスの ページの資料Linkを参照ください

Slide 10

Slide 10 text

最初に: 事前準備の確認 10 既にのIBM Cloud 有償アカウント (Subscriptionを含む) をお持ちのかたは3のみ 実施ください。 1.IBMCloudアカウントの作成 https://ibm.biz/BdzME9 2. IBM Cloud 従量課⾦アカウントへのアップグレード クレジットカードのご登録が必要です。 2分弱のビデオ(https://youtu.be/uFCSvAKapr0) によるアカウントのアップグレード ⽅法もご参照ください。 3. CLIのインストール、IKSクラスタの作成 https://ibm.box.com/v/iks-workshop ibm.

Slide 11

Slide 11 text

このセッションについて 11 • ⽬的 Watson APIを呼び出すアプリケーションを Kubernetes上で動かす⽅法を体験する • ゴール アプリケーションをKubernetes上で動かせる ようになる

Slide 12

Slide 12 text

このセッションの流れ 12 1. 作成するアプリケーションの解説 2. ハンズオン 〜20:20まで 各⾃資料を⾒て進めていただきます。 不明な点があれば遠慮なく質問してください

Slide 13

Slide 13 text

どんなアプリケーション? 13 スマートフォンのカメラやファイル から取得した画像を送ると、 Watson Visual Recognitionで 画像認識し、 結果を表⽰するアプリケーションを IBM Kubernetes Service上にデプ ロイします。

Slide 14

Slide 14 text

使⽤している主なテクノロジー 14 • Flask • Python⽤のマイクロWeb開発フレームワーク • Watson Visual Reconginition • IBM Watsonの画像認識サービス。ディープ・ラーニングを使⽤ して、画像に写った物体・情景・顔など様々なものを分析・認識 します。 • IBM Cloud Kubernetes Service • IBM CloudのKubernetesのマネージドサービス • Vue.js:UIを構築するためのプログレッシブフレームワーク • bootswatch: Bootstrapのテーマ • vue-qriously: Vue.jsでQRCodeを表⽰するライブラリ

Slide 15

Slide 15 text

15 Visual Recognition • 画像認識「⼀般種別」(General Tagging): • 画像の特徴を検知し、タグとして抽出しクラス・キーワー ド(⽝、⼭などの⼀般名詞)を⽣成します • 顔検出(Facial Detection): • イメージ内の⼈物の顔を検出し、顔の⼀般的な年齢層と性 別も⽰します。 • 画像認識「カスタム」: • 識別を⾏いたいクラスのイメージを事前学習させ、 その分類器(Classifier)の出⼒を返します。 事前学習 不要 事前学習 必要 https://www.ibm.com/watson/jp-ja/developercloud/visual-recognition.html

Slide 16

Slide 16 text

16 画像認識「⼀般種別」 (General Tagging) 事前学習済みのモデルの出⼒を返します。 具体的な分類クラスの⼀覧は、クラスが⽇々更新されているため⾮公開ですが、 2016年12⽉時点で数千個の分類クラスがあります。 General Taggingには、「default」の分類クラス以外に「food」「explicit」とい う2つの特別な⽬的の分類クラスがあります。 foodは⾷べ物に特化した分類クラスです。explicitはネット上で不適切な画像をチェ ックするクラスとなっています。 今回は、画像認識「default」「food」と顔検出を使います。

Slide 17

Slide 17 text

アーキテクチャー図 17 WEB UI VISUAL RECOGNITION PYTHON FLASK 3

Slide 18

Slide 18 text

VISUAL RECOGNITION PYTHON FLASK 3 WEB UI アーキテクチャー図 18 この部分のコンテナイメージを 作成します

Slide 19

Slide 19 text

WEB UI VISUAL RECOGNITION PYTHON FLASK 3 アーキテクチャー図 19 --- Worker Node --- Kubernetes クラスター: mycluster IBM Cloud Kubernetes Service

Slide 20

Slide 20 text

IBM Cloud Kubernetes Service 20 Worker Node コンテナ (Pod) Kubernetes クラスター: mycluster 本⽇のハンズオンでは、 • 1つのKubernetes クラスター • 1つのWorker Node • 1つのコンテナ(Pod) をIBM Cloud Kubernetes Service 上に作成します

Slide 21

Slide 21 text

ハンズオン 不明な点があれば遠慮なく質問してください

Slide 22

Slide 22 text

22 既にのIBM Cloud 有償アカウント (Subscriptionを含む) をお持ちのかたは3のみ 実施ください。 1.IBMCloudアカウントの作成 https://ibm.biz/BdzME9 2. IBM Cloud 従量課⾦アカウントへのアップグレード クレジットカードのご登録が必要です。 2分弱のビデオ(https://youtu.be/uFCSvAKapr0) によるアカウントのアップグレード ⽅法もご参照ください。 3. CLIのインストール、IKSクラスタの作成 https://ibm.box.com/v/iks-workshop ibm 1. (再度)事前準備の確認

Slide 23

Slide 23 text

2. レポジトリのClone 23 1. 以下のコマンドでレポジトリをCloneしてください $ git clone https://github.com/kyokonishito/watson-vr-flask.git $ cd watson-vr-flask command.txtというファイルがありますので、 エディターで開いておきます。 今後使⽤するコマンドは全てここからコピペできます。

Slide 24

Slide 24 text

3. IBM Cloudへのログインと設定(1) 24 1. 以下のコマンドでIBM Cloudにログインします $ ibmcloud login エンドポイント⼊⼒があった場合は5.us-southを選択 E-mail(IBM Cloudのアカウント)と Passwordを聞かれるので⼊⼒します

Slide 25

Slide 25 text

25 出⼒例: API エンドポイント: https://api.ng.bluemix.net Email> [email protected] Password> 認証中です... OK ターゲットのアカウント Roadshow002 Roadshow002's Account (dd71031f1fed477da71fa11ba804a485) ターゲットのリソース・グループ Default API エンドポイント: https://api.ng.bluemix.net 地域: us-south ユーザー: [email protected] アカウント: Roadshow002 Roadshow002's Account (dd71031f1fed477da71fa11ba804a485) リソース・グループ: Default CF API エンドポイント: 組織: スペース: ヒント: Cloud Foundry アプリケーションおよびサービスを管理している場合 - 'ibmcloud target --cf' を使⽤して Cloud Foundry 組織/スペースを対話式にターゲットにするか、'ibmcloud target --cf-api ENDPOINT -o ORG -s SPACE' を使⽤して組織/スペースをターゲットにします。 - 現⾏の IBM Cloud CLI コンテキストを使⽤して Cloud Foundry CLI を実⾏する場合は、'ibmcloud cf' を使⽤します。

Slide 26

Slide 26 text

3. IBM Cloudへのログインと設定(2) 26 2. 以下のコマンドでCloudFoundry 環境をターゲット に設定します。 $ ibmcloud target --cf

Slide 27

Slide 27 text

4. IBM Cloud コンテナレジストリ のセットアップ (1-1) 27 IBM コンテナー・レジストリーとは、Kubernetes 内の Docker で使⽤するイメージを、セキュア に保管できる場所です。 本ハンスオンではここにDockerイメージを作成して、IBM Cloud Kubernetes Serviceから利⽤し ます。 $ ibmcloud cr namespace-add 1. 以下のコマンドで名前空間を設定してください 既にご⾃⾝の名前空間を設定済みの場合はこの⼿順はSKIPしてください。 を、⾃分の名前等、他⼈と重ならない任意の名前空間に置き換えてください。 はレジストリー「 us.icr.io」でユニークである必要があります。 例: ibmcloud cr namespace-add nishito_dojo_ws

Slide 28

Slide 28 text

4. IBM Cloud コンテナレジストリ のセットアップ(1-2) 28 設定した名前空間は後で使⽤するので、 command.txtの以下の<ここにコピペ>にコピーして ください (設定したnamespaceを以下にコピペしてください) : <ここにコピペ>

Slide 29

Slide 29 text

OK ID パブリック IP プライベート IP マシン・タイプ 状態 状況 ゾーン バージョン kube-hou02-pad88ab606a5db4da68c05a2a0637df148-w1 173.193.82.46 10.76.215.183 free normal Ready hou02 1.13.7_1527 5. ワーカー・ノードのデプロイメント が完了したことを確認 29 1.以下のコマンドを実⾏してください $ ibmcloud cs workers mycluster ワーカー・ノードのプロビジョニングが終了すると、状況 が Ready に変わり、IBM Cloud サー ビスのバインドを開始できます。

Slide 30

Slide 30 text

6. クラスター環境のセットアップ(1) 30 1. 以下のコマンドを実⾏してください $ ibmcloud cs cluster-config mycluster 構成ファイルのダウンロードが完了すると、そのローカルの Kubernetes 構成ファイルのパスを 環境変数として設定するために使⽤できるコマンドが表⽰されます。 環境変数を設定して Kubernetes 構成ファイルをダウンロードするためのコマンドを取得します。 export KUBECONFIG=/Users//.bluemix/plugins/container- service/clusters/mycluster/kube-config-hou02-mycluster.yml OS X の場合の例: SET KUBECONFIG="C:¥Users¥¥.bluemix¥plugins¥container- service¥clusters¥mycluster¥kube-config-hou02-mycluster.yml" Windows の場合の例:

Slide 31

Slide 31 text

6. クラスター環境のセットアップ(2) 31 2. KUBECONFIG 環境変数を設定するためのコマンドと してターミナルに表⽰されたものを、コピーして貼り付 け、実⾏(Enter⼊⼒)します。 $ export KUBECONFIG=/Users//.bluemix/plugins/container- service/clusters/mycluster/kube-config-hou02-mycluster.yml OS X の場合の例: 環境によって異なりますので、ご⾃⾝のものをご使⽤ください > SET KUBECONFIG="C:¥Users¥IBM InnovationCenter¥.bluemix¥plugins¥container- service¥clusters¥mycluster¥kube-config-hou02-mycluster.yml" Windows の場合の例:

Slide 32

Slide 32 text

6. クラスター環境のセットアップ(2) 32 $ kubectl version --short Client Version: v1.14.1 Server Version: v1.13.7+IKS 出⼒例: 3. Kubernetes CLI サーバーのバージョンを調べて、ご 使⽤のクラスターで kubectl コマンドが正常に実⾏する ことを確認します。

Slide 33

Slide 33 text

7. クラスターにサービスをバインド(1) 33 1. Visual Recognition サービスを ご⾃⾝のIBM Cloudアカウントに作成します。 $ ibmcloud service create watson_vision_combined lite クラスターにIBM Cloud サービスをバインドします。バインドされているすべての IBM Cloud サービスは、そのクラスターにデプロイされたアプリで使⽤できます。 にはサービスインスタンス名を⼊れます。 ご⾃⾝でわかりやすいものを設定します(英数字とハイフン(-)ドット(.)のみ使⽤可能,、最初の1⽂ 字は英数字)。 例: VisualRecognition01

Slide 34

Slide 34 text

7. クラスターにサービスをバインド (2­1) 2. 作成したVisual Recognitionのサービスインスタン スをクラスターの default の Kubernetes 名前空間に バインドします。 $ ibmcloud cs cluster-service-bind --cluster mycluster --namespace default --service には1で設定したサービスインスタンス名を⼊れます。 34

Slide 35

Slide 35 text

7. クラスターにサービスをバインド (2­2) 名前空間にサービス・インスタンスをバインド中... OK 名前空間: default 秘密名: binding-visualrecognition01 出⼒例: 35 出⼒された機密名(Secret Name)は後で使⽤するので、 command.txtの以下の<ここにコピペ>にコピーして ください (出⼒されたSecret Nameを以下にコピペしてください) visual_recognition_service Secret Name: <ここにコピペ> 35

Slide 36

Slide 36 text

7. クラスターにサービスをバインド(4) 36 3. クラスターの名前空間内に Kubernetes シークレッ トが作成されたことを確認します。 下記のコマンドを実⾏してください。 $ kubectl get secrets --namespace=default NAME TYPE DATA AGE binding-visualrecognition01 Opaque 1 23h default-au-icr-io kubernetes.io/dockerconfigjson 1 4d2h default-de-icr-io kubernetes.io/dockerconfigjson 1 4d2h default-icr-io kubernetes.io/dockerconfigjson 1 4d2h default-jp-icr-io kubernetes.io/dockerconfigjson 1 4d2h default-token-84gtn kubernetes.io/service-account-token 3 4d2h default-uk-icr-io kubernetes.io/dockerconfigjson 1 4d2h default-us-icr-io kubernetes.io/dockerconfigjson 1 4d2h 出⼒例: すべての IBM Cloud サービスは、ユーザー名、パスワード、コンテナーがアクセスするために使⽤する URL など、機密情報を含む JSON ファイルによって定義されます。この情報を安全に保管するために、Kubernetes シークレットが使⽤されます。 この例では、アカウントに プロビジョンされる、Visual Recognition にアクセスするための資格情報がシークレットに格納されます。

Slide 37

Slide 37 text

クラスターが構成され、ローカル環境でアプリをクラ スターにデプロイする準備が整いました︕

Slide 38

Slide 38 text

8. Dockerイメージをビルド(1) 38 $ cd server (windowsの場合)$ copy ibm-credentials.env.sample ibm-credentials.env (macの場合)$ cp ibm-credentials.env.sample ibm-credentials.env $ ibmcloud cr build -t us.icr.io//watson-vr-flask:v1 . 今回はIBM Cloud内で直接イメージをビルドします。 Dockerを導⼊している場合はPC上でイメージをビルドしてプッシュする⽅法もあります。 1. watson-vr-flask/serverにcd後、IBM Cloud コンテナレジストリにイメージをビルドします。 下記のコマンドを実⾏します。 は4で設定したコンテナレジストリの名前空間です。 4でcommand.txtにコピペしていますので、確認してください。 または ibmcloud cr namespace-list コマンドで表⽰できます ibm-credentials.envはIBM Cloudサービスをバインドしていれば設定不要ですが、ファイルが必要なためコピー だけします。

Slide 39

Slide 39 text

ビルドには3分から5分ほどかかります

Slide 40

Slide 40 text

8. Dockerイメージをビルド(2) 40 Dockerfile Dockerイメージは同じフォルダにあるDockerfileに基 づいて作成されます。 Dockerfile FROM python:3 ARG project_dir=/app/ RUN apt-get update RUN pip install --upgrade pip WORKDIR $project_dir COPY requirements.txt . RUN pip install -r requirements.txt (次ページへ続く)

Slide 41

Slide 41 text

8. Dockerイメージをビルド(3) 41 Docerfile(前ページからの続き) COPY config ./config COPY ibm-credentials.env ./ COPY static ./static COPY app.py ./ ENV IBM_CREDENTIALS_FILE /app/ibm-credentials.env CMD ["python", "app.py"]

Slide 42

Slide 42 text

9. Kubernates マニフェストファイル server/ watson-vr-flask.ymlの編集(1) 42 Kubernetesの各種リソースを定義するファイルをマニフェストファイルと呼びます。 マニフェストファイル watson-vr-flask.ymlをご⾃⾝の環境に合わせて編集します。 1. 29⾏⽬ image: us.icr.io//watson-vr-flask:v1 : 4で設定したコンテナレジストリの名前空間です。 4でcommand.txtにコピペしていますので、確認してください。 または ibmcloud cr namespace-list コマンドで表⽰できます。 例 image: us.icr.io/ibmwork/watson-vr-flask:v1

Slide 43

Slide 43 text

9. Kubernates マニフェストファイル watson-vr-flask.ymlの編集(2) 43 2. 40⾏⽬ secretName: 7でバインドしたサービスのSecret Nameです。 7でcommand.txtにコピペしていますので、確認してください。 またはkubectl get secrets --namespace=defaultコマンドで表⽰でき ます。 例 secretName: binding-visualrecognition01

Slide 44

Slide 44 text

ビルドは完了しましたか︖

Slide 45

Slide 45 text

いよいよデプロイです!

Slide 46

Slide 46 text

10.クラスターへのアプリケーション デプロイ 46 クラスターへアプリケーションをデプロイします。 デプロイの設定は先ほど作成したマニフェストファイル に設定してあります。下記のコマンドを実⾏してくださ い。 $ kubectl apply -f watson-vr-flask.yml

Slide 47

Slide 47 text

11.アプリケーションの動作確認(1) 47 1. 下記のコマンドでIPアドレスを確認します。 $ ibmcloud cs workers mycluster OK ID Public IP Private IP Machine Type State Status Zone Version kube-hou02-padd51cc67e0354ea7b08e5df8c5fc2006-w1 50.23.39.97 10.76.141.206 free normal Ready hou02 1.10.8_1531* * update-message 出⼒例: 出⼒のPublic IPがIPアドレスです 2. http://:30000 にPCのブラウザーでアクセスします。

Slide 48

Slide 48 text

11.アプリケーションの動作確認(2) 48 1. 「ファイルを選択」 ボタンをクリックして sampleフォルダーにある sushi.pngファイルを選 択します。 2. 「Watsonで認識 (Watson学習済みモデ ルを利⽤)」をクリック し, 画像認識結果を確認

Slide 49

Slide 49 text

11.アプリケーションの動作確認(2) 49 3. 「 Watsonで認識(カス タム学習モデル IBM提供 「Food」を利⽤)」を クリックし, 画像認識結果を 確認 これは⾷品に特化してIBMが 作成したモデルを使⽤した認 識結果です。

Slide 50

Slide 50 text

11.アプリケーションの動作確認(3) 50 4. スマートフォンでも結果を確認します ⼀番下にQRコードが表⽰されているので、スマートフォ ンのカメラで読み込み、ブラウザーでアクセスします。 スマートフォンの場合は「ファイルを選択」をクリック後、 「写真を撮る」でとった写真を認識に使⽤できます。 今度は⾃分の顔を撮影して、 「 Watson 年齢・性別の判定」にトライみましょう︕ その他いろいろな写真をとって試してみましょう。

Slide 51

Slide 51 text

以降は時間があれば実施ください!

Slide 52

Slide 52 text

12. UIデザインの変更(1) server/static/index.htmlを編集し、デザインを変更してversion2をデプロイしてみましょう。 1. ファイルのコピー 下記のコマンドでindex.htmlをindex_v1.htmlとindex_v2.htmlに コピーします。 cd static (Winの場合)$ copy index.html index_v1.html (Winの場合)$ copy index.html index_v2.html (macの場合)$ cp index.html index_v1.html (macの場合)$ cp index.html index_v2.html

Slide 53

Slide 53 text

12. UIデザインの変更(2) 2. index_v2.html 16⾏⽬をで囲んでコメント アウトする 変更前: 変更後: で囲む

Slide 54

Slide 54 text

12. UIデザインの変更(3) 3. index_v2.html 20⾏⽬のを削除してコメン トアウトを無効にする。その後保存して閉じる。 変更前: 変更後: を削除

Slide 55

Slide 55 text

12. UIデザインの変更(参考) デザインテンプレートはbootswatchを利⽤しています。 v1はcerulean、v2はdarklyです。 どのようなデザインかは以下を参照してください: https://bootswatch.com/ また組み込んでいるcssのCDNは以下を使⽤しています: https://www.bootstrapcdn.com/bootswatch/

Slide 56

Slide 56 text

12. UIデザインの変更(4) server/static/index.htmlを編集し、デザインを変更してversion2をデプロイしてみましょう。 4. ファイルのコピー 下記のコマンドでindex_v2.htmlをindex.htmlにコピーします。 (Winの場合)$ copy index_v2.html index.html (macの場合)$ cp index_v2.html index.html

Slide 57

Slide 57 text

12. UIデザインの変更(5) 57 $ cd .. $ ibmcloud cr build -t us.icr.io//watson-vr-flask:v2 . 5. IBM Cloudコンテナレジストリにv2イメージをビルド します。 下記のコマンドを実⾏します。 は4で設定したコンテナレジストリの名前空間です。 4でcommand.txtにコピペしていますので、確認してください。 または ibmcloud cr namespace-list コマンドで表⽰できます 実⾏ディレクトリはserverです。

Slide 58

Slide 58 text

12. UIデザインの変更(6) マニフェストファイル watson-vr-flask.yml をコピーして、v2イメージ⽤のマニフェストファイ ルを作成します。 6. ファイルのコピー 下記のコマンドでwatson-vr-flask.ymlをwatson-vr-flask_v2.yml に コピーします。 (Winの場合)$ copy watson-vr-flask.yml watson-vr-flask_v2.yml (macの場合)$ cp watson-vr-flask.yml watson-vr-flask_v2.yml

Slide 59

Slide 59 text

12. UIデザインの変更(7) 7. server/watson-vr-flask_v2.yml 29⾏⽬の イメージタグ v1を v2 に変更して保存します。 変更前 image: us.icr.io//watson-vr-flask:v1 変更後 image: us.icr.io//watson-vr-flask:v2 注: 4で設定したコンテナレジストリの名前空間になっています。 例(変更後) image: us.icr.io/ibmwork/watson-vr-flask:v2

Slide 60

Slide 60 text

12. UIデザインの変更(8) 60 クラスターへアプリケーションv2をデプロイします。 デプロイの設定は先ほど作成したマニフェストファイル に設定してあります。下記のコマンドを実⾏してくださ い。 $ kubectl apply -f watson-vr-flask_v2.yml 完了後、 アプリケーションを表⽰していたWebブラウ ザーをリロードします。 (またはhttp://:30000 にアクセス) UIのデザインが変わっていれば変更完了です。

Slide 61

Slide 61 text

12. UIデザインの変更(9) 61 元に戻します。以下のコマンドを実⾏します。 $ kubectl apply -f watson-vr-flask.yml または以下のコマンドでロールバックをしても 元に戻ります。 $ kubectl rollout undo deployment deploy-watson-vr-deployment

Slide 62

Slide 62 text

13.アプリケーションの削除 62 デプロイしたアプリケーションを削除します。 1. Deploymentを削除します。 $ kubectl delete deployment deploy-watson-vr-deployment 2. Serviceを削除します。 $ kubectl delete service deploy-watson-vr-service もう⼀度デプロイする場合は、10で実施したコマンドを実施します。 尚、今回使⽤しているフリー・クラスターは 30 ⽇後に⾃動的に削除されます。

Slide 63

Slide 63 text

14.イメージの削除 63 ビルドしたイメージを削除します。 $ ibmcloud cr image-rm us.icr.io//watson-vr-flask:v1 UIを変更したイメージv2を作成した場合は、以下も実施。 は4で設定したコンテナレジストリの名前空間です。 4でcommand.txtにコピペしていますので、確認してください。 または ibmcloud cr namespace-list コマンドで表⽰できます もう⼀度ビルドする場合は、8および12­5で実施したコマンドを実施します。 $ ibmcloud cr image-rm us.icr.io//watson-vr-flask:v2

Slide 64

Slide 64 text

15.サービスのアンバインド 64 クラスターにバインドしたサービスを解除(アンバイン ド)します。 $ ibmcloud cs cluster-service-unbind --cluster mycluster -- namespace default --service (尚、エラーが出ることがありますが、実際はアンバインドされているので、 ibmcloud cs cluster-service-ls --cluster mycluster で削除されたことを確認してください) もう⼀度バインドする場合は、7-2で実施したバインドのコマンドを実施します。 には7-1で設定したサービスインスタンス名を ⼊れます。 ibmcloud cs cluster-service-ls --cluster mycluster

Slide 65

Slide 65 text

16.コンテナレジストリの名前空間の削除 65 作成した名前空間を削除します(削除したい場合のみ)。 $ ibmcloud cr namespace-rm 名前空間「nishito_dojo」を削除してよろしいですか? 名前空間を削除すると、その名前空間内の すべてのイメージおよび信⽤情報も削除されます。 [y/N]> と聞かれるので、yを⼊⼒してEnterを押します。 もう⼀度ビルドする場合は、4-1で実施したコマンドを実施します。 は4-1で設定したコンテナレジストリの名前空間です。 4でcommand.txtにコピペしていますので、確認してください。 または ibmcloud cr namespace-list コマンドで表⽰できます。 削除するとその名前空間内のイメージは全て削除されますので、当ハンズオン外で作成したイメージがあり保存 して置きたい場合は実⾏しないでください。

Slide 66

Slide 66 text

17. Visual Recognitionサービスの削除 66 作成したVisual Recognitionサービスを削除します(削 除したい場合のみ)。 $ ibmcloud service delete サービス VisualRecognition01 を削除しますか?> と聞かれるので、yを⼊⼒してEnterを押します。 もう⼀度作成する場合は、7-1で実施したコマンドを実施します。 には7­1で設定したサービスインスタンス名を⼊れます。 忘れた場合は ibmcloud service list コマンドで表⽰できます。 当ハンズオン外でVisual Recognitionサービスを利⽤している場合は実⾏しないでください。

Slide 67

Slide 67 text

--- ここまでがオプションです ---

Slide 68

Slide 68 text

まとめ • IBM Cloud Kubernetes サービス上でWatsonサービ スをを使⽤する場合は、バインド+シークレットの設 定でAPI KEYのセットが不要(アプリ側で要読み込み処理)。 • IBM Cloudコンテナ・レジストリ上でコンテナイ メージのビルドができる。 • Kubernates マニフェストファイルを作成して、 設 定とともにKubernetes サービス上にアプリケーショ ンのデプロイができる。

Slide 69

Slide 69 text

https://ibm- developer.connpass.com/event/138242/

Slide 70

Slide 70 text

IBM Developer Dojo https://ibm.biz/dev-dojo

Slide 71

Slide 71 text

71 CALL FOR CODE® チャレンジ 2019 • テーマに沿ったソリューションを構築するインターネットを 通じて参加可能な開発コンテスト • 今回のテーマは「⾃然災害への対策や回復」または「⼈の健康」 「地域コミュニティが良好な状態になる⽀援すること」 • 18歳以上の開発者、1-5名のチームでIBM Cloudまたは IBM Systems を活⽤したアプリを開発 • 2019/7/29(⽉)11:59PMまでに提出 *⽶国⻄海岸標準時 賞⾦ 最優秀賞: $200,000 (2200万円*相当) 2位、3位: $25,000 (275万円*相当) 4位、5位: $10,000 (110万円*相当) *為替レートによって変動します https://callforcode.org/ https://ibm.biz/c4cjapan

Slide 72

Slide 72 text

72 Thank you twitter.com/KyokoNishito github.com/kyokonishito developer.ibm.com/jp

Slide 73

Slide 73 text

73