18.3. VMware NSX-T 설치
사전 요구 사항
ESXi 호스트 요구 사항:
OpenShift Container Platform 노드 VM을 호스팅하는 ESXi 서버는 NSX-T 전송 노드여야 합니다.
그림 18.1. 일반적인 고가용성 환경을 위해 전송 노드를 해제하는 NSX UI:
DNS 요구 사항:
-
와일드카드가 있는 DNS 서버에 새 항목을 인프라 노드에 추가해야 합니다. 그러면 NSX-T 또는 기타 타사 LoadBalancer에 의한 로드 밸런싱이 가능합니다. 아래
hosts
파일에서 항목은openshift_master_default_subdomain
변수로 정의합니다. -
openshift_master_cluster_
hostname 및
변수로 DNS 서버를 업데이트해야 합니다.openshift_master_cluster_public_hostname
-
와일드카드가 있는 DNS 서버에 새 항목을 인프라 노드에 추가해야 합니다. 그러면 NSX-T 또는 기타 타사 LoadBalancer에 의한 로드 밸런싱이 가능합니다. 아래
가상 머신 요구 사항:
- OpenShift Container Platform 노드 VM에는 두 개의 vNIC가 있어야 합니다.
- 관리 vNIC는 관리 T1 라우터에 업링크된 논리 스위치에 연결되어 있어야 합니다.
NSX Container Plug-in(NCP)에서 특정 OpenShift Container Platform 노드에서 실행 중인 모든 Pod의 상위 VIF로 사용해야 하는 포트를 알 수 있도록 모든 VM의 두 번째 vNIC에 NSX-T 태그가 지정되어야 합니다. 태그는 다음과 같아야 합니다.
{'ncp/node_name': 'node_name'} {'ncp/cluster': 'cluster_name'}
다음 이미지는 모든 노드에 대한 NSX UI의 태그 방법을 보여줍니다. 대규모 클러스터의 경우 API 호출을 사용하거나 Ansible을 사용하여 태깅을 자동화할 수 있습니다.
그림 18.2. NSX UI dislaying 노드 태그
NSX UI의 태그 순서는 API와 반대입니다. 노드 이름은 kubelet과 정확히 동일해야 하며 클러스터 이름은 Ansible 호스트 파일의
nsx_openshift_cluster_name
과 같아야 합니다. 모든 노드의 두 번째 vNIC에 적절한 태그가 적용되었는지 확인합니다.
NSX-T 요구 사항:
NSX에서 다음 사전 요구 사항을 충족해야 합니다.
- Tier-0 라우터.
- 오버레이 전송 영역.
- POD 네트워킹을 위한 IP 블록.
- 선택적으로 라우팅(NoNAT) POD 네트워킹을 위한 IP 블록입니다.
- SNAT용 IP 풀. 기본적으로 Pod 네트워킹 IP 블록에서 프로젝트별로 지정된 서브넷은 NSX-T 내에서만 라우팅할 수 있습니다. NCP는 이 IP 풀을 사용하여 외부에 대한 연결을 제공합니다.
- dFW(Distributed Firewall)의 Top 및 Bottom firewall 섹션(옵션). NCP는 이 두 섹션 사이에 Kubernetes 네트워크 정책 규칙을 배치합니다.
-
Open vSwitch 및 CNI 플러그인 RPM은 OpenShift Container Platform 노드 VM에서 연결할 수 있는 HTTP 서버에서 호스팅해야 합니다(
이
예에서는 http://websrv.example.com). 해당 파일은 NCP Tar 파일에 포함되어 있으며, VMware에서 NSX Container Plug-in 2.4.0 다운로드 에서 다운로드할 수 있습니다.
OpenShift Container Platform 요구사항:
다음 명령을 실행하여 OpenShift Container Platform에 필요한 소프트웨어 패키지를 설치합니다.
$ ansible-playbook -i hosts openshift-ansible/playbooks/prerequisites.yml
- NCP 컨테이너 이미지가 모든 노드에서 로컬로 다운로드되었는지 확인합니다.
prerequisites
.yml
플레이북이 실행된 후 모든 노드에서 다음 명령을 실행하여xxx
를 NCP 빌드 버전으로 교체합니다.$ docker load -i nsx-ncp-rhel-xxx.tar
예를 들면 다음과 같습니다.
$ docker load -i nsx-ncp-rhel-2.4.0.12511604.tar
이미지 이름을 가져와서 다시 태그를 지정합니다.
$ docker images $ docker image tag registry.local/xxxxx/nsx-ncp-rhel nsx-ncp 1
- 1
xxx
를 NCP 빌드 버전으로 바꿉니다. 예를 들면 다음과 같습니다.
docker image tag registry.local/2.4.0.12511604/nsx-ncp-rhel nsx-ncp
OpenShift Container Platform Ansible 호스트 파일에서 다음 매개변수를 지정하여 NSX-T를 네트워크 플러그인으로 설정합니다.
[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={"admin" : "$apr1$H0QeP6oX$HHdscz5gqMdtTcT5eoCJ20"} openshift_master_default_subdomain=demo.example.com openshift_use_nsx=true os_sdn_network_plugin_name=cni openshift_use_openshift_sdn=false openshift_node_sdn_mtu=1500 openshift_master_cluster_method=native openshift_master_cluster_hostname=master01.example.com openshift_master_cluster_public_hostname=master01.example.com openshift_hosted_manage_registry=true openshift_hosted_manage_router=true openshift_enable_service_catalog=true openshift_cluster_monitoring_operator_install=true openshift_web_console_install=true openshift_console_install=true # NSX-T specific configuration #nsx_use_loadbalancer=false nsx_openshift_cluster_name='cluster01' nsx_api_managers='nsxmgr.example.com' nsx_api_user='nsx_admin' nsx_api_password='nsx_api_password_example' nsx_tier0_router='LR-Tier-0' nsx_overlay_transport_zone='TZ-Overlay' nsx_container_ip_block='pod-networking' nsx_no_snat_ip_block='pod-nonat' nsx_external_ip_pool='pod-external' nsx_top_fw_section='containers-top' nsx_bottom_fw_section='containers-bottom' nsx_ovs_uplink_port='ens224' nsx_cni_url='http://websrv.example.com/nsx-cni-buildversion.x86_64.rpm' nsx_ovs_url='http://websrv.example.com/openvswitch-buildversion.rhel75-1.x86_64.rpm' nsx_kmod_ovs_url='http://websrv.example.com/kmod-openvswitch-buildversion.rhel75-1.el7.x86_64.rpm' nsx_insecure_ssl=true # vSphere Cloud Provider #openshift_cloudprovider_kind=vsphere #openshift_cloudprovider_vsphere_username='administrator@example.com' #openshift_cloudprovider_vsphere_password='viadmin_password' #openshift_cloudprovider_vsphere_host='vcsa.example.com' #openshift_cloudprovider_vsphere_datacenter='Example-Datacenter' #openshift_cloudprovider_vsphere_cluster='example-Cluster' #openshift_cloudprovider_vsphere_resource_pool='ocp' #openshift_cloudprovider_vsphere_datastore='example-Datastore-name' #openshift_cloudprovider_vsphere_folder='ocp' [masters] master01.example.com master02.example.com master03.example.com [etcd] master01.example.com master02.example.com master03.example.com [nodes] master01.example.com ansible_ssh_host=192.168.220.2 openshift_node_group_name='node-config-master' master02.example.com ansible_ssh_host=192.168.220.3 openshift_node_group_name='node-config-master' master03.example.com ansible_ssh_host=192.168.220.4 openshift_node_group_name='node-config-master' node01.example.com ansible_ssh_host=192.168.220.5 openshift_node_group_name='node-config-infra' node02.example.com ansible_ssh_host=192.168.220.6 openshift_node_group_name='node-config-infra' node03.example.com ansible_ssh_host=192.168.220.7 openshift_node_group_name='node-config-compute' node04.example.com ansible_ssh_host=192.168.220.8 openshift_node_group_name='node-config-compute'
OpenShift Container Platform 설치 매개변수에 대한 자세한 내용은 인벤토리 파일 구성을 참조하십시오.
절차
모든 사전 요구 사항을 충족한 후 NSX 데이터 센터 및 OpenShift Container Platform을 배포할 수 있습니다.
OpenShift Container Platform 클러스터를 배포합니다.
$ ansible-playbook -i hosts openshift-ansible/playbooks/deploy_cluster.yml
OpenShift Container Platform 설치에 대한 자세한 내용은 OpenShift Container Platform 설치를 참조하십시오.
설치가 완료되면 NCP 및 nsx-node-agent Pod가 실행 중인지 확인합니다.
$ oc get pods -o wide -n nsx-system NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE nsx-ncp-5sggt 1/1 Running 0 1h 192.168.220.8 node04.example.com <none> nsx-node-agent-b8nkm 2/2 Running 0 1h 192.168.220.5 node01.example.com <none> nsx-node-agent-cldks 2/2 Running 0 2h 192.168.220.8 node04.example.com <none> nsx-node-agent-m2p5l 2/2 Running 28 3h 192.168.220.4 master03.example.com <none> nsx-node-agent-pcfd5 2/2 Running 0 1h 192.168.220.7 node03.example.com <none> nsx-node-agent-ptwnq 2/2 Running 26 3h 192.168.220.2 master01.example.com <none> nsx-node-agent-xgh5q 2/2 Running 26 3h 192.168.220.3 master02.example.com <none>