4.2.2.2. LoadBalancer 수신 유형
loadBalancer Ingress 유형을 사용하면 클러스터 외부에서 실행되는 애플리케이션이 가상 클러스터에 연결할 수 있습니다. TLS는 이 인그레스 유형과 함께 사용해야 합니다.
loadBalancer 인그레스 유형은 LoadBalancer 유형의 OpenShift Service 리소스를 사용하여 클러스터 외부 액세스를 활성화합니다.
loadBalancer 수신을 사용하는 경우 프록시는 SNI(Server Name Indication)를 사용하여 클라이언트의 요청된 호스트 이름과 프록시 내의 올바른 가상 클러스터 및 브로커와 일치합니다. 즉, 가상 클러스터 내의 모든 가상 클러스터와 모든 브로커는 DNS 내에서 고유하게 식별할 수 있어야 합니다. 이 작업을 수행하려면 다음 구성을 제공해야 합니다.
-
고유한
bootstrapAddress. 클라이언트가 가상 클러스터에 처음 연결하는 데 사용하는 주소입니다. -
클라이언트가 개별 브로커에 연결하는 데 사용하는 고유한 브로커 주소를 생성하는 advertise
BrokerAddressPattern.
조직의 네트워킹 규칙에 가장 적합하도록 bootstrapAddress 및 advertise BrokerAddressPattern 을 공식화하는 방법을 결정합니다.
advertise BrokerAddressPattern 은 토큰 $(nodeId) 를 포함해야 합니다. 프록시는 이 토큰을 브로커의 노드 ID로 대체합니다. 이렇게 하면 클라이언트 연결이 의도한 브로커로 올바르게 라우팅됩니다.
bootstrapAddress 및 advertise BrokerAddressPattern 둘 다 토큰 $(virtualClusterName) 을 포함할 수 있습니다. 이 값이 있는 경우 가상 클러스터 이름으로 교체됩니다. 이 토큰은 많은 가상 클러스터에서 KafkaProxyIngress 를 공유할 때 필요합니다.
가능한 한 가지 스키마는 가상 클러스터 이름을 조직의 도메인 이름 내의 하위 도메인으로 사용하는 것입니다.
$(virtualClusterName).kafkaproxy.example.com
그런 다음 각 브로커에 대해 추가 하위 도메인을 사용할 수 있습니다.
broker-$(nodeId).$(virtualClusterName).kafkaproxy.example.com
각 주소가 고유하게 유지되는 한 다른 이름 지정 스키마를 사용할 수 있습니다.
loadBalancer의 KafkaProxyIngress 구성 예
kind: KafkaProxyIngress
apiVersion: kroxylicious.io/v1alpha1
metadata:
namespace: my-proxy
name: load-balancer
spec:
proxyRef:
name: simple
loadBalancer:
bootstrapAddress: "$(virtualClusterName).kafkaproxy.example.com"
advertisedBrokerAddressPattern: "broker-$(nodeId).$(virtualClusterName).kafkaproxy.example.com"
TLS를 사용하는 경우 certificateRef 를 사용하여 인증서를 지정합니다.
VirtualKafkaCluster 리소스의 수신 구성에 TLS 서버
또한 애플리케이션에서 사용하는 네트워크에서 부트스트랩 및 브로커 주소가 확인되도록 DNS를 구성해야 합니다.