18.3. VMware NSX-T 설치


사전 요구 사항

  • ESXi 호스트 요구 사항:

    • OpenShift Container Platform 노드 VM을 호스팅하는 ESXi 서버는 NSX-T 전송 노드여야 합니다.

      그림 18.1. 일반적인 고가용성 환경을 위해 전송 노드를 해제하는 NSX UI:

      NSX 전송 노드
  • DNS 요구 사항:

    • 와일드카드가 있는 DNS 서버에 새 항목을 인프라 노드에 추가해야 합니다. 그러면 NSX-T 또는 기타 타사 LoadBalancer에 의한 로드 밸런싱이 가능합니다. 아래 hosts 파일에서 항목은 openshift_master_default_subdomain 변수로 정의합니다.
    • openshift_master_cluster_ hostname 및 openshift_master_cluster_public_hostname 변수로 DNS 서버를 업데이트해야 합니다.
  • 가상 머신 요구 사항:

    • 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 VM 태그

      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을 배포할 수 있습니다.

  1. OpenShift Container Platform 클러스터를 배포합니다.

    $ ansible-playbook -i hosts openshift-ansible/playbooks/deploy_cluster.yml

    OpenShift Container Platform 설치에 대한 자세한 내용은 OpenShift Container Platform 설치를 참조하십시오.

  2. 설치가 완료되면 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>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.