28.7. 서비스 외부 IP에 대한 수신 클러스터 트래픽 구성
MetalLB 구현 또는 IP 페일오버 배포를 사용하여 OpenShift Container Platform 클러스터 외부의 트래픽에 서비스를 사용할 수 있도록 ExternalIP 리소스를 서비스에 연결할 수 있습니다. 이러한 방식으로 외부 IP 주소를 호스팅하는 것은 베어 메탈 하드웨어에 설치된 클러스터에만 적용됩니다.
트래픽을 서비스로 라우팅하도록 외부 네트워크 인프라를 올바르게 구성해야 합니다.
28.7.1. 사전 요구 사항
클러스터는 ExternalIP가 활성화된 상태로 구성됩니다. 자세한 내용은 서비스에 대한 ExternalIP 구성을 참조하십시오.
참고송신 IP에 대해 동일한 ExternalIP를 사용하지 마십시오.
28.7.2. 서비스에 ExternalIP 연결
ExternalIP 리소스를 서비스에 연결할 수 있습니다. 리소스를 서비스에 자동으로 연결하도록 클러스터를 구성한 경우 ExternalIP를 서비스에 수동으로 연결할 필요가 없습니다.
이 절차의 예제에서는 IP 페일오버 구성을 사용하여 클러스터의 서비스에 ExternalIP 리소스를 수동으로 연결하는 시나리오를 사용합니다.
절차
CLI에 다음 명령을 입력하여 ExternalIP 리소스에 호환되는 IP 주소 범위를 확인합니다.
$ oc get networks.config cluster -o jsonpath='{.spec.externalIP}{"\n"}'
참고autoAssignCIDRs
가 설정되어 ExternalIP 리소스에서spec.externalIPs
값을 지정하지 않은 경우 OpenShift Container Platform은 새Service
오브젝트에 ExternalIP를 자동으로 할당합니다.다음 옵션 중 하나를 선택하여 ExternalIP 리소스를 서비스에 연결합니다.
새 서비스를 생성하는 경우
spec.externalIPs
필드에 값을 지정하고allowedCIDRs
매개변수에서 하나 이상의 유효한 IP 주소 배열을 지정합니다.ExternalIP 리소스를 지원하는 서비스 YAML 구성 파일의 예
apiVersion: v1 kind: Service metadata: name: svc-with-externalip spec: externalIPs: policy: allowedCIDRs: - 192.168.123.0/28
ExternalIP를 기존 서비스에 연결하는 경우 다음 명령을 입력합니다.
<name>
을 서비스 이름으로 교체합니다.<ip_address>
를 유효한 ExternalIP 주소로 교체합니다. 쉼표로 구분된 여러 IP 주소를 제공할 수 있습니다.$ oc patch svc <name> -p \ '{ "spec": { "externalIPs": [ "<ip_address>" ] } }'
예를 들면 다음과 같습니다.
$ oc patch svc mysql-55-rhel7 -p '{"spec":{"externalIPs":["192.174.120.10"]}}'
출력 예
"mysql-55-rhel7" patched
ExternalIP 주소가 서비스에 연결되었는지 확인하려면 다음 명령을 입력합니다. 새 서비스에 ExternalIP를 지정한 경우 먼저 서비스를 생성해야 합니다.
$ oc get svc
출력 예
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE mysql-55-rhel7 172.30.131.89 192.174.120.10 3306/TCP 13m