DHCP を使用した管理ワークステーションの作成

このページでは、動的ホスト構成プロトコル(DHCP)を使用して IP アドレスを取得する管理ワークステーションを作成する方法について説明します。

静的 IP アドレスを持つ管理ワークステーションを作成するには、管理ワークステーションの作成をご覧ください。

概要

管理ワークステーションは、GKE On-Prem クラスタの作成と管理に必要なツールをすべて含む vSphere VM です。管理ワークステーションを作成するには、このトピックで説明される次の手順を行います。

  • 管理ワークステーション VM の圧縮イメージである管理ワークステーション Open Virtual Appliance(OVA)ファイルをダウンロードします。
  • vSphere へのコマンドライン インターフェースである govc を使用して、OVA を vSphere に VM テンプレートとしてインポートします。
  • HashiCorp Terraform 構成ファイルをコピーして入力します。
  • Terraform バージョン 0.11 を使用して、管理ワークステーション VM を作成します。

管理ワークステーション OVA をダウンロードする

ダウンロードの説明に沿って、管理ワークステーション OVA とその署名ファイルをダウンロードします。

govc を使用して OVA を vSphere にインポートし、VM テンプレートとしてマークする

以降のセクションでは、以下を行います。

  1. vCenter Server と vSphere 環境の要素を宣言する変数を作成する。
  2. 管理ワークステーションの OVA を vSphere にインポートし、VM テンプレートとしてマークする。

govc の変数を作成する

管理ワークステーション OVA を vSphere にインポートする前に、vCenter Server と vSphere 環境の要素を宣言する変数を govc に指定する必要があります。

export GOVC_URL=https://[VCENTER_SERVER_ADDRESS]/sdk
export GOVC_USERNAME=[VCENTER_SERVER_USERNAME]
export GOVC_PASSWORD=[VCENTER_SERVER_PASSWORD]
export GOVC_DATASTORE=[VSPHERE_DATASTORE]
export GOVC_DATACENTER=[VSPHERE_DATACENTER]
export GOVC_INSECURE=true

次のように、vSphere のデフォルトのリソースプールを使用することも、独自のリソースプールを作成することもできます。

# If you want to use a resource pool you've configured yourself, export this variable:
export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources/[VSPHERE_RESOURCE_POOL]
# If you want to use vSphere's default resource pool, export this variable instead:
export GOVC_RESOURCE_POOL=[VSPHERE_CLUSTER]/Resources

ここで

  • [VCENTER_SERVER_ADDRESS] は、vCenter Server の IP アドレスまたはホスト名です。
  • [VCENTER_SERVER_USERNAME] は、vCenter Server で管理者のロールまたは同等の権限を持つアカウントのユーザー名です。
  • [VCENTER_SERVER_PASSWORD] は、vCenter Server アカウントのパスワードです。
  • [VSPHERE_DATASTORE] は、vSphere 環境で構成したデータストアの名前です。
  • [VSPHERE_DATACENTER] は、vSphere 環境で構成したデータセンターの名前です。
  • [VSPHERE_CLUSTER] は、vSphere 環境で構成したクラスタの名前です。
  • デフォルト以外のリソースプールを使用する場合、
  • [VSPHERE_RESOURCE_POOL] は、vSphere 環境で構成したリソースプールの名前です。

プロキシの変数を作成する

プロキシを使用している場合は、HTTP アドレスと HTTPS アドレスの変数をエクスポートします。[PROXY_ADDRESS] はプロキシの IP アドレスまたはホスト名です。

export HTTP_PROXY=http://[PROXY_ADDRESS]
export HTTPS_PROXY=https://[PROXY_ADDRESS]

OVA を vSphere(標準スイッチ)にインポートする

vSphere 標準スイッチを使用している場合、次のコマンドを使用して OVA を vSphere にインポートします。

govc import.ova -options - gke-on-prem-admin-appliance-vsphere-1.5.2-gke.3.ova <<EOF
{
  "DiskProvisioning": "thin",
  "MarkAsTemplate": true
}
EOF

OVA を vSphere(分散スイッチ)にインポートする

vSphere 分散スイッチを使用している場合、このコマンドを実行して OVA を vSphere にインポートします。ここで、[YOUR_DISTRIBUTED_PORT_GROUP_NAME]分散ポートグループの名前です。

govc import.ova -options - gke-on-prem-admin-appliance-vsphere-1.5.2-gke.3.ova <<EOF
{
  "DiskProvisioning": "thin",
  "MarkAsTemplate": true,
  "NetworkMapping": [
      {
          "Name": "VM Network",
          "Network": "[YOUR_DISTRIBUTED_PORT_GROUP_NAME]"
      }
  ]
}
EOF

Terraform 構成ファイルをコピーする

Terraform ファイルのディレクトリを作成します。

mkdir [TERRAFORM_DIR]

[TERRAFORM_DIR] は、Terraform ファイルを保持するディレクトリのパスです。

次の TF ファイルと TFVARS ファイルをコピーして、[TERRAFORM_DIR]/terraform.tf[TERRAFORM_DIR]/terraform.tfvars にそれぞれ保存します。

TF ファイルは、VM 作成を実行する Terraform HCL config です。

SSH 認証鍵を作成する

ローカルのノートパソコンやワークステーションから管理ワークステーションに SSH 接続できるように、SSH 認証鍵を作成します。Linux ベースのオペレーティング システムでは、ssh-keygen を使用できます。

ssh-keygen -t rsa -f ~/.ssh/vsphere_workstation -N ""

TFVARS ファイルを変更する

テキスト エディタで terraform.tfvars を開き、次の変数の値を指定します。これらの値のほとんどは、vCenter Client にログインすることで確認できます。

vcenter_user

vCenter Server ユーザー アカウントを文字列として指定します。ユーザー アカウントには管理者のロールか、それと同等の権限が必要です(vSphere の要件をご覧ください)。

例:

vcenter_user = "administrator@vsphere.local"

vcenter_password

vCenter Server ユーザー アカウントのパスワードを文字列で指定します。例:

vcenter_password = "#STyZ2T#Ko2o"

vcenter_server

vCenter Server のアドレス(IP またはホスト名)を文字列として指定します。例:

vcenter_server = "198.51.100.2"

ssh_public_key_path

SSH 公開鍵へのパスを指定します。これは前の手順で作成しています。

ssh_public_key_path = "~/.ssh/vsphere_workstation.pub"

vm_name

管理ワークステーションに任意の名前を指定します。例:

vm_name = "my-admin-workstation"

datastore

次のように、vSphere データストアの名前を文字列として指定します。例:

datastore = "MY-DATASTORE"

datacenter

次のように、vSphere データセンターの名前を文字列として指定します。例:

datacenter = "MY-DATACENTER"

cluster

次のように、vSphere クラスタの名前を文字列として指定します。例:

cluster = "MY-CLUSTER"

resource_pool

デフォルト以外のリソースプールを使用している場合は、vSphere リソースプールの名前を文字列として指定します。例:

resource_pool = "MY-POOL"

デフォルトのリソースプールを使用している場合は、次の値を指定します。

resource_pool = "[MY_CLUSTER]/Resources"

ここで、[MY_CLUSTER] は vSphere クラスタの名前です。

スタンドアロン ホストのルートリソース プールの指定をご覧ください。

network

管理ワークステーションを作成する vSphere ネットワークを文字列で指定します。例:

network = "MY-VM-NETWORK"

vm_template

VM テンプレート名を文字列として指定します。前の手順で OVA をインポートし、テンプレートとしてマークしました。テンプレート名に .ova 拡張子がないことに注意してください。

vm_template = "gke-on-prem-admin-appliance-vsphere-1.5.2-gke.3"

管理ワークステーションを作成する

これで、管理ワークステーション VM を作成する準備ができました。このセクションの手順では、Terraform バージョン 0.11 を使用します。

  1. Terraform 構成ファイル(TF と TFVARS)を含むディレクトリに移動します。

  2. ディレクトリで Terraform を初期化し、構成を適用します。これには、数分かかることがあります。

    terraform init && terraform apply -auto-approve -input=false

管理ワークステーションに SSH 接続する

  1. Terraform 構成ファイルがあるディレクトリに移動します。

  2. 管理ワークステーションの IP アドレスを取得します。

    terraform output ip_address

    管理ワークステーションの IP アドレスをメモしておきます。

  3. SSH 認証鍵と IP アドレスを使用して管理ワークステーションに SSH 接続します。

    ssh -i ~/.ssh/vsphere_workstation ubuntu@[ADMIN_WORKSTATION_IP_ADDRESS]
    

管理ワークステーションが正しく設定されていることを確認する

gkectldocker が管理ワークステーションにインストールされていることを確認します。

gkectl version
docker version

管理ワークステーションで NTP サーバーを構成する

デフォルトでは、管理ワークステーションはネットワーク タイム プロトコル(NTP)サーバーとして ntp.ubuntu.com を使用します。組織が別の時刻サーバーを使用している場合は、他の組織と同じ NTP サーバーを使用するよう管理ワークステーションを構成します。

次のコマンドを入力して、管理ワークステーションの NTP サーバーを構成します。

sudo mkdir -p /etc/systemd/timesyncd.conf.d/

sudo bash -c "cat >> /etc/systemd/timesyncd.conf.d/cloud-init.conf" << EOF
[Time]
NTP=[NTP_SERVER]
EOF

sudo systemctl restart systemd-timesyncd
timedatectl status

ここで、[NTP_SERVER] は NTP サーバーのホスト名または IP アドレスです。

NTP サーバーが機能していることを確認するには、次のコマンドを入力します。

timedatectl

出力は次のようになります。

                      Local time: Tue 2019-12-17 00:21:50 UTC
                  Universal time: Tue 2019-12-17 00:21:50 UTC
                        RTC time: Tue 2019-12-17 00:21:50
                       Time zone: Etc/UTC (UTC, +0000)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

トラブルシューティング

openssl で管理ワークステーション OVA を検証できない

現象

管理ワークステーションの OVA ファイルに対して openssl dgst を実行しても Verified OK が返されない

考えられる原因

OVA ファイルに問題があるため、正常な検証ができません。

解決策

管理ワークステーション OVA をダウンロードするの説明に従って、管理ワークステーションの OVA をもう一度ダウンロードしてデプロイしてみてください。問題が解決しない場合は、Google にお問い合わせください。

詳しくは、トラブルシューティングをご覧ください。