配置 VMware Cloud Director

VMware Cloud Director 可帮助您基于跨网站和地理位置的通用或分布式基础架构创建虚拟数据中心,例如 Google Cloud VMware Engine 提供的虚拟数据中心。使用 VMware Cloud Director,您可以跨 Google Cloud 上托管的服务器管理基础架构,以便通过一个接口托管多个客户并为其提供服务。

VMware Cloud Director 与 Google Cloud VMware Engine 的集成使用一个接口可为您提供以下功能:

  • 弹性虚拟数据中心:创建虚拟数据中心,以允许用户通过 vApp 模板和媒体文件的目录预配网络、存储和计算资源。
  • 混合云管理:管理和监控本地环境和 VMware Engine 环境中的数据中心资源。
  • 多租户:通过可为多租户提供完全隔离的统一接口管理所有租户。
  • 基础架构分配:将 VMware Engine 基础架构划分为较小的资源池,这些资源池可提供给用户并按需进行扩展。
  • 跨虚拟数据中心迁移工作负载:备份、清空和复制从虚拟机层级到整个数据中心的工作负载。

在 Google Cloud 上部署 VMware Cloud Director 后,您可以为 VMware Cloud Director 提供 VMware Engine 私有云资源。对于该过程,请按照有关管理组织虚拟数据中心的相关 VMware 指导操作。

准备工作

适用于 VMware Engine 的 VMware Cloud Director 配置需要您准备 VPC 网络、创建 Google Cloud 资源以及设置 VMware Engine。此过程包括以下步骤:

  1. 创建 VPC 网络
  2. 添加 VPC 网络防火墙规则
  3. 创建 Filestore 实例
  4. 部署代管式 PostgreSQL 实例
  5. 准备 VMware Cloud Director 单元
  6. 设置 VMware Engine
  7. 创建两个完全限定域名 (FQDN)

创建 VPC 网络

在 Google Cloud 中准备 VPC 网络,以便稍后在安装 VMware Cloud Director 单元时使用。

为此,请创建一个跨多个可用区的 VPC 网络。如果您已将 VPC 网络与 VMware Engine 结合使用,则可以使用该网络,而无需创建新的 VPC 网络。

添加 VPC 网络防火墙规则

为您的 VPC 网络创建以下 VPC 网络防火墙规则

  • allow-inter-vcd-cell-communication:设置此规则可允许 VMware Cloud Director 单元在所有端口上相互通信:
    1. 目标设置为网络中的所有实例
    2. 来源过滤条件设置为来源标记
    3. 创建新的来源标记 vcd 以用于 VMware Cloud Director 单元。
    4. 协议和端口设置为全部允许
  • allow-443-8443:设置此规则可允许对 tcp 端口 443 和 8443 进行入站访问:
    1. 目标设置为网络中的所有实例
    2. 来源过滤条件设置为 IP 地址范围
    3. 来源 IP 地址范围字段中,提供范围 0.0.0.0/0 或添加范围以限制对 VMware Cloud Director 单元的访问权限。
    4. 协议和端口设置为指定的协议和端口
    5. 选择 tcp 复选框,并在相应字段中输入 443,8443
  • allow-ssh:设置此规则可允许通过 SSH 访问 VMware Cloud Director 单元:
    1. 目标设置为网络中的所有实例
    2. 来源过滤条件设置为 IP 地址范围
    3. 来源 IP 地址范围字段中,提供范围 0.0.0.0/0 或添加范围以对通过 SSH 访问 VMware Cloud Director 单元进行限制。
    4. 协议和端口设置为指定的协议和端口
    5. 选择 tcp 复选框,并在相应字段中输入 22

如需了解更精细的网络访问权限,您可以参考 VMware Cloud Director 网络安全要求

创建 Filestore 实例

在 Google Cloud 中为 Filestore Cloud Director 转移作业存储区准备 Filestore 实例。为此,请创建 Filestore 实例,并在创建该实例时选择您的 VPC 网络作为已获授权的网络。

部署代管式 PostgreSQL 实例

VMware Cloud Director 需要外部 PostgreSQL 数据库,您可以使用 Cloud SQL 设置该数据库。如需为 VMware Cloud Director 部署代管式 PostgreSQL 实例,请执行以下操作:

  1. 开始执行创建 PostgreSQL 实例的步骤。
  2. 对于数据库版本,选择 PostgreSQL 10
  3. 对于连接,选择专用 IP
  4. 对于机器类型和存储字段,我们建议使用配备 4 个 vCPU 和 15 GB 到 16 GB 内存的机器。根据您的使用场景和 VMware Cloud Director 利用率,您可能需要更大的数据库实例。
  5. 使用您的 VPC 网络授权数据库实例。
  6. 为 VMware Cloud Director 创建数据库
  7. 创建 Google Cloud 用户以访问该数据库。
  8. 执行 VMware Cloud Director 所需的其他数据库配置

准备 VMware Cloud Director 单元

VMware Cloud Director 单元在 Compute Engine 实例上运行。VMware 建议 VMware Cloud Director 单元需随时可用。为了符合此建议,您可以为每个网站至少部署两个 VMware Cloud Director 单元。

最佳做法是部署多个 VMware Cloud Director 单元,数量等于一个单元加上您要连接到 VMware Cloud Director 的私有云的数量。

为每个 VMware Cloud Director 单元创建一个虚拟机 (VM):

  • 按照使用 Linux 虚拟机快速入门中的步骤创建虚拟机。本文档中使用的所有命令都假定您的虚拟机使用 Red Hat Enterprise Linux (RHEL)。

  • 使用您在添加 VPC 网络防火墙规则部分创建的源标记 vcd 将每个虚拟机连接到您的 VPC 网络。

  • 选择机器类型时,您可以选择具有 2 个 vCPU 和 8 GB RAM 的机器。如果您预计负载较高,请改用 4 个 vCPU 和 16 GB 内存。

设置 VMware Engine

您还必须为 VMware Engine 执行以下操作(如果您尚未这样做):

  1. 设置专用服务访问通道以在部署了 VMware Cloud Director 单元的 Google Cloud 项目与 VMware Engine 之间建立 VPC 网络对等互连连接。
  2. 在 VMware Engine 中创建私有云
  3. 将您的本地网络连接到 VMware Engine 私有云。 您必须执行此步骤才能使用在 Google Cloud 上部署的 VMware Cloud Director 管理本地资源。

创建两个完全限定域名 (FQDN)

为了创建 SSL 证书,您需要两个 FQDN。一个 FQDN 用于界面,另一个用于控制台代理。创建证书和配置公共地址时,请使用这些 FQDN。

安装和配置

在安装和配置 VMware Cloud Director 的过程中需要您执行以下操作:

  1. 在每个虚拟机上安装软件包
  2. 在一个虚拟机上安装 VMware Cloud Director
  3. 在其他虚拟机上安装 VMware Cloud Director
  4. 创建 Compute Engine 实例组
  5. 部署负载均衡器

在每个虚拟机上安装软件包

每个 Compute Engine 虚拟机对应一个 VMware Cloud Director 单元。在每个虚拟机上安装必备软件包,以准备 VMware Cloud Director 单元:

  1. 下载要部署的 VMware Cloud Director 二进制文件。
  2. 将 VMware Cloud Director 二进制文件上传到 Cloud Storage 存储分区,以便将其下载到 Compute Engine 虚拟机。
  3. 创建 SSL 证书并准备 VMware Cloud Director 密钥库以进行安装。
    • 如果您已有 Java 密钥库文件,请将其放在您的 Cloud Storage 存储分区中,以便将其下载到 Compute Engine 虚拟机。
    • 如果您需要创建密钥库,请参阅有关创建 SSL 证书的 VMware 指导。您可以在对第一个 VMware Cloud Director 单元执行二进制文件安装后创建密钥库。
  4. 在每个 Compute Engine 虚拟机上安装必备软件包:

    yum install bind-utils libcurl-devel libxml2-devel make openssl-devel git \
        alsa-lib libICE libSM libX11 libXau libXdmcp libXext libXi libXt libXtst \
        pciutils redhat-lsb wget -y
    
  5. 将域名服务器添加到所有虚拟机的 /etc/resolv.conf 文件中,以便域名服务器可以解析 ESXI 主机 FQDN。

  6. 安装 NFS utils 软件包,以便可以在所有虚拟机上装载转移作业存储区:

    yum install nfs-utils -y
    
    systemctl enable rpcbind nfs-server nfs-lock nfs-idmap
    
    systemctl start rpcbind nfs-server nfs-lock nfs-idmap
    

在一个虚拟机上安装 VMware Cloud Director

将上述软件包安装到所有虚拟机后,在一个虚拟机上安装和配置 VMware Cloud Director:

  1. 使用 ssh 连接到一个 Compute Engine 虚拟机。
  2. 在该虚拟机上下载 VMware Cloud Director 二进制文件:

    gsutil cp gs://STORAGE_BUCKET/ \
       vmware-vcloud-director-distribution-10.1.0-15967253.bin /tmp/
    

    STORAGE_BUCKET 替换为 Cloud Storage 存储桶的路径。

  3. 将该二进制文件转为可执行文件:

    chmod +x vmware-vcloud-director-distribution-10.1.0-15967253.bin
    
  4. 在虚拟机上安装该二进制文件:

    /tmp/vmware-vcloud-director-distribution-10.1.0-15967253.bin
    
  5. 在虚拟机上下载 Java 密钥库文件:

    gsutil cp gs://STORAGE_BUCKET/certificates.ks /tmp/certificates.ks
    

    STORAGE_BUCKET 替换为 Cloud Storage 存储桶的路径。

  6. 将转移作业存储区装载到虚拟机:

    echo "FILESTORE_INSTANCE_IP:/volume_name \
       /opt/vmware/vcloud-director/data/transfer nfs defaults,_netdev 0 0" >> \
       /etc/fstab
    
    mount /opt/vmware/vcloud-director/data/transfer
    
    chown -R vcloud:vcloud /opt/vmware/vcloud-director/data/transfer
    

    FILESTORE_INSTANCE_IP 替换为您的 Filestore 实例的 IP。

  7. 使用无人参与配置执行初始 VMware Cloud Director 单元配置:

    /opt/vmware/vcloud-director/bin/configure -ip INSTANCE_IP \
       --primary-port-http 80 --primary-port-https 443 -cons INSTANCE_IP \
       --console-proxy-port-https 8443 -dbhost DB_ENDPOINT -dbport 5432 \
       -dbtype postgres -dbname DB_NAME -dbuser DB_MASTER_USER \
       -dbpassword DB_MASTER_USER_PASSWORD --keystore /tmp/KEYSTORE_FILE \
       -w KEYSTORE_PASSWORD --enable-ceip true -unattended
    

    请替换以下内容:

    • INSTANCE_IP:IPv4 地址,可选端口号
    • DB_ENDPOINT:vCloud Director 数据库主机的 IP 地址或完全限定域名
    • DB_NAME:数据库服务名称
    • DB_MASTER_USER:数据库用户的用户名。
    • DB_MASTER_USER_PASSWORD:数据库用户的密码,可为 null
    • KEYSTORE_FILE:包含您的 SSL 证书和私钥的 Java 密钥库
    • KEYSTORE_PASSWORD:SSL 证书密钥库密码
  8. 调整 Java 堆大小以帮助提高性能:

    1. 将 Java XMS 值设置为最少 2 GB:

      sed -i "s/Xms1024M/Xms2048M/g" \
          /opt/vmware/vcloud-director/bin/vmware-vcd-cell-common
      
    2. 将最大值设置为虚拟机内存值减去 2 GB:

      sed -i "s/Xmx4096M/Xmx6144M/g" \
          /opt/vmware/vcloud-director/bin/vmware-vcd-cell-common
      
  9. 启用并启动 VMware Cloud Director 服务:

    chkconfig vmware-vcd on
    
    service vmware-vcd start
    
  10. 检查服务是否已成功启动:

    tail -f /opt/vmware/vcloud-director/logs/cell.log
    
  11. responses.properties 和 Java 密钥库文件复制到转移作业存储区中,以便可以安装在其他 VMware Cloud Director 单元上:

    cp /opt/vmware/vcloud-director/etc/responses.properties \
        /opt/vmware/vcloud-director/data/transfer/responses.properties
    
    chmod 644 /opt/vmware/vcloud-director/data/transfer/responses.properties
    
    cp /tmp/certificates.ks \
        /opt/vmware/vcloud-director/data/transfer/certificates.ks
    
    chmod 644 /opt/vmware/vcloud-director/data/transfer/certificates.ks
    
  12. 使用 cell-management-tool system-setup 命令来配置 VMware Cloud Director 安装:

    /opt/vmware/vcloud-director/bin/cell-management-tool system-setup \
       --email EMAIL --full-name FULL_NAME \
       --installation-id INSTALLATION_ID --password PASSWORD \
       --system-name SYSTEM_NAME --serial-number SERIAL_NUMBER \
       --user USER --unattended
    

    请替换以下内容:

    • EMAIL:您要创建的系统管理员的电子邮件地址
    • FULL_NAME:您要创建的系统管理员的全名
    • INSTALLATION_ID:范围介于 1 到 63 之间的整数
    • PASSWORD:您要创建的系统管理员的密码
    • SYSTEM_NAME:要用于 VMware Cloud Director vCenter Server 文件夹的名称
    • SERIAL_NUMBER:用于此安装的序列号(许可密钥)
    • USER:您要创建的系统管理员的用户名

在其他虚拟机上安装 VMware Cloud Director

如需在其余单元上安装和配置 VMware Cloud Director,请对每个单元重复执行以下步骤

  1. 使用 ssh 连接到 Compute Engine 虚拟机。
  2. 在该虚拟机上下载二进制文件:

    gsutil cp gs://STORAGE_BUCKET/ \
       vmware-vcloud-director-distribution-10.1.0-15967253.bin /tmp/
    

    STORAGE_BUCKET 替换为 Cloud Storage 存储桶的路径。

  3. 将该二进制文件设为可执行文件:

    chmod +x vmware-vcloud-director-distribution-10.1.0-15967253.bin
    
  4. 在虚拟机上安装该二进制文件:

    /tmp/vmware-vcloud-director-distribution-10.1.0-15967253.bin
    
  5. 在虚拟机上下载 Java 密钥库文件:

    gsutil cp gs://vcd-builds/certificates.ks /tmp/certificates.ks
    
  6. 将转移作业存储区装载到此虚拟机:

    echo "FILESTORE_INSTANCE_IP:/volume_name \
       /opt/vmware/vcloud-director/data/transfer nfs defaults,_netdev 0 0" >> \
       /etc/fstab
    
    mount /opt/vmware/vcloud-director/data/transfer
    
    chown -R vcloud:vcloud /opt/vmware/vcloud-director/data/transfer
    

    FILESTORE_INSTANCE_IP 替换为您的 Filestore 实例的 IP。

  7. 使用无人参与配置执行初始 VMware Cloud Director 单元配置:

    /opt/vmware/vcloud-director/bin/configure \
       -r /opt/vmware/vcloud-director/data/transfer/responses.properties \
       -ip INSTANCE_IP --primary-port-http 80 --primary-port-https 443 \
       -cons INSTANCE_IP --console-proxy-port-https 8443 \
       --keystore /opt/vmware/vcloud-director/data/transfer/KEYSTORE_FILE \
       -w KEYSTORE_PASSWORD --enable-ceip true -unattended
    

    请替换以下内容:

    • INSTANCE_IP:IPv4 地址,可选端口号
    • KEYSTORE_FILE:包含您的 SSL 证书和私钥的 Java 密钥库文件
    • KEYSTORE_PASSWORD:SSL 证书密钥库密码
  8. 调整 Java 堆大小以帮助提高性能:

    1. 将 Java XMS 值设置为最少 2 GB:

      sed -i "s/Xms1024M/Xms2048M/g" \
          /opt/vmware/vcloud-director/bin/vmware-vcd-cell-common
      
    2. 将最大值设置为虚拟机内存值减去 2 GB:

      sed -i "s/Xmx4096M/Xmx6144M/g" \
          /opt/vmware/vcloud-director/bin/vmware-vcd-cell-common
      
  9. 启用并启动 VMware Cloud Director 服务:

    chkconfig vmware-vcd on
    
    service vmware-vcd start
    
  10. 检查服务是否已成功启动:

    tail -f /opt/vmware/vcloud-director/logs/cell.log
    

创建 Compute Engine 实例组

Compute Engine 实例组将流量从面向互联网的负载均衡器转发到 VMware Cloud Director 单元。如需设置您的实例组,请按照下列步骤操作:

  1. 为部署了 VMware Cloud Director 单元的每个可用区创建非代管实例组
  2. 对于每个实例组,添加以下端口映射:
    • 对于接口或 API 调用
      • 端口名称https
      • 端口号443
    • 对于控制台代理访问权限
      • 端口名称tcp
      • 端口号8443

以下是一个实例组设置示例:

实例组设置在端口 443 上使用 HTTPS 协议,在端口 8443 上使用 TCP 协议。

部署负载均衡器

您需要在 Google Cloud 中部署两个负载平衡器,以允许从互联网访问 VMware Cloud Director 接口或控制台代理。此过程包括以下步骤:

  1. 为要使用的负载平衡器配置运行状况检查
  2. 为接口或 API 访问创建 L7 负载平衡器
  3. 为控制台代理访问创建 L4 负载平衡器
  4. 为 VMware Cloud Director 配置公共地址

为负载均衡器配置健康检查

如需为负载均衡器配置健康检查,请执行以下操作:

  1. 按照创建健康检查中的流程开始创建健康检查。
  2. 协议设置为 HTTPS
  3. 端口字段中,输入 443
  4. 请求路径字段中,输入 /api/server_status

以下是健康检查设置的示例:

健康检查配置在端口 443 上使用 HTTPS 协议。

为接口或 API 访问创建 L7 负载平衡器

如需为接口或 API 访问创建 L7 负载平衡器,请执行以下操作:

  1. 按照设置内部 HTTP(S) 负载平衡中的流程开始设置内部 HTTPS 负载平衡。
  2. 协议设置为 HTTPS
  3. 已命名的端口字段中,输入 https。 此值与实例组中配置的值匹配。
  4. 后端部分中,添加您在创建 Compute Engine 实例组中创建的所有实例组。为每个条目使用端口 443 以匹配为 HTTPS 创建的端口。
  5. 运行状况检查设置为您在为负载平衡器配置运行状况检查中的配置。
  6. 对于主机和路径规则,请使用默认值。
  7. 为负载平衡器配置前端:
    1. 协议设置为 HTTPS
    2. 预留公共 IP 地址。
    3. 为负载均衡器添加一个证书。

为控制台代理访问创建 L4 负载平衡器

如需为控制台代理访问创建 L4 负载平衡器,请执行以下操作:

  1. 按照设置 TCP 代理负载平衡中的流程开始配置负载平衡器。
  2. 多个区域或单个区域设置为多个区域
  3. 后端类型设置为实例组
  4. 协议设置为TCP
  5. 已命名的端口字段中,输入 tcp。 此值与实例组中配置的值匹配。
  6. 后端部分中,添加您在创建 Compute Engine 实例组中创建的所有实例组。为每个条目使用端口 8443,以匹配为 TCP 创建的端口。
  7. 为负载平衡器配置前端:
    1. 协议设置为TCP
    2. 端口设置为 443
    3. 预留公共 IP 地址。

为 VMware Cloud Director 配置公共地址

创建负载平衡器后,请为 VMware Cloud Director 配置公共地址:

  1. 使用以下网址访问 VMware Cloud Director:

    https://L7_FQDN/provider

    L7_FQDN 替换为与您为 L7 负载平衡器添加的证书所对应的 FQDN。

  2. 使用在虚拟机上配置第一个 VMware Cloud Director 单元时创建的管理员凭据。

  3. 按照 VMware 提供的步骤配置公共地址

后续步骤

在 Google Cloud 上部署 VMware Cloud Director 后,您可以为 VMware Cloud Director 提供 VMware Engine 私有云资源。对于该过程,请按照有关管理组织虚拟数据中心的相关 VMware 指导操作。