このドキュメントでは、クラスタの作成に使用できる管理ワークステーションを Anthos clusters on VMware(GKE on-prem)に作成する方法について説明します。
このドキュメントの手順では、gkeadm
コマンドライン ツールを使用します。このツールは、64 ビット Linux、Windows 10、Windows Server 2019、macOS 10.15 以降で利用できます。
ここでは手順全体を詳しく解説します。管理ワークステーションの作成に関する概要については、管理ワークステーションの作成(クイックスタート)をご覧ください。
始める前に
複数の Google Cloud プロジェクトの使用の説明に従って、1 つ以上の Cloud プロジェクトを作成します。
サービス アカウントの計画
gkeadm
を使用して管理ワークステーションを作成するときに、gkeadm
でサービス アカウントとキーを自動的に作成することもできます。この場合、gkeadm
により、適切な Identity and Access Management ロールがサービス アカウントに付与されます。
また、サービス アカウントとキーを手動で作成することもできます。その場合、IAM のロールをサービス アカウントに手動で付与する必要があります。
サービス アカウントを手動で作成すると、gkeadm
で作成する場合よりもサービス アカウントを柔軟に作成できます。
自動的に作成されたサービス アカウントはすべて、コンポーネント アクセス サービス アカウントと同じ親 Cloud プロジェクトを持ちます。サービス アカウントを手動で作成する場合は、親 Cloud プロジェクトを選択できます。
自動的に作成されたサービス アカウントには、コンポーネント アクセス サービス アカウントの親の Cloud プロジェクトに対する IAM のロールがすべて付与されます。クラスタに関連付けられている Cloud プロジェクトが 1 つだけであれば問題ありませんが、クラスタに複数の Cloud プロジェクトが関連付けられている場合は、選択した Cloud プロジェクトのサービス アカウントにロールを付与できるようにする必要があります。
独自のサービス アカウントを作成する場合は、サービス アカウントとキーの手順で作成してください。
gkeadm
によって自動的にサービス アカウントを作成している場合でも、コンポーネント アクセス サービス アカウントは手動で作成する必要があります。コンポーネント アクセス サービス アカウントを作成して適切な IAM ロールを付与する方法については、コンポーネント アクセス サービス アカウントをご覧ください。
構成ファイルのテンプレートを生成する
現在のディレクトリに gkeadm
をダウンロードします。
テンプレートを生成します。
./gkeadm create config
上記のコマンドにより、現在のディレクトリに次のファイルが作成されます。
credential.yaml
admin-ws-config.yaml
credential.yaml
の入力
credential.yaml
に vCenter のユーザー名とパスワードを入力します。例:
kind: CredentialFile items: - name: vCenter username: "my-account-name" password: "AadmpqGPqq!a"
admin-ws-config.yaml
の入力
admin-ws-config.yaml
のいくつかのフィールドには、デフォルト値や生成された値がすでに入力されています。入力された値をそのまま使用することも、必要に応じて変更することもできます。
入力が必要なフィールド
次の必須フィールドに入力します。フィールドに入力する方法については、管理ワークステーションの構成ファイルをご覧ください。
gcp: componentAccessServiceAccountKeyPath: "Fill in" vCenter: credentials: address: "Fill in" datacenter: "Fill in" datastore: "Fill in" cluster: "Fill in" network: "Fill in" resourcePool: "Fill in" caCertPath: "Fill in"
管理ワークステーションがプロキシ サーバーの背後にある場合は、次のように proxyURL
フィールドに入力します。
adminWorkstation: proxyURL: "Fill in"
管理ワークステーションが DHCP サーバーから IP アドレスを取得する場合は、ipAllocationMode
を "dhcp"
に設定して、hostconfig
セクションを削除します。
adminWorkstation: network: ipAllocationMode: "dhcp"
管理ワークステーションに静的 IP アドレスを指定する場合は、ipAllocationMode
を "static"
に設定し、hostconfig
セクションに入力します。
adminWorkstation: network: ipAllocationMode: "static" hostconfig: ip: "Fill in" gateway: "Fill in" netmask: "Fill in" dns: - "Fill in"
ログイン
SDK の account
プロパティとして設定された Google アカウントは、SDK アカウントと呼ばれます。gkeadm
コマンドライン ツールは、SDK アカウントを使用して管理ワークステーション OVA をダウンロードし、Cloud プロジェクトでサービスを有効にします。
gkeadm
によってサービス アカウントが自動的に作成されるようにする場合は、gkeadm
でも SDK アカウントを使用してサービス アカウントとキーを作成し、サービス アカウントにロールを付与します。つまり gkeadm
を実行して管理ワークステーションを作成する前に、SDK account
プロパティを設定することが重要です。
任意の Google アカウントでログインします。SDK の account
プロパティが設定されます。
gcloud auth login
SDK の account
プロパティが正しく設定されていることを確認します。
gcloud config list
出力には、SDK account
プロパティの値が表示されます。次に例を示します。
[core] account = my-name@google.com disable_usage_reporting = False Your active configuration is: [default]
SDK アカウントにロールを付与する
SDK アカウントには、コンポーネント アクセス サービス アカウントの親 Cloud プロジェクトに対する次の IAM ロールが必要です。これにより、gkeadm
が Cloud プロジェクトでサービスを有効にできるようになります。
serviceUsage.serviceUsageAdmin
gkeadm
によってサービス アカウントが自動的に作成されるようにする場合は、SDK アカウントに、コンポーネント アクセス サービス アカウントの親プロジェクトに対する次のロールも付与されている必要があります。これにより、gkeadm
がサービス アカウントとキーを作成できるようになります。
resourcemanager.projectIamAdmin
iam.serviceAccountCreator
iam.serviceAccountKeyAdmin
Google Cloud プロジェクトにロールを付与するには、Cloud プロジェクトに対する特定の権限が必要です。詳細については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
必要な権限があれば、自分でロールを付与できます。それ以外の場合は、組織内の別のユーザーがロールを付与する必要があります。
必要なロールを SDK アカウントに付与するには:
Linux / macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/serviceusage.serviceUsageAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/serviceusage.serviceUsageAdmin"
次のように置き換えます。
PROJECT_ID
: コンポーネント アクセス サービス アカウントの親 Cloud プロジェクトの IDACCOUNT
: SDK アカウント
gkeadm
がサービス アカウントを自動的に作成する場合に追加のロールを付与するには:
Linux / macOS
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID \ --member="user:ACCOUNT" \ --role="roles/iam.serviceAccountKeyAdmin"
Windows
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/resourcemanager.projectIamAdmin" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountCreator" gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="user:ACCOUNT" ^ --role="roles/iam.serviceAccountKeyAdmin"
次のように置き換えます。
PROJECT_ID
: コンポーネント アクセス サービス アカウントの親プロジェクトの IDACCOUNT
: SDK アカウント
管理ワークステーションの作成
次のコマンドを入力して、管理ワークステーションを作成します。gkeadm
でサービス アカウントを作成する場合は、--auto-create-service-accounts
フラグを指定します。独自のサービス アカウントを手動で作成する場合は、このフラグを省略します。
./gkeadm create admin-workstation [--auto-create-service-accounts]
出力には、管理ワークステーションの作成に関する詳細情報が含まれます。
... Getting ... service account... ... ******************************************************************** Admin workstation is ready to use. Admin workstation information saved to /usr/local/google/home/me/my-admin-workstation This file is required for future upgrades SSH into the admin workstation with the following command: ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1 ********************************************************************
管理ワークステーションへの SSH 接続の確立
上記の出力の終わり付近に、管理ワークステーションへの SSH 接続に使用できるコマンドが表示されています。ここで、そのコマンドを入力します。例:
ssh -i /usr/local/google/home/me/.ssh/gke-admin-workstation ubuntu@172.16.5.1
管理ワークステーション上のファイルを一覧表示します。
ls -1
出力には、コンポーネント アクセス サービス アカウントの 2 つのクラスタ構成ファイル(CA 証明書ファイルと JSON キーファイル)が表示されます。gkeadm
によってサービス アカウントが作成されている場合には、そのサービス アカウントの JSON キーファイルも表示されます。次に例を示します。
admin-cluster.yaml user-cluster.yaml vcenter-ca-cert.pem component-access-key.json
管理ワークステーションで gkeadm
がコンポーネント アクセス サービス アカウントを有効にしたことを確認します。
gcloud config get-value account
JSON キーファイルを管理ワークステーションにコピーする
クラスタを作成する前に、サービス アカウントの JSON キーファイルをホーム ディレクトリの管理ワークステーションにコピーする必要があります。
コンポーネント アクセス サービス アカウントのキーはすでに管理ワークステーションに存在します。
gkeadm create admin-workstation
の実行時に --auto-create-service-accounts
フラグを指定した場合、次のサービス アカウントのキーは、ホーム ディレクトリの管理ワークステーションにすでに存在しています。それ以外の場合は、管理ワークステーションのホーム ディレクトリに手動でキーをコピーする必要があります。
- Connect-register サービス アカウント
- logging-monitoring サービス アカウント
次のいずれかのサービス アカウントを作成した場合は、そのサービス アカウントのキーを管理ワークステーションのホーム ディレクトリに手動でコピーする必要があります。
- 使用状況測定サービス アカウント
- 監査ロギング サービス アカウント
- Binary Authorization サービス アカウント
バックアップ ファイルから管理ワークステーションを復元する
管理ワークステーションをアップグレードすると、デフォルトで gkeadm
アップグレード コマンドによってバックアップ ファイルも保存されます。今後、管理ワークステーションがなくなった場合や、アップグレードした管理ワークステーション上に存在したファイルの一部が失われた場合は、バックアップ ファイルを使用して、アップグレード直後の状態に復元された管理ワークステーションを作成できます。
バックアップ ファイルから管理ワークステーションを作成するには、次のコマンドを実行します。
gkeadm create admin-workstation --restore-from-backup ADMIN_WORKSTATION_NAME-backup.tar.gz
ADMIN_WORKSTATION_NAME は、管理ワークステーションの名前に置き換えます。