您必須在 Ansible 主機檔案中為將與 OpenShift 整合的 NCP 指定 NCP 參數。

在 Ansible 主機檔案中指定下列參數後,安裝 OpenShift 時將自動安裝 NCP。

  • openshift_use_nsx=True

  • openshift_use_openshift_sdn=False

  • os_sdn_network_plugin_name='cni'

  • nsx_openshift_cluster_name='ocp-cluster1'

    (必要) 這是必要的,因為多個 OpenShift/Kubernetes 叢集可以連線至同一 NSX Manager。

  • nsx_api_managers='10.10.10.10'

    (必要) NSX Manager 的 IP 位址。針對 NSX Manager 叢集,指定以逗號分隔的 IP 位址。

  • nsx_tier0_router='MyT0Router'

    (必要) 專案的第 1 層路由器將連線到的第 0 層路由器的名稱或 UUID。

  • nsx_overlay_transport_zone='my_overlay_tz'

    (必要) 將用於建立邏輯交換器的覆疊傳輸區域的名稱或 UUID。

  • nsx_container_ip_block='ip_block_for_my_ocp_cluster'

    (必要) NSX-T 上設定的 IP 區塊的名稱或 UUID。此 IP 區塊之外的每個專案均有一個子網路。這些網路位於 SNAT 之後,且無法路由。

  • nsx_ovs_uplink_port='ens224'

    (必要) 如果處於 HOSTVM 模式。對於 OCP 節點上的網繭網路,NSX-T 需要不同於管理 vNIC 的第二個 vNIC。強烈建議將兩個 vNIC 均連線至 NSX-T 邏輯交換器。必須在此處提供第二個 (非管理) vNIC。對於裸機,不需要此參數。

  • nsx_cni_url='http://myserver/nsx-cni.rpm'

    (必要) 暫時需求,直到 NCP 可以對節點執行啟動程序。我們必須在 HTTP 伺服器上放置 nsx-cni

  • nsx_ovs_url='http://myserver/openvswitch.rpm'

  • nsx_kmod_ovs_url='http://myserver/kmod-openvswitch.rpm'

    (必要) 暫時參數,直到 NCP 可以對節點執行啟動程序。可在裸機設定中忽略。

  • nsx_node_type='HOSTVM'

    (選用) 預設為 HOSTVM。如果 OpenShift 未在虛擬機器中執行,則設定為 BAREMETAL

  • nsx_k8s_api_ip=192.168.10.10

    (選用) 如果設定,NCP 將告知此 IP 位址,否則告知 Kubernetes 服務 IP。

  • nsx_k8s_api_port=192.168.10.10

    (選用) 對於 Kubernetes 服務,預設為 443。如果您將其與 nsx_k8s_api_ip 組合使用來指定主節點 IP,則設定為 8443。

  • nsx_insecure_ssl=true

    (選用) NSX Manager 隨附不受信任的憑證時,預設值為 true。如果您使用受信任的憑證變更了此憑證,則可以將其設定為 false

  • nsx_api_user='admin'

  • nsx_api_password='super_secret_password'

  • nsx_subnet_prefix=24

    (選用) 預設為 24。這是每個 Openshift 專案將專用的子網路大小。如果網繭數目超過子網路大小,具有相同子網路大小的新邏輯交換器將新增至專案。

  • nsx_use_loadbalancer=true

    (選用) 預設為 true。如果您不想針對 OpenShift 路由和類型為負載平衡器的服務使用 NSX-T 負載平衡器,則設定為 false

  • nsx_lb_service_size='SMALL'

    (選用) 預設為 SMALL。取決於 NSX Edge 大小,MEDIUMLARGE 也有可能。

  • nsx_no_snat_ip_block='router_ip_block_for_my_ocp_cluster'

    (選用) 如果在專案或命名空間上套用 ncp/no_snat=true 註解,將從此 IP 區塊擷取子網路,且它沒有 SNAT。預期可路由。

  • nsx_external_ip_pool='external_pool_for_snat'

    (必要) 如果未定義 nsx_external_ip_pool_lb,則為 SNAT 和負載平衡器的 IP 集區。

  • nsx_external_ip_pool_lb='my_ip_pool_for_lb'

    (選用) 如果您對 RouterSvcTypeLB 需要不同的 IP 集區,請設定此項。

  • nsx_top_fw_section='top_section'

    (選用) 將 Kubernetes 網路原則規則轉譯為 NSX-T 防火牆規則,並將其放置在此區段下方。

  • nsx_bottom_fw_section='bottom_section'

    (選用) 將 Kubernetes 網路原則規則轉譯為 NSX-T 防火牆規則,並將其放置在此區段上方。

  • nsx_api_cert='/path/to/cert/nsx.crt'

  • nsx_api_private_key='/path/to/key/nsx.key

    (選用) 如果設定,nsx_api_usernsx_api_password 將被忽略。必須將憑證上傳到 NSX-T,且必須手動建立使用此憑證驗證的主體身分識別使用者。

  • nsx_lb_default_cert='/path/to/cert/nsx.crt'

  • nsx_lb_default_key='/path/to/key/nsx.key

    (選用) NSX-T 負載平衡器需要預設憑證,才能為 TLS 式路由建立 SNI。僅當未設定路由時,才會顯示此憑證。如果未提供,將會產生自我簽署憑證。

Ansible 主機檔案範例

[OSEv3:children]
masters
nodes
etcd

[OSEv3:vars]
ansible_ssh_user=root
openshift_deployment_type=origin

openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider'}]
openshift_master_htpasswd_users={'yasen' : 'password'}

openshift_master_default_subdomain=demo.corp.local
openshift_use_nsx=true
os_sdn_network_plugin_name=cni
openshift_use_openshift_sdn=false
openshift_node_sdn_mtu=1500

# NSX specific configuration
nsx_openshift_cluster_name='ocp-cluster1'
nsx_api_managers='192.168.110.201'
nsx_api_user='admin'
nsx_api_password='VMware1!'
nsx_tier0_router='DefaultT0Router'
nsx_overlay_transport_zone='overlay-tz'
nsx_container_ip_block='ocp-pod-networking'
nsx_no_snat_ip_block='ocp-nonat-pod-networking'
nsx_external_ip_pool='ocp-external'
nsx_top_fw_section='openshift-top'
nsx_bottom_fw_section='openshift-bottom'
nsx_ovs_uplink_port='ens224'
nsx_cni_url='http://1.1.1.1/nsx-cni-2.3.2.x86_64.rpm'
nsx_ovs_url='http://1.1.1.1/openvswitch-2.9.1.rhel75-1.x86_64.rpm'
nsx_kmod_ovs_url='http://1.1.1.1/kmod-openvswitch-2.9.1.rhel75-1.el7.x86_64.rpm'

[masters]
ocp-master.corp.local

[etcd]
ocp-master.corp.local

[nodes]
ocp-master.corp.local ansible_ssh_host=10.1.0.10 openshift_node_group_name='node-config-master'
ocp-node1.corp.local ansible_ssh_host=10.1.0.11 openshift_node_group_name='node-config-infra'
ocp-node2.corp.local ansible_ssh_host=10.1.0.12 openshift_node_group_name='node-config-infra'
ocp-node3.corp.local ansible_ssh_host=10.1.0.13 openshift_node_group_name='node-config-compute'
ocp-node4.corp.local ansible_ssh_host=10.1.0.14 openshift_node_group_name='node-config-compute'