目次


Kubernetes への NodeJS プロジェクトの移動

サービスのスムーズなバインディング

Comments

概要

原文の著者: Jesse Antoszyk
スキル・レベル: すべてのスキル・レベル
NodeJS、IBM Cloud、Kubernetes の基礎知識。
IBM Cloud で NodeJS アプリを CloudFoundry から Kubernetes に移す方法について学習します。

前提条件

3 つのシナリオについて説明します。NodeJS アプリが独占的に Watson サービスを使用している場合、アプリが既に vcap_services ライブラリーを使用している場合、アプリが現在 vcap_services ライブラリーを使用していない場合です。

ステップバイステップ

1

シナリオ 1: アプリが独占的に Watson サービスを使用している

アプリが独占的に Watson サービスを使用し、watson-developer-cloud npm モジュールを使用している場合、変更はほとんど必要ありません。単純に、Kubernetes YAML でサービスを環境変数 <SERVICE_NAME>_* (すべて大文字) にバインドします。簡単な会話のデモの場合、以下のようになります。

  env:
   - name: CONVERSATION_CAR
     value_from:
       secretKeyRef:
         name: binding-conversation-car
         key: binding

Kubernetes と Waston のセットアップの詳細を調べるには、「Bind a Watson Service to a Kubernetes Pod」レシピを参照してください。

2

シナリオ 2: アプリが vcap_services モジュールを使用している

アプリが既に vcap_services ライブラリーを使用している場合、前の例と同様になります。サービスを環境変数 <SERVICE_NAME>_* にマップし、vcap_services.get_credentials(“<service_name>”); を呼び出します 同じサービスの複数のインスタンスを使用している場合は、get_credentials(“<service_name>”, null, “<service_instance_name>”); を呼び出します。システムは、サービス・インスタンス名を持つ環境変数を探し、それが存在しない場合は、サービス名から始まる環境変数を使用します。そのようなサービス・インスタンス・バインディングではサービス・プラン・ティア情報が提供されていないため、そのパラメーターは無視されます。service_name 方式のみを使用するときに、サービス名で始まる環境変数が JSON で複数存在する場合、予期しない結果になる可能性があります。

3

シナリオ 3: アプリが現在 vcap_services モジュールを使用していない

アプリが vcap_services モジュールを使用していない場合は、サービス資格情報を取得するために使用を開始してください。cfenv を使用している場合は、以下のようになります。

  var cfenv = require('cfenv');
  var appEnv = cfenv.getAppEnv();
  var service = appEnv.getService('service_name');
  var service_username = service.credentials['username');

  can be replaced by:

  var vcapServices = require('vcap_services');
  var credentials = vcapServices.getCredentials('service_name');
  var service_username = credentials['username'];

Kubernetes 環境では他の CF_ENV 変数は設定されないため、アプリがそれらの値に依存する場合は、他にも変更が必要になることがあります。


ダウンロード可能なリソース


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, DevOps, Web development
ArticleID=1054526
ArticleTitle=Kubernetes への NodeJS プロジェクトの移動
publish-date=12152017