Sie müssen in der Ansible-Hostdatei NCP-Parameter angeben, damit NCP in OpenShift integriert wird.

Nachdem Sie die folgenden Parameter in der Ansible-Hostdatei angegeben haben, wird beim Installieren von OpenShift NCP automatisch installiert.

  • openshift_use_nsx=True

  • openshift_use_openshift_sdn=False

  • os_sdn_network_plugin_name='cni'

  • nsx_openshift_cluster_name='ocp-cluster1'

    (Erforderlich) Dies ist erforderlich, da mehrere Openshift-/Kubernetes-Cluster eine Verbindung zum selben NSX Manager herstellen können.

  • nsx_api_managers='10.10.10.10'

    (Erforderlich) IP-Adressen von NSX Manager. Geben Sie für einen NSX Manager-Cluster die IP-Adressen in Form einer kommagetrennten Liste an.

  • nsx_tier0_router='MyT0Router'

    (Erforderlich) Name oder UUID des Tier-0-Routers, zu dem die Tier-1-Router des Projekts eine Verbindung herstellen.

  • nsx_overlay_transport_zone='my_overlay_tz'

    (Erforderlich) Name oder UUID der Overlay-Transportzone, die zum Erstellen logischer Switches verwendet wird.

  • nsx_container_ip_block='ip_block_for_my_ocp_cluster'

    (Erforderlich) Name oder UUID eines auf NSX-T konfigurierten IP-Blocks. Ausgehend von diesem IP-Block ist ein Subnetz pro Projekt vorhanden. Diese Netzwerke befinden sich hinter SNAT und sind nicht routingfähig.

  • nsx_ovs_uplink_port='ens224'

    (Erforderlich) Sofern im HOSTVM-Modus. NSX-T benötigt eine zweite vNIC für das POD-Netzwerk auf den OCP-Knoten. Diese muss sich von der Verwaltungs-vNIC unterscheiden. Es wird dringend empfohlen, beide vNICs mit logischen NSX-T-Switches zu verbinden. Die zweite (Nicht-Verwaltungs-) vNIC muss hier angegeben werden. Für Bare Metal ist dieser Parameter nicht erforderlich.

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

    (Erforderlich) Temporäre Anforderung, bis NCP ein Bootstrapping der Knoten durchführen kann. Darüber hinaus muss nsx-cni auf einem HTTP-Server platziert werden.

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

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

    (Erforderlich) Temporäre Parameter, bis NCP ein Bootstrapping der Knoten durchführen kann. Kann bei einem Bare-Metal-Setup ignoriert werden.

  • nsx_node_type='HOSTVM'

    (Optional) Die Standardeinstellung lautet HOSTVM. Setzen Sie den Parameter auf BAREMETAL, wenn OpenShift nicht auf den VMs ausgeführt wird.

  • nsx_k8s_api_ip=192.168.10.10

    (Optional) Sofern festgelegt, kommuniziert NCP mit diesen IP-Adressen. Andernfalls erfolgt die Kommunikation mit der Kubernetes-Dienst-IP.

  • nsx_k8s_api_port=192.168.10.10

    (Optional) Die Standardeinstellung für den Kubernetes-Dienst lautet 443. Setzen Sie diese Einstellung auf 8443, wenn Sie ihn in Kombination mit nsx_k8s_api_ip verwenden, um die Master-Knoten-IP anzugeben.

  • nsx_insecure_ssl=true

    (Optional) Die Standardeinstellung lautet true, da der NSX Manager mit einem nicht vertrauenswürdigen Zertifikat ausgeliefert wird. Wenn Sie das Zertifikat durch ein vertrauenswürdiges Zertifikat ersetzt haben, können Sie die Einstellung in false ändern.

  • nsx_api_user='admin'

  • nsx_api_password='super_secret_password'

  • nsx_subnet_prefix=24

    (Optional) Die Standardeinstellung lautet 24. Dies ist die Subnetzgröße, die pro OpenShift-Projekt reserviert wird. Wenn die Anzahl der PODs die Subnetzgröße überschreitet, wird dem Projekt ein neuer logischer Switch mit derselben Subnetzgröße hinzugefügt.

  • nsx_use_loadbalancer=true

    (Optional) Die Standardeinstellung lautet true. Setzen Sie diesen Parameter auf false, wenn Sie keine NSX-T-Load Balancer für OpenShift-Routen und Dienste des Typs LoadBalancer verwenden möchten.

  • nsx_lb_service_size='SMALL'

    (Optional) Die Standardeinstellung lautet SMALL. Je nach NSX Edge-Größe ist MEDIUM oder LARGE ebenfalls möglich.

  • nsx_no_snat_ip_block='router_ip_block_for_my_ocp_cluster'

    (Optional) Wenn die Anmerkung ncp/no_snat=true in einem Projekt oder Namespace angewendet wird, wird das Subnetz aus diesem IP-Block entnommen und es ist keine SNAT dafür verfügbar. Es wird erwartet, dass das Projekt bzw. der Namespace routingfähig ist.

  • nsx_external_ip_pool='external_pool_for_snat'

    (Erforderlich) IP-Pool für SNAT und Load Balancer, wenn nsx_external_ip_pool_lb nicht definiert ist.

  • nsx_external_ip_pool_lb='my_ip_pool_for_lb'

    (Optional) Legen Sie diesen Parameter fest, wenn Sie einen eindeutigen IP-Pool für Router und SvcTypeLB möchten.

  • nsx_top_fw_section='top_section'

    (Optional) Kubernetes-Netzwerkrichtlinienregeln werden in NSX-T-Firewallregeln übersetzt und unterhalb dieses Abschnitts platziert.

  • nsx_bottom_fw_section='bottom_section'

    (Optional) Kubernetes-Netzwerkrichtlinienregeln werden in NSX-T-Firewallregeln übersetzt und oberhalb dieses Abschnitts platziert.

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

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

    (Optional) Sofern festgelegt, werden nsx_api_user und nsx_api_password ignoriert. Das Zertifikat muss auf NSX-T hochgeladen werden, und ein sich mit diesem Zertifikat authentifizierender Prinzipalidentitätsbenutzer muss manuell erstellt werden.

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

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

    (Optional) NSX-T-Load Balancer erfordert ein Standardzertifikat, um SNIs für TLS-basierte Routen erstellen zu können. Dieses Zertifikat wird nur dann präsentiert, wenn keine Route konfiguriert ist. Wenn es nicht bereitgestellt wird, wird ein selbstsigniertes Zertifikat generiert.

Beispiel einer Ansible-Hostdatei

[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'