6.9. 설치 후 RHOSP 네트워크 구성

설치 후 Red Hat OpenStack Platform (RHOSP) 클러스터에서 OpenShift Container Platform의 일부를 구성할 수 있습니다.

6.9.1. 부동 IP 주소로 애플리케이션 액세스 구성

OpenShift Container Platform을 설치한 후 애플리케이션 네트워크 트래픽을 허용하도록 RHOSP(Red Hat OpenStack Platform)를 구성합니다.

참고

install-config.yaml 파일에서 platform.openstack.apiFloatingIPplatform.openstack.ingressFloatingIP 에 대한 값을 제공하거나 설치 중에 inventory.yaml 플레이 북의 os_api_fipos_ingress_fip에 대한 값을 제공한 경우 이 절차를 수행 할 필요가 없습니다. 부동 IP 주소가 이미 설정되어 있습니다.

전제 조건

  • OpenShift Container Platform 클러스터가 설치되어 있어야 합니다.
  • RHOSP의 OpenShift Container Platform 설치에 관한 문서에 설명 된대로 부동 IP 주소가 활성화됩니다.

프로세스

OpenShift Container Platform 클러스터를 설치한 후 부동 IP 주소를 인그레스 포트에 연결합니다.

  1. 포트 표시:

    $ openstack port show <cluster_name>-<cluster_ID>-ingress-port
  2. IP 주소에 포트 연결:

    $ openstack floating ip set --port <ingress_port_ID> <apps_FIP>
  3. *apps의 와일드카드 A 레코드를 DNS 파일에 추가:

    *.apps.<cluster_name>.<base_domain>  IN  A  <apps_FIP>
참고

DNS 서버를 제어하지 않지만 프로덕션 이외의 목적으로 애플리케이션 액세스를 활성화하려는 경우 다음과 같은 호스트 이름을 /etc/hosts에 추가할 수 있습니다.

<apps_FIP> console-openshift-console.apps.<cluster name>.<base domain>
<apps_FIP> integrated-oauth-server-openshift-authentication.apps.<cluster name>.<base domain>
<apps_FIP> oauth-openshift.apps.<cluster name>.<base domain>
<apps_FIP> prometheus-k8s-openshift-monitoring.apps.<cluster name>.<base domain>
<apps_FIP> grafana-openshift-monitoring.apps.<cluster name>.<base domain>
<apps_FIP> <app name>.apps.<cluster name>.<base domain>

6.9.2. Kuryr 포트 풀

Kuryr 포트 풀은 Pod 생성을 위해 대기 중인 다수의 포트를 유지 관리합니다.

포트를 대기 상태로 유지하면 Pod 생성 시간이 최소화됩니다. 포트 풀이 없으면 Kuryr는 Pod를 생성하거나 삭제할 때마다 포트 생성 또는 삭제를 명시적으로 요청해야 합니다.

Kuryr가 사용하는 Neutron 포트는 네임스페이스에 연결된 서브넷에 생성됩니다. 이러한 Pod 포트도 OpenShift Container Platform 클러스터 노드의 기본 포트에 하위 포트로 추가됩니다.

Kuryr는 각 네임스페이스를 별도의 서브넷에 유지하므로 각 네임스페이스-작업자 쌍에 대해 별도의 포트 풀이 유지됩니다.

클러스터를 설치하기 전에 cluster-network-03-config.yml 매니페스트 파일에서 다음 매개변수를 설정하여 포트 풀 동작을 구성할 수 있습니다.

  • enablePortPoolsPrepopulation 매개변수는 풀 사전 채우기를 제어하므로 새 호스트가 추가되거나 새 네임스페이스가 생성되는 경우와 같이 풀 생성 시 Kuryr가 풀에 포트를 추가하도록 합니다. 기본값은 false입니다.
  • poolMinPorts 매개변수는 풀에 보관되는 사용 가능한 최소 포트 수입니다. 기본값은 1 입니다.
  • poolMaxPorts 매개변수는 풀에 보관되는 사용 가능한 최대 포트 수입니다. 값이 0이면 해당 상한이 비활성화됩니다. 이 설정은 기본 설정입니다.

    OpenStack 포트 할당량이 낮거나 pod 네트워크에 IP 주소가 제한된 경우 이 옵션을 설정하여 불필요한 포트가 삭제되었는지 확인합니다.

  • poolBatchPorts 매개 변수는 한 번에 생성할 수 있는 최대 Neutron 포트 수를 정의합니다. 기본값은 3입니다.

6.9.3. RHOSP의 활성 배포에서 Kuryr 포트 풀 설정 조정

CR(사용자 정의 리소스)을 사용하여 Kuryr가 RHOSP(Red Hat OpenStack Platform) Neutron 포트를 관리하는 방법을 구성하여 배포된 클러스터에서 Pod 생성 속도와 효율성을 제어할 수 있습니다.

절차

  1. 명령줄에서 편집을 위해 CNO(Cluster Network Operator) CR을 엽니다.

    $ oc edit networks.operator.openshift.io cluster
  2. 요구 사항에 맞게 설정을 편집합니다. 다음 파일은 예제로 제공됩니다.

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      serviceNetwork:
      - 172.30.0.0/16
      defaultNetwork:
        type: Kuryr
        kuryrConfig:
          enablePortPoolsPrepopulation: false 1
          poolMinPorts: 1 2
          poolBatchPorts: 3 3
          poolMaxPorts: 5 4
    1
    네임스페이스가 생성되거나 클러스터에 새 노드를 추가한 후 Kuryr가 새 Neutron 포트를 생성하도록 하려면 enablePortPoolsPrepopulationtrue로 설정합니다. 이 설정은 Neutron 포트 할당량을 높이지만 pod를 생성하는 데 필요한 시간을 줄일 수 있습니다. 기본값은 false입니다.
    2
    Kuryr는 풀의 사용 가능한 포트 수가 poolMinPorts 값보다 낮은 경우 풀에 대한 새 포트를 만듭니다. 기본값은 1 입니다.
    3
    poolBatchPorts는 사용 가능한 포트 수가 poolMinPorts 값보다 낮은 경우 생성되는 새 포트 수를 제어합니다. 기본값은 3입니다.
    4
    풀에서 사용 가능한 포트 수가 poolMaxPorts 값보다 크면 Kuryr는 숫자가 해당 값과 일치할 때까지 해당 포트를 삭제합니다. 값을 0으로 설정하면 이 상한이 비활성화되므로 풀이 축소되지 않습니다. 기본값은 0입니다.
  3. 변경 사항을 저장하고 텍스트 편집기를 종료하여 변경 사항을 커밋합니다.
중요

실행 중인 클러스터에서 이러한 옵션을 수정하면 kuryr-controller 및 kuryr-cni Pod가 다시 시작됩니다. 결과적으로 새 Pod 및 서비스 생성이 지연됩니다.

6.9.4. 로드 밸런서 서비스에 RHOSP Octavia 활성화

RHOSP(Red Hat OpenStack Platform)에서 Octavia를 사용하여 로드 밸런서 장치가 백엔드로 있는 로드 밸런서 서비스 유형 및 수신 컨트롤러를 생성할 수 있습니다.

참고

Octavia를 사용하는 서비스 및 컨트롤러에는 다음과 같은 제한 사항이 있습니다.

  • TCP 트래픽만 지원됩니다.
  • 활성 Octavia 로드 밸런서와 연결된 유동 IP 주소는 클러스터 삭제 작업 중에 삭제되지 않습니다. 작업을 수행하기 전에 이러한 항목을 삭제해야 합니다.
  • 클라우드 공급자 구성의 manage-security-groups 속성은 관리 권한이 있는 RHOSP 테넌트에만 적용됩니다.
  • 로드 밸런서 서비스에 대한 loadBalancerSourceRanges 속성은 지원되지 않습니다.
  • 로드 밸런서 서비스의 loadBalancerIP 속성은 지원되지 않습니다.

전제 조건

  • 활성 클러스터가 있어야 합니다.
  • OpenShift CLI(oc)를 설치합니다.

절차

  1. 명령줄에서 편집할 클라우드 공급자 구성을 엽니다.

    $ oc edit configmap -n openshift-config cloud-provider-config
  2. 드라이버 유형의 구성을 편집합니다.

    • Amphora 드라이버를 사용하는 경우 클라우드 공급자 구성에 다음 섹션을 추가합니다.

      [LoadBalancer]
      use-octavia = true
      lb-provider = amphora
    • OVN 드라이버를 사용하는 경우 다음 섹션을 클라우드 공급자 구성에 추가합니다.

      [LoadBalancer]
      use-octavia = true
      lb-provider = ovn
      lb-method = SOURCE_IP_PORT
      참고

      Octavia에 OVN 드라이버를 사용하는 경우 0.0.0.0/0에서 IPv4 트래픽을 포트 30000~32767로 허용하도록 기본 및 작업자 보안 그룹의 TCP 수신 보안 그룹 규칙도 수정해야 합니다.

  3. 외부 네트워크가 여러 개인 경우 클라우드 공급자 구성의 floating-network-id 매개변수 값을 유동 IP 주소가 생성되는 외부 네트워크의 UUID로 설정합니다. 예를 들면 다음과 같습니다.

    [LoadBalancer]
    use-octavia = true
    lb-provider = amphora
    floating-network-id = <network_UUID>
  4. 변경 사항을 구성에 저장합니다.