GKE On-Prem の概要

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

このトピックは、GKE On-Prem の技術概要です。このトピックを終了したら、必ずシステム要件をお読みください。

Kubernetes について

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

GKE On-Prem の取得

GKE On-Prem は Anthos のコア コンポーネントです。GKE On-Prem を使用するには、まず Google のセールスチームに連絡して Anthos のサブスクリプションを購入します。

GKE On-Prem の準備

GKE On-Prem をインストールするには、いくつかの前提となる設定タスクを完了する必要があります。以下のセクションでは、これらのタスクの概要を説明します。

VMware vSphere 仮想化環境

GKE On-Prem を、オンプレミス環境で動作している VMware vSphere 6.5 クラスタにインストールします。vSphere は、VMware のサーバー仮想化ソフトウェアです。

VMware vCenter と VMware ESXi も調達します。ESXi はデータセンター内の物理ホストまたはサーバーのセットにインストールするタイプ 1 のハイパーバイザです。vCenter は、データセンター サービスを管理するための vSphere のウェブベースのユーザー インターフェースです。ESXi ホスト全体を一元的に表示します。

具体的には、以下のライセンス付きの VMware 製品が必要です。

  • データセンターのホストのセットにインストールされている Enterprise Plus ライセンス エディションの VMware ESXi 6.5。
  • データセンターの 1 つのホストにインストールされている Standard ライセンス エディションの VMware vCenter 6.5。

詳細については、次の VMware リソースをご覧ください。

負荷分散

レイヤ 4 負荷分散では、統合と手動の 2 つの負荷分散モードから選択できます。統合モードは、F5 BIG-IP(GKE On-Prem の統合ロードバランサ)をサポートします。手動モードでは、任意のロードバランサを選択できます。GKE On-Prem では現在、次のロードバランサに関する手順が文書化されています。

GKE On-Prem をインストールする前に、データセンターでロードバランサを構成します。インストール時に、統合(F5 BIG-IP)または手動の負荷分散モード(任意のロードバランサ)を有効にするかどうかを選択します。手動負荷分散モードでは、ノードに静的 IP を割り振る必要があります。動的ホスト構成プロトコル(DHCP)サーバーを手動の負荷分散モードで使用することはできません。

認証

クラスタに対して認証を行い、コンテナ化されたワークロードにアクセスするクライアントがある場合は、任意のプロバイダまたは Active Directory Federated Services(ADFS)で OpenID Connect(OIDC)を使用できます。

Google Cloud プロジェクトの準備

Google Cloud プロジェクトを準備するには以下を行います。

  • Google Cloud プロジェクトを作成して必要な API を有効にする
  • Cloud Identity and Access Management ロールをサービス アカウントにバインドする
  • HashiCorp Terraform バージョン 11 を含む必要なコマンドライン インターフェース(CLI)ツールをダウンロードする

詳しくは以下をご覧ください。

管理ワークステーションの作成

管理ワークステーションの作成には以下を行います。

  • GKE On-Prem バンドル ファイルを含む管理ワークステーション OVA ファイルをダウンロードする。
  • Terraform 構成ファイル(TF)と Terraform 変数ファイル(TFVARS)をコピーし、vCenter と vSphere の構成を反映するように変更する。
  • Terraform を使用して、vSphere で管理ワークステーション仮想マシン(VM)を作成する。

詳しくは以下をご覧ください。

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

インストール中に実行する手順の概要は次のとおりです(インストールの概要もご覧ください)。

  1. 管理ワークステーションに SSH 接続します。
  2. gkectl create-config を実行して GKE On-Prem 構成ファイルを生成します。この構成ファイルでは、GKE On-Prem のインストールに使用する仕様を宣言しています。
  3. クラスタの仕様、OIDC 認証、負荷分散、Stackdriver Logging、登録する Google Cloud プロジェクトなど、ニーズや環境に適した値を使用して構成ファイルを変更します。

  4. gkectl check-config を実行して変更された構成ファイルをインストールに使用できることを検証します。

  5. gkectl prepare を実行して GKE On-Prem の OS イメージを vSphere に移動し、VM のテンプレートとしてマークします。非公開 Docker レジストリを構成すると、このコマンドは GKE On-Prem のコンテナ イメージもレジストリに push します。

  6. 構成ファイルを使用して gkectl create cluster --config を実行し、データセンターに GKE On-Prem クラスタを作成します。

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

アーキテクチャ

1 つのユーザー コントロール プレーンがデプロイされたときの GKE On-Prem アーキテクチャを説明する図
図: ユーザー コントロール プレーンが 1 つある GKE On-Prem アーキテクチャ(クリックして拡大)。

GKE On-Prem には、管理クラスタと(デフォルトでは 3 つの)ユーザー クラスタがあります。また、2 つのアドオン VM と 1 つの管理ワークステーション VM もあります。これらの VM はすべて、1 つの vSphere クラスタで実行されます。

管理ワークステーション

管理ワークステーションは、クラスタ管理者が GKE On-Prem をインストールして操作するための vSphere VM です。これは、他のものを作成する前に作成する最初の VM です。

クラスタ管理者は、vSphere で Terraform を使用して管理ワークステーションを作成します。管理ワークステーションには以下が含まれます。

管理ワークステーションを作成するには、次の 3 つのファイルをダウンロードします。

  • 管理ワークステーションの Open Virtual Appliance(OVA)ファイル。これは、管理ワークステーションのバージョニングされた VM イメージです。このファイルを vSphere にインポートし、VM テンプレートとしてマークします。次に、Terraform はテンプレートを使用して、管理ワークステーションを vSphere クラスタにデプロイします。
  • Terraform 構成ファイル(TF)。これは、Terraform がクラスタに管理ワークステーションを作成するために使用する指示です。ローカルのワークステーションまたはノートパソコンにこのファイルをコピーします。
  • Terraform 構成変数ファイル(TFVARS)。このファイルの変数に環境の値を入力します。TF 構成ファイルは TFVARS ファイルの変数を参照します。ローカルのワークステーションまたはノートパソコンにこのファイルをコピーします。

管理クラスタ

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

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

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

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

ユーザー クラスタ

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

アドオン VM

GKE On-Prem は、管理クラスタのアドオン(Grafana、Prometheus、Istio コンポーネント、Stackdriver など)を実行する 2 つの VM を作成します。

バンドルについて

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 構成ファイルのみがあり、クラスタのコンポーネントをアップグレードするために使用されます。

CLI ツール

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

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

govc

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

terraform

terraform は HashiCorp Terraform の CLI です。terraform を使用して、管理ワークステーションを作成しアップグレードします。

gkectl

gkectl は、GKE On-Prem の CLI です。リファレンス ガイドをご覧ください。

gkectl は、次のような多くのクラスタ管理タスクに使用します。

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

kubectl

kubectl は Kubernetes の CLI です。kubectl は、Kubernetes と 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 コンソールに接続します。

バージョニング

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

問題のトラブルシューティングと診断

トラブルシューティングについては、以下のトピックをご覧ください。

GKE On-Prem ドキュメントのプレースホルダ値

GKE On-Prem のドキュメントを使用すると、コードブロック内の placeholder values をクリックすることで変更できます。次のブロックで [YOUR_NAME] をクリックし、編集可能であることを確認します。

Enter your name: [YOUR_NAME]

これは、コマンドをコピーして環境で実行する前にプレースホルダ値を入力する場合に役立ちます。

次のステップ

システム要件でオンプレミス環境を準備する方法を確認する。