ベアメタル版 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以下で説明する自動 API 有効化とサービス アカウント作成機能を使用するには、プロジェクト オーナーまたは編集者のロールが必要です。次の IAM ロールをユーザーに追加することもできます。
export GOOGLE_APPLICATION_CREDENTIALS=JSON_KEY_FILEJSON_KEY_FILE には、サービス アカウントの JSON キーファイルへのパスを指定します。
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
ツールを使用してこれらのサービス アカウントを作成することもできます。