始める前に:
以下の説明では、前の手順で環境変数を作成していることを前提としています。次のコマンドで確認します。
echo $PROJECT_ID
echo $ANALYTICS_REGION
echo $ORG_NAME
echo $ENV_NAME
このステップでは、シェル環境を設定し、Google Cloud プロジェクトで GKE クラスタを作成する方法について説明します。
ターミナル シェルを設定する
gcloud
ツールは Google Cloud の主要なコマンドライン インターフェースを提供し、kubectl
は Kubernetes クラスタに対してコマンドを実行するための主要なコマンドライン インターフェースを提供します。
gcloud
とkubectl
がローカルシェルにインストールされていることを確認してください。gcloud
ツールは Google Cloud の主要なコマンドライン インターフェースを提供し、kubectl
は Kubernetes クラスタに対してコマンドを実行するための主要なコマンドライン インターフェースを提供します。gcloud -h
kubectl -h
- これらのユーティリティがインストールされていない場合は、次の手順に従って今すぐインストールしてください。
- Cloud SDK をインストールします。これには、
gcloud
コマンドライン ツールが含まれています。 - Cloud SDK をインストールしたら、次のコマンドを実行して
kubectl
コマンドライン ツールをインストールします。
gcloud components install kubectl
- Cloud SDK をインストールします。これには、
-
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 プロジェクト(gcloud config
コマンドで設定した PROJECT_ID
で表されるプロジェクト)で Kubernetes クラスタを作成します。
クラスタを作成する
- 次のコマンドを使用して、CLUSTER_NAME 環境変数を作成します(省略可)。
export CLUSTER_NAME=cluster-name
ここで、cluster-name はクラスタに付ける名前です。
- 次のコマンドを実行してクラスタを作成します。コマンドで指定されているマシンタイプ、ノード数、その他の設定により、トライアルの 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
コンテキストが、先ほど作成したクラスタに設定されていることを確認します。
- まず、現在のコンテキストを判別するコンテキストをリストします。次の例では、現在のコンテキストは
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
- 必要に応じて、現在のコンテキストを先ほど作成したクラスタ(Apigee ハイブリッドをインストールするクラスタ)に設定します。上記の
get-contexts
出力を使用して、次のように正しいコンテキストに切り替えることができます。kubectl config use-context context
ここで、context は、前の
get-contexts
コマンドによる出力としてのクラスタの完全なコンテキスト名です。例:gke_apigee-project_us-west1_apigee-cluster
。 - 次のコマンドを使用して、現在のコンテキストが目的のクラスタに設定されていることを確認します。
kubectl config current-context
次に例を示します。
gke_apigee-project_us-west1_apigee-cluster
クラスタ認証情報を付与する
クラスタ認証情報によって、クラスタで実行中のコンテナにアクセスできるようになります。認証情報を取得し、ユーザー自身に cluster-admin ロールを付与します。
- 次のコマンドを入力して、認証情報を取得します。
gcloud container clusters get-credentials $CLUSTER_NAME
ここで、
CLUSTER_NAME
は作成したクラスタ(Apigee ハイブリッドをインストールするクラスタ)の名前です。次のような結果が表示されます。
Fetching cluster endpoint and auth data. kubeconfig entry generated for example-cluster.
- クラスタロール バインディングを設定します。次のコマンドを示されているとおりに実行します。
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