22.2.2. ExternalIP 구성
OpenShift Container Platform의 외부 IP 주소 사용을 제어하도록 Network.config.openshift.io CR(사용자 정의 리소스)에서 매개변수를 설정할 수 있습니다.
다음 목록은 이러한 매개변수에 대해 자세히 설명합니다.
-
spec.externalIP.autoAssignCIDRs는 서비스에 대한 외부 IP 주소를 선택할 때 로드 밸런서에서 사용하는 IP 주소 블록을 정의합니다. OpenShift Container Platform에서는 자동 할당에 대해 하나의 IP 주소 블록만 지원합니다. 이 구성에는 서비스에 ExternalIP를 수동으로 할당하는 것보다 적은 단계가 필요하므로 제한된 수의 공유 IP 주소의 포트 공간을 관리해야 합니다. 자동 할당을 활성화하면 Cloud Controller Manager Operator는 구성에서spec.type=LoadBalancerdefind를 사용하여서비스오브젝트에 외부 IP 주소를 할당합니다. -
spec.externalIP.policy는 IP 주소를 수동으로 지정할 때 허용되는 IP 주소 블록을 정의합니다. OpenShift Container Platform은spec.externalIP.autoAssignCIDRs매개변수에 정의된 IP 주소 블록에 정책 규칙을 적용하지 않습니다.
올바르게 라우팅되면 구성된 외부 IP 주소 블록의 외부 트래픽이 서비스에서 노출하는 TCP 또는 UDP 포트를 통해 서비스 끝점에 도달할 수 있습니다.
클러스터 관리자는 externalIP로 라우팅을 구성해야 합니다. 또한 할당하는 IP 주소 블록이 클러스터의 하나 이상의 노드에서 종료되는지 확인해야 합니다. 자세한 내용은 Kubernetes 외부 IP를 참조하십시오.
OpenShift Container Platform은 자동 및 수동 IP 주소 할당을 모두 지원합니다. 이 지원을 통해 각 주소가 최대 하나의 서비스에 할당되고 각 서비스가 다른 서비스에서 노출하는 포트와 관계없이 선택한 포트를 노출할 수 있습니다.
OpenShift Container Platform에서 autoAssignCIDR로 정의된 IP 주소 블록을 사용하려면 호스트 네트워크에 필요한 IP 주소 할당 및 라우팅을 구성해야 합니다.
다음 YAML에서는 외부 IP 주소가 구성된 서비스를 설명합니다.
spec.externalIPs[]가 설정된 Service 오브젝트의 예
apiVersion: v1
kind: Service
metadata:
name: http-service
spec:
clusterIP: 172.30.163.110
externalIPs:
- 192.168.132.253
externalTrafficPolicy: Cluster
ports:
- name: highport
nodePort: 31903
port: 30102
protocol: TCP
targetPort: 30102
selector:
app: web
sessionAffinity: None
type: LoadBalancer
status:
loadBalancer:
ingress:
- ip: 192.168.132.253
# ...
클라우드 공급자 플랫폼에서 프라이빗 클러스터를 실행하는 경우 다음 패치 명령을 실행하여 Ingress 컨트롤러의 로드 밸런서에 대한 게시 범위를 internal 로 변경할 수 있습니다.
$ oc -n openshift-ingress-operator patch ingresscontrollers/ingress-controller-with-nlb --type=merge --patch='{"spec":{"endpointPublishingStrategy":{"loadBalancer":{"scope":"Internal"}}}}'
이 명령을 실행하면 Ingress 컨트롤러는 OpenShift Container Platform 애플리케이션의 경로에 대한 액세스를 내부 네트워크로만 제한합니다.