GKE On-Prem の概要

GKE On-Prem は、Google Kubernetes Engine(GKE)をオンプレミスのデータセンターに組み込むハイブリッド クラウド ソフトウェアです。GKE On-Prem を使用すると、オンプレミス環境で Kubernetes クラスタを作成、管理、アップグレードして、Google Cloud Console に接続できます。

Kubernetes について

GKE On-Prem と GKE は、コンテナ化されたアプリケーションを管理する拡張可能なオープンソースのプラットフォームである Kubernetes 上に構築されています。Kubernetes は、コンテナ化されたアプリケーションを実行するマシンのセット(「ノード」とも呼ばれます)であるクラスタをオーケストレートします。

GKE On-Prem の取得

GKE On-Prem は Anthos のコア コンポーネントとして含まれています。

GKE On-Prem の準備

オンプレミス環境のハードウェアで実行されている VMware vSphere 6.5 クラスタに GKE On-Prem をインストールします。レイヤ 4 負荷分散では、F5 BIG-IP(GKE On-Prem の統合ロードバランサ)を使用するか、別の L4 ロードバランサを構成するか選択できます。

準備には、Google Cloud プロジェクトの設定と、Terraform バージョン 11 を含む必要なコマンドライン インターフェース(CLI)ツールのダウンロードが含まれます。また、Terraform を使用して、vSphere で管理ワークステーション仮想マシン(VM)を作成することも含まれます。

管理ワークステーションについて

管理ワークステーションは、クラスタ管理者が GKE On-Prem をインストールして操作する vSphere VM です。

クラスタ管理者は、vSphere で Terraform を使用して管理ワークステーションを作成します。管理ワークステーションを作成するには、次の 3 つのファイルをダウンロードします。

  • Open Virtual Appliance(OVA)ファイル。これは、Terraform 用の「VM テンプレート」を提供するバージョニングされた VM イメージです。
  • Terraform 構成ファイル(TF)。
  • Terraform 構成変数ファイル(TFVARS)。

管理ワークステーションには以下の対象が含まれます。

バンドルについて

GKE On-Prem のバンドルは、GKE On-Prem クラスタを作成してアップグレードするために必要なすべてのコンポーネントを含む、バージョニングされた TGZ アーカイブです。

バンドルには次の 2 種類があります。

フルバンドル

フルバンドル gke-onprem-vsphere-[VERSION]-full.tgz は、管理ワークステーションに含まれています。/var/lib/gke/bundles にあります。フルバンドルは、GKE On-Prem の初回のインストールに使用されます。以下を含む大きなファイルです。

  • クラスタにデプロイされたすべてのクラスタ コンポーネントのコンテナ イメージを含む TAR ファイル。
  • これらのクラスタ コンポーネントの YAML ファイル。
  • GKE On-Prem のノードイメージ
アップグレード バンドル

アップグレード バンドル(gke-onprem-vsphere-[VERSION].tgz)は、クラスタのアップグレードに使用できます。ダウンロードにも記載されています。インストール時にインストールされるクラスタ コンポーネントの YAML ファイルのみが含まれています。

GKE On-Prem のインストール方法

インストールの際に実施する手順の概要は次のとおりです。

  1. 管理ワークステーションに SSH 接続します。
  2. gkectl create-config を実行して GKE On-Prem 構成ファイルを生成します。この構成ファイルは、GKE On-Prem をインストールするための仕様を宣言します。ニーズに合わせて変更してください。
  3. gkectl check-config を実行して、変更した構成ファイルがインストールに使用できることを検証します。
  4. gkectl prepare を実行して GKE On-Prem の OS イメージを vSphere に移動し、VM のテンプレートとしてマークします。非公開 Docker レジストリを構成すると、このコマンドは GKE On-Prem のコンテナ イメージもレジストリに push します。
  5. gkectl create clusters --config を実行して構成ファイルを渡し、GKE On-Prem を宣言的にインストールします。

インストールが正常に完了すると、vSphere には以下の対象が含まれます。

アーキテクチャ

GKE On-Prem のアーキテクチャを説明する図 図: ユーザー コントロール プレーンが 1 つある GKE On-Prem アーキテクチャ。

GKE On-Prem には、管理クラスタとユーザー クラスタがあります。

管理クラスタ

管理クラスタは GKE On-Prem の基本レイヤです。これは次の GKE On-Prem コンポーネントを実行します。

  • 管理コントロール プレーン: 管理コントロール プレーンは、すべての gkectl、GKE On-Prem との Kubernetes API 呼び出し、vSphere API へのすべての呼び出しを処理します。
  • ユーザー コントロール プレーン: ユーザー クラスタのコントロール プレーン。API リクエストをクラスタのノードにルーティングします。各クラスタ作成には、管理クラスタで実行される独自のコントロール プレーンがあります。
  • アドオン VM: Grafana、Prometheus、Istio コンポーネント、Stackdriver などの管理クラスタのアドオンを実行する VM。

なお、ユーザー コントロール プレーンは管理クラスタによって管理されます。これらはユーザー クラスタ自体ではなく、管理クラスタ内のノードで実行されます。ユーザー コントロール プレーンを管理するには、管理クラスタが次の操作を行う必要があります。

  • ユーザー クラスタ コントロール プレーンを実行するマシンを管理する。
  • コントロール プレーン コンポーネントを作成、更新、削除する。
  • Kubernetes API サーバーをユーザー クラスタに公開する。
  • クラスタの証明書を管理する。

ユーザー クラスタ

ユーザー クラスタでは、コンテナ化されたワークロードとサービスをデプロイして実行します。

CLI ツール

GKE On-Prem をインストールすると、ローカル ワークステーションまたはノートパソコンに次の CLI ツールがダウンロードされます。

  • govc
  • terraform
  • gkectl
  • kubectl(Google Cloud CLI に含まれる)
  • gcloud(gcloud CLI に含まれる)

govc

govc は vSphere の CLI です。管理ワークステーションを作成するときは、govc を使用します。

terraform

terraform は HashiCorp Terraform の CLI です。terraform を使用して管理ワークステーションを作成します。

gkectl

gkectl は、GKE On-Prem のメインの CLI です。gkectl は、次のような多くのクラスタ管理タスクに使用します。

  • クラスタの作成と管理。
  • 問題の診断とトラブルシューティング。
  • クラスタログのキャプチャとエクスポート。

kubectl

kubectl は Kubernetes の CLI です。kubectl は Kubernetes の操作や、次のようなタスクに使用します。

  • クラスタで実行されているコンテナ化されたワークロードのデプロイ、管理、削除。
  • Kubernetes リソースの管理、編集、削除。

gcloud

Google Cloud CLI は Google Cloud の CLI です。gcloud CLI は、次のような複数の目的に使用します。

  • Google Cloud プロジェクトに対する認証。
  • サービス アカウントとその秘密鍵の作成。
  • アカウントへの Identity and Access Management ロールのバインディング。

Google Cloud コンソールでのクラスタの登録

GKE On-Prem ユーザー クラスタを作成する場合は、Connect を有効にして Google Cloud コンソールに自動的に登録できます。Connect を使用することで、同じ Google Cloud ユーザー インターフェースからオンプレミスとオンクラウドの Kubernetes クラスタを表示してログインできます。

Connect を有効にすると、各ユーザー クラスタに Connect Agent が作成されます。Connect Agent は、オンプレミス クラスタから Google Cloud への長時間の暗号化された接続を確立する Deployment です。

Connect Agent のコンテナ イメージは、gcr.io にある Container Registry リポジトリから取得されます。ユーザー クラスタが gcr.io に接続していない、または接続できない場合は、非公開 Docker レジストリを使用して Google Cloud コンソールに接続します。

バージョニング

バージョニングの仕組みについては、バージョンをご覧ください。