ベアメタル版 Anthos クラスタには、次のインストール 前提条件があります。
bmctl
ツールを実行するワークステーション マシンの前提条件。- ベアメタル版 Anthos クラスタ デプロイに含まれるノード マシンの前提条件。
- ロードバランサ マシンの前提条件。
- Google Cloud プロジェクトの前提条件。
- サービス アカウントの前提条件。
クラスタノード マシンとしてワークステーション マシンを使用する場合は、その両方の前提条件を満たす必要があります。
始める前に
インストール時には、次の認証情報を指定する必要があります。
- クラスタノード マシンへのアクセスに必要な秘密 SSH 認証鍵。
root
を使用していない場合は、クラスタのノードマシンのログイン名になります。- Google Cloud サービス アカウント キー。詳しくは、サービス アカウント キーの作成と管理をご覧ください。
ベアメタル版 Anthos クラスタをインストールする前に、必要な認証情報がすべて揃っていることをご確認ください。
gcloud にログインする
gcloud auth application-default
ログインを使用して、ユーザーとして gcloud にログインします。- サービス アカウント管理者
- サービス アカウント キー管理者
- プロジェクト IAM 管理者
- Compute 閲覧者
- Service Usage 管理者
- クラスタ作成に使用する Google CCloud プロジェクト ID を取得します。
gcloud auth application-default login
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILE
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 クラスタをインストールまたは再インストールする際には、以下のディレクトリを保管するファイルシステムに必要な容量があり、次の両方の要件を満たしていることを常に確認してください。
- 全体的なディスク容量の使用率は 90% 未満です。
- ディレクトリには、少なくとも 128 GiB の空き容量が必要です。必要に応じて、次のディレクトリが作成されます。
/var/lib/docker
または/var/lib/containerd
(コンテナのランタイムによって異なる): 30 GiB(32,212,254,720 バイト)/var/lib/kubelet
: 10 GiB(10,737,418,240 バイト)/mnt/anthos-system
: 25 GiB(26,843,545,600 バイト)/
: 20 GiB(21,474,836,480 バイト)/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
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
opsconfigmonitoring.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
ツールを使用してこれらのサービス アカウントを作成することもできます。