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

ベアメタル版 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 ディストリビューションのオペレーティング システムを使用している。
  • Linux カーネルのバージョンが 4.17.0 以降。Ubuntu 18.04 と 18.04.1 は、Linux カーネル バージョン 4.15 上にあるため、互換性がありません。
  • ハードウェアの最小要件を満たしている。
  • インターネット アクセスがある。
  • すべての他のノード マシンへのレイヤ 3 接続。
  • コントロール プレーン VIP へのアクセスがある。
  • 適切に構成された DNS ネームサーバーがある。
  • 重複するホスト名はない。
  • 次の NTP サービスのいずれかが有効になっていて、機能している。
    • chrony
    • ntp
    • ntpdate
    • systemd-timesyncd
  • apt、dnf などの有効なパッケージ マネージャーがある。
  • Ubuntu では、Uncomplicated Firewall(UFW)を無効にする必要があります。 UFW を無効にするには、systemctl stop ufw を実行します。
  • Ubuntu で、ベアメタル版 Anthos クラスタ 1.8.2 以降の場合、AppArmor を無効にする必要はない。ベアメタル版 Anthos クラスタの以前のリリースを使用してクラスタをデプロイする場合は、コマンド systemctl stop apparmor を使用して AppArmor を無効にします。
  • コンテナ ランタイムとして Docker を選択した場合は、インストールされた Docker バージョン 19.03 以降を使用できます。ノードマシンに Docker がインストールされていない場合や、古いバージョンがインストールされている場合、ベアメタル上の Anthos がクラスタ作成時に Docker 19.03.13 以降をインストールする。
  • デフォルトのコンテナ ランタイムである containerd を使用する場合、Docker は不要です。Docker をインストールすると、問題が発生する可能性があります。詳細については、既知の問題をご覧ください。

  • クラスタの作成では、ベアメタル版 Anthos クラスタのシステム コンポーネントに必要な空き容量のみが確認されます。この変更により、アプリケーション ワークロードに割り当てるスペースをより詳細に制御できます。ベアメタル版 Anthos クラスタをインストールする場合は、次のディレクトリをサポートするファイル システムに必要な容量があり、次の要件を満たすようにしてください。

    • /: 17 GiB(18,253,611,008 バイト)。
    • /var/lib/docker または /var/lib/containerd(コンテナのランタイムに応じて異なります)。
      • コントロール プレーン ノード用に 30 GiB(32,212,254,720 バイト)。
      • ワーカーノード用に 10 GiB(10,485,760 バイト)。
    • /var/lib/kubelet: 500 MiB(524,288,000 バイト)。
    • /var/lib/etcd: 20 GiB(21,474,836,480 バイト、コントロール プレーン ノードにのみ該当)。

    クラスタのバージョンに関係なく、前述のディレクトリ リストは同じパーティション、または異なるパーティションのいずれに存在しても問題ありません。基盤となる同じパーティションに存在する場合、スペース要件は、パーティション上の個別のディレクトリに必要なスペースの合計です。すべてのリリース バージョンで、クラスタの作成プロセスで必要に応じてディレクトリが作成されます。

  • /var/lib/etcd ディレクトリと /etc/kubernetes ディレクトリは、存在しない、または空のいずれかの状態です。

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

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

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

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

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

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

  • anthos.googleapis.com
  • anthosaudit.googleapis.com
  • anthosgke.googleapis.com
  • cloudresourcemanager.googleapis.com
  • container.googleapis.com
  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • iam.googleapis.com
  • logging.googleapis.com
  • monitoring.googleapis.com
  • opsconfigmonitoring.googleapis.com
  • serviceusage.googleapis.com
  • stackdriver.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
    • roles/opsconfigmonitoring.resourceMetadata.writer

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