25.2.2. 选项 2:为 vSphere 手动配置 OpenShift Container Platform
25.2.2.1. 为 vSphere 手动配置 master 主机
在所有 master 主机上执行以下操作。
流程
在所有 master 上编辑 /etc/origin/master/master-config.yaml 中的 master 配置文件,并更新
apiServerArguments
和controllerArguments
部分的内容:kubernetesMasterConfig: ... apiServerArguments: cloud-provider: - "vsphere" cloud-config: - "/etc/origin/cloudprovider/vsphere.conf" controllerArguments: cloud-provider: - "vsphere" cloud-config: - "/etc/origin/cloudprovider/vsphere.conf"
重要在触发容器化安装时,只有 /etc/origin 和 /var/lib/origin 目录被挂载到 master 和节点容器中。因此,master-config.yaml 必须位于 /etc/origin/master 中,而不是 /etc/。
当使用 Ansible 为 vSphere 配置 OpenShift Container Platform 时,/etc/origin/cloudprovider/vsphere.conf 文件会被自动创建。由于您要手动为 vSphere 配置 OpenShift Container Platform,所以您必须创建该文件。在创建该文件前,请确定您想多个 vCenter 区域。
集群安装过程默认配置单区或单个 vCenter。但是,在不同区的 vSphere 中部署 OpenShift Container Platform 有助于避免出现单一故障点,但跨区创建共享存储需要。如果 OpenShift Container Platform 节点主机在区域 "A" 中停机,pod 应该移到 zone "B"。如需更多信息,请参阅 Kubernetes 文档中的 Kubernetes 文档中的在多个区中运行。
要配置单个 vCenter 服务器,在 /etc/origin/cloudprovider/vsphere.conf 文件中使用以下格式:
[Global] 1 user = "myusername" 2 password = "mypassword" 3 port = "443" 4 insecure-flag = "1" 5 datacenters = "mydatacenter" 6 [VirtualCenter "10.10.0.2"] 7 user = "myvCenterusername" password = "password" [Workspace] 8 server = "10.10.0.2" 9 datacenter = "mydatacenter" folder = "path/to/vms" 10 default-datastore = "shared-datastore" 11 resourcepool-path = "myresourcepoolpath" 12 [Disk] scsicontrollertype = pvscsi 13 [Network] public-network = "VM Network" 14
- 1
[Global]
部分中设置的任何属性都用于指定的 vcenters,除非单独[VirtualCenter]
部分中的设置覆盖。- 2
- vSphere 云供应商的 vCenter 用户名。
- 3
- 指定用户的 vCenter 密码。
- 4
- 可选。vCenter 服务器的端口号。默认为端口
443。
- 5
- 如果 vCenter 使用自签名证书,则设置为
1
。 - 6
- 部署节点虚拟机的数据中心的名称。
- 7
- 覆盖这个虚拟中心的特定
[Global]
属性。可能的设置扫描为[Port]
,[user]
,[insecure-flag]
,[datacenters]
.所有未指定设置都会从[Global]
部分中拉取。 - 8
- 设置用于各种 vSphere Cloud Provider 功能的任何属性。例如,动态置备、基于存储配置文件的卷置备等。
- 9
- vCenter 服务器的 IP 地址或 FQDN。
- 10
- 节点虚拟机虚拟机目录的路径。
- 11
- 使用存储类或动态置备,设置为用于置备卷的数据存储名称。在 OpenShift Container Platform 3.9 之前,如果数据存储位于存储目录中,或者是数据存储集群的成员,则需要完整路径。
- 12
- 可选。设置为资源池的路径,其中必须创建 dummy 虚拟机用于 Storage Profile 基于卷置备。
- 13
- SCSI 控制器的类型将作为.
- 14
- 设置为 vSphere 的网络端口组以访问节点,该节点默认称为 VM Network。这是在 Kubernetes 中注册的节点主机的 ExternalIP。
要配置多个 vCenter 服务器,在 /etc/origin/cloudprovider/vsphere.conf 文件中使用以下格式:
[Global] 1 user = "myusername" 2 password = "mypassword" 3 port = "443" 4 insecure-flag = "1" 5 datacenters = "us-east, us-west" 6 [VirtualCenter "10.10.0.2"] 7 user = "myvCenterusername" password = "password" [VirtualCenter "10.10.0.3"] port = "448" insecure-flag = "0" [Workspace] 8 server = "10.10.0.2" 9 datacenter = "mydatacenter" folder = "path/to/vms" 10 default-datastore = "shared-datastore" 11 resourcepool-path = "myresourcepoolpath" 12 [Disk] scsicontrollertype = pvscsi 13 [Network] public-network = "VM Network" 14
- 1
[Global]
部分中设置的任何属性都用于指定的 vcenters,除非单独[VirtualCenter]
部分中的设置覆盖。- 2
- vSphere 云供应商的 vCenter 用户名。
- 3
- 指定用户的 vCenter 密码。
- 4
- 可选。vCenter 服务器的端口号。默认为端口
443。
- 5
- 如果 vCenter 使用自签名证书,则设置为
1
。 - 6
- 部署节点虚拟机的数据中心的名称。
- 7
- 覆盖这个虚拟中心的特定
[Global]
属性。可能的设置扫描为[Port]
,[user]
,[insecure-flag]
,[datacenters]
.所有未指定设置都会从[Global]
部分中拉取。 - 8
- 设置用于各种 vSphere Cloud Provider 功能的任何属性。例如,动态置备、基于存储配置文件的卷置备等。
- 9
- 云供应商通信的 vCenter 服务器的 IP 地址或 FQDN。
- 10
- 节点虚拟机虚拟机目录的路径。
- 11
- 使用存储类或动态置备,设置为用于置备卷的数据存储名称。在 OpenShift Container Platform 3.9 之前,如果数据存储位于存储目录中,或者是数据存储集群的成员,则需要完整路径。
- 12
- 可选。设置为资源池的路径,其中必须创建 dummy 虚拟机用于 Storage Profile 基于卷置备。
- 13
- SCSI 控制器的类型将作为.
- 14
- 设置为 vSphere 的网络端口组以访问节点,该节点默认称为 VM Network。这是在 Kubernetes 中注册的节点主机的 ExternalIP。
重启 OpenShift Container Platform 主机服务:
# master-restart api # master-restart controllers # systemctl restart atomic-openshift-node