ステップ 1: クラスタを作成する

始める前に、次のことを行います。

以下の手順では、前の手順で環境変数を作成していることを前提としています。次のコマンドで確認します。

echo $PROJECT_ID
echo $ANALYTICS_REGION
echo $ORG_NAME
echo $ENV_NAME

このステップでは、シェル環境を設定し、Google Cloud Platform プロジェクトで GKE クラスタを作成する方法について説明します。

ターミナル シェルを設定する

gcloud ツールは Google Cloud への主要なコマンドライン インターフェースを提供し、kubectl は Kubernetes クラスタにコマンドを実行するための主要なコマンドライン インターフェースを提供します。

  1. ローカルシェルに gcloudkubectl がインストールされていることを確認します。gcloud ツールは Google Cloud への主要なコマンドライン インターフェースを提供し、kubectl は Kubernetes クラスタにコマンドを実行するための主要なコマンドライン インターフェースを提供します。

    gcloud -h
    kubectl -h
  2. これらのユーティリティがインストールされていない場合は、次の手順に従って今すぐインストールしてください。
    1. Cloud SDK をインストールします。これには、gcloud コマンドライン ツールが含まれています。
    2. Cloud SDK をインストールしたら、次のコマンドを実行して kubectl コマンドライン ツールをインストールします。
    3. gcloud components install kubectl
  3. gcloud ツールを使用して 2 つのデフォルト設定を構成します。1 つはデフォルトのプロジェクト、もう 1 つはコンピューティング リージョンです。gcloud コマンドを実行するには、使用するプロジェクトとコンピューティング リージョンを指定する必要があります。これらの設定を構成しておくと、gcloud コマンドをより簡単に実行できます。

    現在の設定を一覧表示するには、次のコマンドを実行します。

    gcloud config list

    プロジェクトおよび / またはコンピューティング リージョンがリストにない場合は、以下のコマンドを使用して追加する必要があります。リスト出力から、プロジェクトとコンピューティング リージョンを反映するために現在の設定を切り替える必要があると判断した場合は、次のコマンドも使用できます。

    gcloud config set project $PROJECT_ID
    gcloud config set compute/region $ANALYTICS_REGION
    

    ここで

    • PROJECT_ID は Google Cloud プロジェクトの名前です。
    • ANALYTICS_REGION は Google Cloud コンピューティング リージョンの名前です。

GKE クラスタを作成する

この手順では、Google Cloud プロジェクト(PROJECT_ID で表される gcloud config コマンドで設定したプロジェクト)で Kubernetes クラスタを作成します。

クラスタの作成

  1. 次のコマンドを使用して、CLUSTER_NAME 環境変数を作成します(省略可)。
    export CLUSTER_NAME=cluster-name

    ここで、cluster-name はクラスタに付ける名前です。

  2. 次のコマンドを実行してクラスタを作成します。コマンドで指定されているマシンタイプ、ノード数、その他の設定により、トライアルの Apigee ハイブリッド インストールに適した最小限の構成のクラスタが作成されます。
    gcloud container clusters create $CLUSTER_NAME \
    --machine-type "e2-standard-4" --num-nodes "4" --enable-autoscaling --min-nodes "3" --max-nodes "6"

    クラスタの作成には数分かかることがあります。作成に成功すると、ステータスが RUNNING の状態で次のような出力が表示されます。

    NAME           LOCATION       MASTER_VERSION  MASTER_IP     MACHINE_TYPE   NODE_VERSION   NUM_NODES  STATUS
    apigee-hybrid  us-central1    1.15.12-gke.2   35.222.54.89  e2-standard-4  1.15.12-gke.2             RUNNING

現在のコンテキストの設定

コンテキストとは、アクセス パラメータのグループのことです。各コンテキストには 1 つの Kubernetes クラスタ、1 人のユーザー、1 つの名前空間が含まれます。現在のコンテキストとは、現在 kubectl のデフォルトとなっているクラスタのことです。すべての kubectl コマンドはこのクラスタに対して実行されます。

現在の gcloud コンテキストが、作成したクラスタに設定されていることを確認します。

  1. まず、現在のコンテキストを判別するコンテキストをリストします。次の例では、現在のコンテキストは gke_hybrid-project_us-central1_apigee-hybrid です。名前には、Google Cloud プロジェクトの名前(hybrid-project)、リージョン(us-central1)、クラスタ名(apigee-hybrid)が含まれます。
    kubectl config get-contexts

    結果は次の例のようになります。

    CURRENT   NAME                                             CLUSTER                                          AUTHINFO                                           NAMESPACE
    *         gke_hybrid-project_us-central1_apigee-hybrid     gke_hybrid-project_us-central1_apigee-hybrid     gke_hybrid-project_us-central1_apigee-hybrid
              gke_apigee-project_us-west1_apigee-cluster       gke_apigee-project_us-west1_apigee-cluster       gke_apigee-project_us-west1_apigee-cluster
    
  2. 必要に応じて、現在のコンテキストを先ほど作成したクラスタ(Apigee ハイブリッドをインストールするクラスタ)に設定します。上記の get-contexts 出力を使用して、次のように正しいコンテキストに切り替えることができます。
    kubectl config use-context context

    ここで、context は、前の get-contexts コマンドによる出力としてのクラスタの完全なコンテキスト名です。例: gke_apigee-project_us-west1_apigee-cluster

  3. 次のコマンドを使用して、現在のコンテキストが目的のクラスタに設定されていることを確認します。
    kubectl config current-context

    次に例を示します。

    gke_apigee-project_us-west1_apigee-cluster

クラスタ認証情報を付与する

クラスタ認証情報により、クラスタで実行中のコンテナにアクセスできるようになります。認証情報を取得し、ユーザー自身に cluster-admin ロールを付与します。

  1. 次のコマンドを入力して、認証情報を取得します。
    gcloud container clusters get-credentials $CLUSTER_NAME

    ここで、CLUSTER_NAME は作成したクラスタ(Apigee ハイブリッドをインストールするクラスタ)の名前です。

    次のような結果が表示されます。

    Fetching cluster endpoint and auth data.
    kubeconfig entry generated for example-cluster.
  2. クラスタロール バインディングを設定します。次のコマンドを示されているとおりに実行します。
    kubectl create clusterrolebinding cluster-admin-binding \
    --clusterrole cluster-admin --user $(gcloud config get-value account)

    次のような結果が表示されます。

    clusterrolebinding.rbac.authorization.k8s.io/cluster-admin-binding created

概要

これで、Google Cloud プロジェクトで Kubernetes クラスタが実行されている状態になりました。シェル環境が設定され、ローカルマシンに Apigee ハイブリッドが必要とする cert-manager サービスと istio サービスをインストールする準備ができました。

次のステップ

1 (次の)ステップ 2: cert-manager と ASM をインストールする 3 4 5