インストールの前提条件の概要

ベアメタル版 Anthos クラスタには、次のインストール 前提条件があります。

クラスタノード マシンとしてワークステーション マシンを使用する場合は、その両方の前提条件を満たす必要があります。

始める前に

インストール時には、次の認証情報を指定する必要があります。

  • クラスタノード マシンへのアクセスに必要な秘密 SSH 認証鍵。
  • root を使用していない場合は、クラスタのノードマシンのログイン名になります。
  • Google Cloud サービス アカウント キー。詳しくは、サービス アカウント キーの作成と管理をご覧ください。

ベアメタル版 Anthos クラスタをインストールする前に、必要な認証情報がすべて揃っていることをご確認ください。

gcloud にログインする

  1. gcloud auth application-default ログインを使用して、ユーザーとして gcloud にログインします。
  2. gcloud auth application-default login
    
    以下で説明する自動 API 有効化とサービス アカウント作成機能を使用するには、プロジェクト オーナーまたは編集者のロールが必要です。次の IAM ロールをユーザーに追加することもできます。
    • サービス アカウント管理者
    • サービス アカウント キー管理者
    • プロジェクト IAM 管理者
    • Compute 閲覧者
    • Service Usage 管理者
    また、これらのロールを持つサービス アカウントがすでにある場合は、次のコマンドを実行します。
    export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
    
    JSON_KEY_FILE には、サービス アカウントの JSON キーファイルへのパスを指定します。
  3. クラスタ作成に使用する Google CCloud プロジェクト ID を取得します。
  4. export CLOUD_PROJECT_ID=$(gcloud config get-value project)
    

ワークステーションの前提条件

bmctl ワークステーションは次の前提条件を満たしている必要があります。

  • オペレーティング システムには、クラスタノード マシンで実行されるのと同じサポート対象の Linux ディストリビューションを使用している。
  • Docker バージョン 19.03 以降がインストールされている。
  • root ユーザー以外は docker グループのメンバーになっている(手順については、root 以外のユーザーとして Docker を管理するをご覧ください)。
  • gcloud がインストールされている。
  • 50 GB を超える空きディスク容量がある。
  • すべてのクラスタノード マシンへのレイヤ 3 接続。
  • パスワードを使用しないルートアクセスで秘密鍵を介して SSH 経由ですべてのクラスタノード マシンにアクセスできる。直接アクセスまたは sudo によるアクセスが可能。
  • コントロール プレーン VIP へのアクセスがある。

ノードマシンの前提条件

ノードマシンには次の前提条件があります。

  • サポート対象の Linux ディストリビューションのオペレーティング システムを使用している。
  • ハードウェアの最小要件を満たしている。
  • インターネット アクセスがある。
  • すべての他のノード マシンへのレイヤ 3 接続。
  • コントロール プレーン VIP へのアクセスがある。
  • 適切に構成された DNS ネームサーバーがある。
  • 重複するホスト名はない。
  • 次の NTP サービスのいずれかが有効になっていて、機能している。
    • chrony
    • ntp
    • ntpdate
    • systemd-timesyncd
  • apt、dnf などの有効なパッケージ マネージャーがある。
  • Ubuntu で、AppArmor と Uncomplicated Firewall(UFW)が無効になっている。無効にするには、systemctl stop apparmor ufw を実行します。
  • コンテナ ランタイムとして Docker を選択した場合は、インストールされた Docker バージョン 19.03 以降を使用できます。ノードマシンに Docker がインストールされていない場合や、古いバージョンがインストールされている場合、ベアメタル上の Anthos がクラスタ作成時に Docker 19.03.13 以降をインストールする。
  • ランタイムとして containerd を使用する場合は Docker が不要になり、Docker をインストールすると問題が発生する可能性があります。詳細については、既知の問題をご覧ください。
  • ベアメタル版 Anthos クラスタをインストールまたは再インストールする際には、以下のディレクトリを保管するファイルシステムに必要な容量があり、次の両方の要件を満たしていることを常に確認してください。
    • 全体的なディスク容量の使用率は 90% 未満です。
    • ディレクトリには、少なくとも 128 GiB の空き容量が必要です。必要に応じて、次のディレクトリが作成されます。
    • /var/lib/docker: 30 GiB
    • /var/lib/kubelet: 10 GiB
    • /mnt/anthos-system: 25 GiB
    • /: 20 GiB
    • /var/lib/etcd: 20 GiB(コントロール プレーン ノードにのみ該当)
  • /var/lib/etcd ディレクトリと /etc/kubernetes ディレクトリは、存在しない、または空のいずれかの状態です。

ベアメタル版 Anthos クラスタをインストールして実行するための前提条件に加え、お客様は業界またはビジネス セグメントを治める関連基準(クレジット カードを処理するビジネスに関する PCI DSS 要件、防衛産業のビジネスに関するセキュリティ テクニカル実装ガイド(STIG)など)を遵守することが期待されます。

ロードバランサ マシンの前提条件

デプロイメントに専用のロードバランサ ノードプールがない場合は、ワーカーノードまたはコントロール プレーンノードを使用してロードバランサのノードプールを作成できます。その場合、追加の前提条件があります。

  • マシンが同じレイヤ 2 サブネット内に配置されている。
  • VIP がすべて、ロードバランサのノードのサブネットにあり、サブネットのゲートウェイからルーティング可能。
  • ロードバランサのサブネットのゲートウェイが、マスターのロードバランサにパケットを転送する Gratuitous ARP をリッスンする必要がある。

Google Cloud プロジェクトの前提条件

ベアメタル版 Anthos クラスタをインストールする前に、関連する GCP プロジェクトで次のサービスを有効にしてください。

  • anthos.googleapis.com
  • anthosgke.googleapis.com
  • cloudresourcemanager.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.googleapis.com
  • monitoring.googleapis.com
  • logging.googleapis.com

また、bmctl ツールを使用して、これらのサービスを有効にすることもできます。

サービス アカウントの前提条件

本番環境では、目的ごとに別のサービス アカウントを作成する必要があります。Anthos clusters on bare metal には、目的に応じて、次の別の種類の Google Cloud サービス アカウントが必要です。

  • Container Registry(gcr.io)にアクセスする際、特別なロールは必要ありません。
  • フリートにクラスタを登録するには、Google Cloud プロジェクトのサービス アカウントに roles/gkehub.admin IAM ロールを付与します。
  • フリートに接続するには、Google Cloud プロジェクトのサービス アカウントに roles/gkehub.connect IAM ロールを付与します。
  • Google Cloud のオペレーション スイートにログと指標を送信するには、Google Cloud プロジェクトのサービス アカウントに次の IAM ロールを付与します。

    • roles/logging.logWriter
    • roles/monitoring.metricWriter
    • roles/stackdriver.resourceMetadata.writer
    • roles/monitoring.dashboardEditor

また、bmctl ツールを使用してこれらのサービス アカウントを作成することもできます。