Para que NCP se integre con OpenShift, debe especificar los parámetros de NCP en el archivo de hosts de Ansible.

Después de especificar los siguientes parámetros en el archivo de hosts de Ansible, NCP se instalará automáticamente cuando instale OpenShift.

  • openshift_use_nsx=True

  • openshift_use_openshift_sdn=False

  • os_sdn_network_plugin_name='cni'

  • nsx_openshift_cluster_name='ocp-cluster1'

    (Obligatorio) Esto es obligatorio porque varios clústeres de OpenShift/Kubernetes pueden conectarse al mismo NSX Manager.

  • nsx_api_managers='10.10.10.10'

    (Obligatorio) Dirección IP de NSX Manager. Para un clúster de NSX Manager, especifique las direcciones IP separadas por comas.

  • nsx_tier0_router='MyT0Router'

    (Obligatorio) Nombre o UUID del enrutador de nivel 0 al que se conectarán los enrutadores de nivel 1 del proyecto.

  • nsx_overlay_transport_zone='my_overlay_tz'

    (Obligatorio) Nombre o UUID de la zona de transporte superpuesta que se utilizará para crear conmutadores lógicos.

  • nsx_container_ip_block='ip_block_for_my_ocp_cluster'

    (Obligatorio) Nombre o UUID de un bloque de direcciones IP configurado en NSX-T. Habrá una subred por proyecto fuera de este bloque de direcciones IP. Estas redes estarán detrás de SNAT y no serán enrutables.

  • nsx_ovs_uplink_port='ens224'

    (Obligatorio) Si está en modo HOSTVM. NSX-T necesita una segunda vNIC para las redes de pods en los nodos de OCP que sea distinta de la vNIC de administración. Se recomienda que ambas vNIC esté conectadas a conmutadores lógicos de NSX-T. La segunda vNIC (no de administración) debe proporcionarse aquí. Si no hay sistema operativo, este parámetro no es necesario.

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

    (Obligatorio) Requisito temporal hasta que NCP pueda arrancar los nodos. Es necesario colocar nsx-cni en un servidor http.

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

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

    (Obligatorio) Parámetros temporales hasta que NCP pueda arrancar los nodos. Puede omitirse en una instalación sin sistema operativo.

  • nsx_node_type='HOSTVM'

    (Opcional) El valor predeterminado es HOSTVM. Establezca esta opción como BAREMETAL si OpenShift no se ejecuta en las máquinas virtuales.

  • nsx_k8s_api_ip=192.168.10.10

    (Opcional) Si se establece esta opción, NCP se comunicará con esta dirección IP; de lo contrario, lo hará con la dirección IP del servicio de Kubernetes.

  • nsx_k8s_api_port=192.168.10.10

    (Opcional) Utiliza 443 como valor predeterminado para el servicio de Kubernetes. Establézcalo como 8443 si lo utiliza en combinación con nsx_k8s_api_ip para especificar la dirección IP del nodo principal.

  • nsx_insecure_ssl=true

    (Opcional) El valor predeterminado es true, ya que NSX Manager viene con un certificado que no es de confianza. Si cambió el certificado por otro de confianza, puede establecerlo como false.

  • nsx_api_user='admin'

  • nsx_api_password='super_secret_password'

  • nsx_subnet_prefix=24

    (Opcional) El valor predeterminado es 24. Este es el tamaño de subred que se dedicará a cada proyecto de OpenShift. Si el número de pods supera el tamaño de subred, se agregará un nuevo conmutador lógico con el mismo tamaño de subred al proyecto.

  • nsx_use_loadbalancer=true

    (Opcional) El valor predeterminado es true. Establézcalo en false si no desea utilizar equilibradores de carga de NSX-T para las rutas de OpenShift y los servicios de tipo equilibrador de carga.

  • nsx_lb_service_size='SMALL'

    (Opcional) El valor predeterminado es SMALL. En función del tamaño de NSX Edge, MEDIUM o LARGE también son posibles.

  • nsx_no_snat_ip_block='router_ip_block_for_my_ocp_cluster'

    (Opcional) Si la anotación ncp/no_snat=true se aplica en un proyecto o un espacio de nombres, la subred se tomará de este bloque de direcciones IP y no habrá ninguna SNAT para ella. Se espera que se pueda enrutar.

  • nsx_external_ip_pool='external_pool_for_snat'

    (Obligatorio) Grupo de direcciones IP para el equilibrador de carga y SNAT si nsx_external_ip_pool_lb no está definido.

  • nsx_external_ip_pool_lb='my_ip_pool_for_lb'

    (Opcional) Establezca esta opción si desea un grupo de direcciones IP diferente para Router y SvcTypeLB.

  • nsx_top_fw_section='top_section'

    (Opcional) Las reglas de directiva de red de Kubernetes se traducirán a reglas de firewall de NSX-T y se colocarán debajo de esta sección.

  • nsx_bottom_fw_section='bottom_section'

    (Opcional) Las reglas de directiva de red de Kubernetes se traducirán a reglas de firewall de NSX-T y se colocarán encima de esta sección.

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

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

    (Opcional) Si se establece esta opción, nsx_api_user y nsx_api_password se omitirán. El certificado debe cargarse en NSX-T y debe crearse manualmente un usuario de identidad de entidad de seguridad que se autentique con este certificado.

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

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

    (Opcional) El equilibrador de carga de NSX-T requiere un certificado predeterminado para poder crear SNI para rutas basadas en TLS. Este certificado solo se presentará si no hay ninguna ruta configurada. Si no se proporciona, se generará un certificado autofirmado.

Archivo de hosts de Ansible de ejemplo

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