Satellite 호스트에 대한 HTTP 프록시 구성

Satellite 호스트의 모든 아웃바운드 트래픽이 프록시를 통해 라우팅되도록 HTTP 프록시를 구성할 수 있습니다.

HTTP 프록시 설정은 허용 목록에 포함된 계정만 사용할 수 있습니다.

HTTP 프록시를 사용하려면 어떤 유형의 위치가 필요합니까?

다음 유형의 위치를 고려하십시오.

기존 RHEL 기반 위치
프록시를 설정하려면 위치에서 Red Hat CoreOS(RHCOS)가 사용으로 설정되어야 합니다. 기존 위치에서 RHCOS가 사용으로 설정되지 않은 경우에는 HTTP 프록시를 구성할 수 없습니다. RHCOS가 사용으로 설정된 위치를 작성한 후 HTTP 프록시를 구성하십시오.
호스트가 연결된 기존 Red Hat CoreOS 지원 위치
HTTP 프록시를 설정하려면 먼저 위치에서 호스트를 제거해야 합니다. 호스트를 제거한 후 HTTP 프록시 구성을 참조하십시오. 위치 제어 플레인을 구성하는 호스트 또한 업데이트해야 한다는 점을 참고하십시오. Satellite 위치 제어 플레인 호스트 업데이트를 참조하십시오.
새 Red Hat CoreOS 사용 위치
호스트를 위치에 연결하기 전에, HTTP 프록시를 구성하십시오.

사용할 수 있는 호스트 유형은 무엇입니까?

HTTP 프록시를 설정할 때는 RHEL 또는 Red Hat CoreOS 호스트를 사용할 수 있습니다. 제어 플레인을 구성하는 호스트를 비롯하여, 위치에 연결된 각 호스트를 편집해야 합니다. proxy.conf 파일에 http 또는 https 를 포함해야 합니다.

HTTP 프록시에 대해 알아야 하는 또 다른 사항은 무엇입니까?

Satellite 위치 및 클러스터가 프록시에 대해 작업하려면 Satellite 위치에 배치된 제어 플레인 인프라 노드의 kubelet이 IBM Cloud 제어 플레인 노드 API 서버와 통신할 수 있어야 합니다. 이 통신을 사용하려면 다음 요구사항 중 하나를 충족해야 합니다.

  • 옵션 1: 축소된 방화벽 첨부 스크립트를 사용하십시오.

  • 옵션 2: 현재 프록시는 장기 유지되는 TCP 연결( TCP 터널링)을 지원할 수 있습니다.

  • 옵션 3: Satellite 호스트와 동일한 네트워크에 있는 VSI에, 장기 유지되는 TCP 연결을 지원하는 보조 프록시를 생성할 수 있습니다.

  • 옵션 4: 방화벽의 아웃바운드 연결을 허용하여 TCP 연결을 허용할 수 있습니다. 자세한 정보는 모든 리젼의 호스트에 대한 필수 아웃바운드 연결 을 참조한 후 리젼에 대한 특정 아웃바운드 네트워크 요구사항을 찾으십시오.

작업자 대 마스터 통신에 대해, 또는 패키지 미러에 연결하는 데 대해서는 HTTP 프록시를 구성할 수 없습니다.

TCP 터널링 설정

프록시는 TCP 터널링을 사용하여 설정해야 합니다. 다음 단계에서는 TCP 터널링에 대한 일반적인 설정 방법을 설명합니다. 제공업체별 구체적인 지침은 해당 제공업체의 설명서를 참조하십시오.

  1. HTTP 프록시를 설정하여 4곳의 위치에 있는 모든 공용 서비스 엔드포인트에 대한 트래픽을 터널링하도록 하십시오. 엔드포인트를 찾으려면 다음 명령을 실행하십시오.

    ibmcloud sat location get --location LOCATION_NAME
    

    출력에서 필드 공용 서비스 엔드포인트 URL을 찾으십시오. 이 필드에서 엔드포인트를 도출할 수 있습니다. 예를 들어, 이 필드 값이 https://c131-e.us-south.satellite.cloud.ibm.com:31726인 경우에는 엔드포인트가 https://c131-1.us-south.satellite.cloud.ibm.com:31726, https://c131-2.us-south.satellite.cloud.ibm.com:31726https://c131-3.us-south.satellite.cloud.ibm.com:31726입니다.

  2. HTTP 프록시의 수신 포트가 IBM Cloud 의 수신 포트와 동일한지 확인하십시오.

  3. 모든 Satellite 호스트에서 /etc/hosts을(를) 업데이트하여 IBM Cloud 엔드포인트가 아니라 프록시에 트래픽을 전달하는 위치 공용 서비스 엔드포인트를 포함시키십시오.

설정 세부 사항은 제공업체에 따라 다릅니다. 먼저 Satellite 환경 외부에서 프록시를 설정하여 해당 구성이 귀하의 인프라에서 정상적으로 작동하는지 확인한 후, Satellite 환경에서 프록시를 구성하십시오. HTTP 프록시 설정 및 구성에 대한 자세한 내용은 다음 블로그를 참조하십시오 Proxying In Cluster Kube-APIServer Traffic in IBM Cloud Satellite를 참조하십시오.

허용 목록에 대한 액세스 요청

HTTP 프록시의 허용 목록에 등록되려면 IBM 지원팀에 문의 티켓을 생성해 주십시오.

예를 들어, 다음 요청을 템플리트로 사용하십시오.

Title: Request for addition of HTTP_PROXY config to
       location <LOCATION_ID>
Request Body:
We are requesting the following HTTP_PROXY info be added to
the location_ID listed in the title of this ticket.
Use the following HTTP_PROXY info
BE SURE to include the protocol (http:// or https://)
AND the port (`:PORT_NUMBER`) in the endpoint.
HTTP_PROXY: https://my-proxy-endpoint.com:PORT_NUMBER
HTTPS_PROXY: https://my-proxy-endpoint.com:PORT_NUMBER

지원팀에서 해당 티켓을 처리하면, 귀하의 위치 정보가 업데이트되었다는 알림을 받게 됩니다. 변경이 필요한 경우, 새로운 매개변수를 명시하여 새로운 티켓을 생성해 주십시오. LOCATIONID 를 확인하려면 ibmcloud sat locations 를 실행하세요.

HTTP 프록시 구성

HTTP 프록시를 구성하려면 제어 플레인의 호스트를 비롯한 각 호스트를 편집해야 합니다. 호스트(제어 플레인을 구성하는 호스트 포함)가 이미 위치에 연결되어 있는 경우에는 호스트를 편집하려면 먼저 위치에서 제거해야 합니다. 프록시를 구성한 후 호스트를 위치에 다시 연결하십시오. 컨트롤 플레인 호스트 업데이트에 대한 자세한 내용은 “ Satellite 위치의 컨트롤 플레인 호스트 업데이트”를 참조하십시오.

  1. 프록시로 사용할 미러 위치를 선택하십시오. 이 미러 위치는 프록시를 설정할 때 사용됩니다.

  2. NO_PROXY의 값을 찾으십시오.

    • 제어 플레인 호스트의 경우 RHCOS의 경우에는 172.20.0.1, RHEL의 경우에는 NO_PROXY=172.20.0.1,$<REDHAT_PACKAGE_MIRROR_LOCATION>을(를) 사용하십시오.
    • Red Hat OpenShift 호스트의 경우 Red Hat OpenShift 호스트의 NO_PROXY은(는) Red Hat OpenShift 클러스터에 사용되는 서비스 서브넷의 첫 번째 IP를 포함해야 합니다. 이 IP를 찾으려면 cluster get 명령을 실행하십시오.
        ibmcloud ks cluster get --cluster <ClusterID>
        ```
        출력 예
    
        ```sh {: screen}
        Name:                           hyp-20220306-1-d2   
        ID:                             <ClusterID>  
        ...
        Service Subnet:                 172.21.0.0/16
        ...
        ```
        이 출력에서 첫 번째 IP는 `172.21.0.1` 입니다. 이는 RHEL 호스트의 경우 이 특정 클러스터와 연관된 호스트에 대한 전체 출력을 작성하고 RHCOS 호스트의 경우 `NO_PROXY=172.20.0.1,172.21.0.1,.REGION.satellite.appdomain.cloud` 를 작성합니다. 이 예에서는 `NO_PROXY=172.20.0.1,172.21.0.1,$REDHAT_PACKAGE_MIRROR_LOCATION` 입니다. 예를 들어, `NO_PROXY=172.20.0.1,172.21.0.1,.eu-gb.satellite.appdomain.cloud` 는 RHCOS 호스트의 런던 미러 위치에 대해 올바릅니다. RHCOS값은 지역 앞에 `.` 를 포함합니다.
    
        작업자 노드의 클러스터 서비스에 대한 트래픽은 `NO_PROXY` 에 포함되어야 합니다. 예를 들어, 이미지 레지스트리 서비스를 사용하여 이미지를 저장하려면 각 작업자 노드에 대해 `image-registry.openshift-image-registry.svc` 를 `NO_PROXY` 에 추가하십시오. 이 값은 제어 플레인에 대해 포함될 필요가 없습니다.
    
    
    
    
  3. 호스트에서 /etc/systemd/system.conf.d(으)로 이동하십시오. 해당 파일이 없는 경우 다음 명령을 사용하여 작성하십시오. 2단계의 NO_PROXY에 대해 <VALUE>을(를) 입력하십시오.

    mkdir -p /etc/systemd/system.conf.d
    cat >"/etc/systemd/system.conf.d/proxy.conf" <<EOF
    [Manager]
    DefaultEnvironment="HTTP_PROXY=https://my-proxy-endpoint.com:PORT_NUMBER" "HTTPS_PROXY=https://my-proxy-endpoint.com:PORT_NUMBER" "NO_PROXY=<VALUE>"
    EOF
    chmod 0644 /etc/systemd/system.conf.d/proxy.conf
    
  4. 다음 명령을 실행하여 ibm-proxy.sh 파일을 생성하십시오. 2단계의 NO_PROXY에 대해 <VALUE>을(를) 입력하십시오.

    mkdir -p /etc/profile.d
    cat >"/etc/profile.d/ibm-proxy.sh" <<EOF
    #!/usr/bin/env bash
    HTTP_PROXY="https://my-proxy-endpoint.com:PORT_NUMBER"
    HTTPS_PROXY="https://my-proxy-endpoint.com:PORT_NUMBER"
    NO_PROXY="<VALUE>"
    export HTTP_PROXY
    export HTTPS_PROXY
    export NO_PROXY
    EOF
    chmod 0755 /etc/profile.d/ibm-proxy.sh
    
  5. 호스트를 재부팅하여 이 변경사항을 적용하십시오.

  6. 호스트를 위치에 연결 또는 다시 연결하십시오.

  7. 호스트를 제어 플레인 또는 이전에 지정된 서비스 에 다시 지정하십시오.

  8. 각 호스트에 대해 이러한 단계를 반복하십시오.

REDHAT_PACKAGE_MIRROR_LOCATION의 값은 Red Hat 패키지 미러의 위치에 따라 다릅니다. 여러 미러가 사용되는 경우 REDHAT_PACKAGE_MIRROR_LOCATION이(가) 와일드 카드일 수 있습니다. 자세한 정보는 시스템 전체 프록시 적용 방법을 참조하십시오.

공통 미러 위치

다음 목록은 몇 가지 공통 미러 위치를 제공합니다.

Azure
별도 정의: rhui-1.microsoft.com, rhui-2.microsoft.com, rhui-3.microsoft.com
baseurl 아래의 /etc/yum.repos.d/rh-cloud.repo
Google Cloud Provider
cds.rhel.updates.googlecloud.com
mirrorlist 아래의 /etc/yum.repos.d/rh-cloud.repo
Amazon웹 서비스
와일드카드: aws.ce.redhat.com
rhui3.REGION.aws.ce.redhat.com
mirrorlist 아래의 /etc/yum.repos.d/redhat-rhui.repo
IBM Cloud
와일드카드: service.networklayer.com
dal10: rhncapdal1001.service.networklayer.com
baseurl 아래의 /etc/yum.repos.d/redhat.repo