OpenShift와 통합할 NCP에 대해 Ansible 호스트 파일에서 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'

    (필수 사항) 프로젝트의 Tier-1 라우터가 연결될 Tier-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 모드에 있는 경우. NSX-T에는 OCP 노드에서 POD 네트워킹을 위한 관리 vNIC와 다른 두 번째 vNIC가 필요합니다. 두 vNIC를 모두 NSX-T 논리적 스위치에 연결하는 것이 매우 권장됩니다. 두 번째(비관리) vNIC를 여기에 제공해야 합니다. 베어메탈의 경우에는 이 매개 변수가 필요하지 않습니다.

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

    (필수 사항) NCP가 노드를 부트스트랩할 수 있을 때까지 임시 요구 사항입니다. nsx-cni를 http 서버에 배치해야 합니다.

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

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

    (필수 사항) NCP가 노드를 부트스트랩할 수 있을 때까지 임시 매개 변수입니다. 베어메탈 설정에서 무시될 수 있습니다.

  • nsx_node_type='HOSTVM'

    (선택 사항) 기본값은 HOSTVM입니다. OpenShift가 VM에서 실행되고 있지 않으면 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 프로젝트당 전용으로 사용될 서브넷 크기입니다. POD 수가 서브넷 크기를 초과할 경우 동일한 서브넷 크기의 새 논리적 스위치가 프로젝트에 추가됩니다.

  • nsx_use_loadbalancer=true

    (선택 사항) 기본값은 true입니다. OpenShift 경로 및 LoadBalancer 유형의 서비스에 대해 NSX-T 로드 밸런서를 사용하지 않으려면 false로 설정합니다.

  • nsx_lb_service_size='SMALL'

    (선택 사항) 기본값은 SMALL입니다. NSX Edge 크기에 따라 MEDIUM 또는 LARGE도 가능합니다.

  • 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에 업로드해야 하며 이 인증서를 사용하여 인증하는 주체 ID 사용자를 수동으로 생성해야 합니다.

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

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

    (선택 사항) TLS 기반 경로에 대한 SNI를 생성할 수 있으려면 NSX-T 로드 밸런서에 기본 인증서가 필요합니다. 이 인증서는 구성된 경로가 없는 경우에만 제공됩니다. 제공되지 않는 경우 자체 서명된 인증서가 생성됩니다.

샘플 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'