Kong Enterprise のインストール手順 - Docker

このガイドでは、Docker を使用して Kong Enterprise をダウンロード、インストール、および起動する方法を紹介します。
このガイドで紹介している設定は、例としてのみ使用することを目的としています。運用環境に移行する前に、ご使用の環境に応じて、追加の設定を行って Kong Enterprise システムをセキュアに確保してください。

Kong Enterprise の Docker イメージは、Bintray でホストされています。Kong Enterprise Docker イメージをダウンロードするには、有効な Bintray クレデンシャル情報が必要です。

 

必要項目

インストール手順を進めるには以下が必要です。

    ステップ 1. Kong Enterprise をダウンロード

  1. Bintray API Key の取得

    Bintray にログイン
    ナビゲーション バーの上部でユーザー名にカーソルを合わせ、ドロップダウンから [プロファイルの編集] を選択します。
    [プロファイル] ページで、サイドバーから [API キー] を選択します。 Bintray パスワードを送信し、API キーをクリップボードにコピーします。

  2. Docker にログインしてイメージを取得

    
            $ docker login -u <bintray_username> -p <bintray_API_key>
            kong-docker-kong-enterprise-edition-docker.bintray.io        
            $ docker pull kong-docker-kong-enterprise-edition-docker.bintray.io/kong-enterprise-edition

    これにより、Kong Enterprise の最新版が取得されます。Kong Enterprise の特定のバージョンを取得するには Kong Enterprise の特定のバージョンを取得するには、<VERSION>を URL に追加します。

    $ docker pull kong-docker-kong-enterprise-edition-docker.bintray.io/kong-enterprise-edition/<VERSION>

  3. docker imagesを実行して、Kong Enterprise イメージの ID を確認します。

  4. 次のコマンドで簡単に使用できるようにイメージ ID にタグを付けます。

    $ docker tag <IMAGE_ID> kong-ee
  5. Docker のネットワークの作成 (オプション)

    コンテナは、相互に検出および通信するためにネットワークを必要とします。この機能を使用するには、次のコマンドを使用してネットワークを作成し、kong-ee-net をネットワークの名前に置き換えます。

     $ docker network create kong-ee-net


    ステップ2. Kong Enterprise ライセンスをエクスポート

  1. ライセンス ファイルをダウンロードします。

    ライセンス ファイルをお持ちではない場合は、Bintray の Kong レポジトリからダウンロードできます。<YOUR_REPO_NAME> は通常会社名となります。

    https://bintray.com/kong/<YOUR_REPO_NAME>/license#files

    Bintray で Kong リポジトリが見つからない場合は弊社までお問い合わせください。

  2. ライセンスデータ全体をコピーし、シェル変数としてエクスポートします。

    export KONG_LICENSE_DATA='{"license":{"signature":"LS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tClZlcnNpb246IEdudVBHIHYyCgpvd0did012TXdDSFdzMTVuUWw3dHhLK01wOTJTR0tLWVc3UU16WTBTVTVNc2toSVREWk1OTFEzVExJek1MY3dTCjA0ek1UVk1OREEwc2pRM04wOHpNalZKVHpOTE1EWk9TVTFLTXpRMVRVNHpTRXMzTjA0d056VXdUTytKWUdNUTQKR05oWW1VQ21NWEJ4Q3NDc3lMQmorTVBmOFhyWmZkNkNqVnJidmkyLzZ6THhzcitBclZtcFZWdnN1K1NiKzFhbgozcjNCeUxCZzdZOVdFL2FYQXJ0NG5lcmVpa2tZS1ozMlNlbGQvMm5iYkRzcmdlWFQzek1BQUE9PQo9b1VnSgotLS0tLUVORCBQR1AgTUVTU0FHRS0tLS0tCg=","payload":{"customer":"Test Company Inc","license_creation_date":"2017-11-08","product_subscription":"Kong Enterprise","admin_seats":"5","support_plan":"None","license_expiration_date":"2017-11-10","license_key":"00141000017ODj3AAG_a1V41000004wT0OEAU"},"version":1}}'

    ステップ3. データベースを設定

  1. データベースのインスタンス化

    Kong Enterprise はデータベースを必要とし、Cassandra または PostgreSQL をサポートします。

    Cassandra をご利用の場合

    
                $ docker run -d --name kong-ee-database \
                --network=kong-ee-net \
                - p 9042:9042 \
                cassandra:3
            

    PostgreSQL をご利用の場合

    
                $ docker run -d --name kong-ee-database \
             --network=kong-ee-net \
             -p 5432:5432 \
             -e "POSTGRES_USER=kong" \
             -e "POSTGRES_DB=kong" \
             postgres:9.6
  2. Kong マイグレーションを起動します。

    Cassandra

    
            $ docker run --rm --network=kong-ee-net \
           -e "KONG_DATABASE=cassandra" \
           -e "KONG_PG_HOST=kong-ee-database" \
           -e "KONG_CASSANDRA_CONTACT_POINTS=kong-ee-database" \
           -e "KONG_LICENSE_DATA=$KONG_LICENSE_DATA" \
           kong-ee kong migrations bootstrap

    PostgreSQL

    
              $ docker run --rm --network=kong-ee-net \
              -e "KONG_DATABASE=postgres" \
              -e "KONG_PG_HOST=kong-ee-database" \
              -e "KONG_LICENSE_DATA=$KONG_LICENSE_DATA" \
              kong-ee kong migrations bootstrap

    Windows ユーザーの Docker:KONG_LICENSE_DATA 環境変数の代わりに、ボリューム バインド オプションを使用します。 たとえば、license.json ファイルを C:\temp に保存したとすると、-volume /c/temp/license.json:/etc/kong/license.json を使用してライセンス ファイルを指定します。


    ステップ5. Kong Enterprise を設定して起動

  1. Kong Enterprise を設定して起動する

    Cassandra:

    
                  $ docker run -d --name kong-ee --network=kong-ee-net \
                  -e "KONG_DATABASE=cassandra" \
                  -e "KONG_PG_HOST=kong-ee-database" \
                  -e "KONG_CASSANDRA_CONTACT_POINTS=kong-ee-database" \
                  -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
                  -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
                  -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
                  -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
                  -e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \
                  -e "KONG_PORTAL=on" \
                  -e "KONG_LICENSE_DATA=$KONG_LICENSE_DATA" \
                  -p 8000:8000 \
                  -p 8443:8443 \
                  -p 8001:8001 \
                  -p 8444:8444 \
                  -p 8002:8002 \
                  -p 8445:8445 \
                  -p 8003:8003 \
                  -p 8004:8004 \
                  kong-ee

    PostgreSQL:

    
                      $ docker run -d --name kong-ee --network=kong-ee-net \
                      -e "KONG_DATABASE=postgres" \
                      -e "KONG_PG_HOST=kong-ee-database" \
                      -e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \
                      -e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \
                      -e "KONG_PROXY_ERROR_LOG=/dev/stderr" \
                      -e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \
                      -e "KONG_ADMIN_LISTEN=0.0.0.0:8001" \
                      -e "KONG_PORTAL=on" \
                      -e "KONG_LICENSE_DATA=$KONG_LICENSE_DATA" \
                      -p 8000:8000 \
                      -p 8443:8443 \
                      -p 8001:8001 \
                      -p 8444:8444 \
                      -p 8002:8002 \
                      -p 8445:8445 \
                      -p 8003:8003 \
                      -p 8004:8004 \
                      kong-ee

    Windows ユーザーの Docker:KONG_LICENSE_DATA 環境変数の代わりに、ボリューム バインド オプションを使用します。 たとえば、license.jsonファイルをC:\tempに保存したとすると、-volume /c/temp/license.json:/etc/kong/license.json を使用してライセンス ファイルを指定します。

  2. Kong Enterprise が実行されていることをテストします。

    http://localhost:8002 で Kong Manager にアクセスします (リモートシステムで Kong を実行している場合は、localhost をサーバーの IP またはホスト名に置き換えます)



トラブルシューティング

デフォルトでは Admin API はローカル インターフェースのみをリッスンします。これはセキュリティ強化として、設定されています。 上記の例では、KONG_ADMIN_LISTEN=0.0.0.0:8001 でオーバーライドしていることに注意してください。Docker コンテナ ネットワーキングは、よりオープンな設定にすることでベネフィットを受けられ、また Kong Manager および Dev Portal が Kong Admin API と通信をできるようにするためです。

ライセンスを適切に参照しないと、マイグレーションの実行中にエラーが発生します。

 
    $ docker run -ti --rm ... kong migrations bootstrap
    nginx: [alert] Error validating Kong license: license path environment variable not set
  

また、ライセンスがない場合、"deamon mode" (docker run-d フラグを付ける) で docker run を実行すると何も出力されません:

 
    $ docker run -d ... kong start
  26a995171e23e37f89a4263a10bb084120ab0dbed1aa11a71c888c8e0d74a0b6
  

コンテナをチェックする際、コンテナは実行されません。docker logs を実行すると、次のことがわかります。

 
      $ docker logs 
      nginx: [alert] Error validating Kong license: license path environment variable not set
  

テキストエディター間の互換性の問題やコピー & 貼り付けで直線型の引用符 (“ または ‘) を曲線型の引用符 (“ または ” または ’ または ‘) に変更することで別のエラーが発生する場合があります。

nginx: [alert] Error validating Kong license: could not decode license json

ライセンス データには直線型の引用符のみを使用する必要があり、それによって JSON で正常に認識されます。

デモの依頼

製品の詳細、ライセンス体系、デモの依頼など、お気軽にお問い合わせください。