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

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

  • bmctl ツールを実行するワークステーション マシンの前提条件。
  • ベアメタル版 Anthos クラスタ デプロイに含まれるノード マシンの前提条件。
  • ロードバランサ マシンの前提条件。
  • Google Cloud プロジェクトの前提条件。
  • サービス アカウントの前提条件。

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

始める前に

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

  • クラスタノード マシンへのアクセスに必要な秘密 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 を超える空きディスク容量がある。
  • すべてのクラスタノード マシンへの L3 接続がある。
  • パスワードを使用しないルートアクセスで秘密鍵を介して SSH 経由ですべてのクラスタノード マシンにアクセスできる。直接アクセスまたは sudo によるアクセスが可能。
  • コントロール プレーン VIP へのアクセスがある。

ノードマシンの前提条件

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

  • サポート対象の Linux ディストリビューションのオペレーティング システムを使用している。
  • ハードウェアの最小要件を満たしている。
  • インターネット アクセスがある。
  • 他のすべてのノードマシンへの L3 接続がある。
  • コントロール プレーン VIP へのアクセスがある。
  • 適切に構成された DNS ネームサーバーがある。
  • 重複するホスト名はない。
  • 次の NTP サービスのいずれかが有効になっていて、機能している。
    • chrony
    • ntp
    • ntpdate
    • systemd-timesyncd
  • apt、dnf などの有効なパッケージ マネージャーがある。
  • SELinux が無効になっている。/etc/selinux/config ファイルで SELINUX=disabled または SELINUX=permissive を構成し、マシンを再起動する。
  • CentOS / RHEL で、firewalld が無効になっている。無効にするには、systemctl disable firewalld を実行します。
  • Ubuntu で、AppArmor と Uncomplicated Firewall(UFW)が無効になっている。無効にするには、systemctl stop apparmor ufw を実行します。
  • ノードマシンに Docker がインストールされていない場合や、古いバージョンがインストールされている場合、ベアメタル上の Anthos がクラスタ作成時に Docker 19.03.13 以降をインストールする。
  • ベアメタル版 Anthos クラスタをインストールまたは再インストールする際には、以下のディレクトリを保管するファイルシステムに必要な容量があり、使用率が 90% 未満であることを常に確認してください。インストール プロセスでは、必要に応じて次のディレクトリが作成されることに留意してください。
    • /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)など)を遵守することが期待されます。

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

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

  • マシンが同じ L2 サブネット内に配置されている。
  • 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 ツールを使用してこれらのサービス アカウントを作成することもできます。