4.2.4. 가상 클러스터 구성


VirtualKafkaCluster 리소스는 네트워크를 통해 클라이언트에 액세스할 수 있는 논리적 Kafka 클러스터를 정의합니다.

가상 클러스터는 동일한 네임스페이스에 있어야 하는 다음 리소스를 참조합니다.

  • 프록시가 포함된 KafkaProxy 리소스입니다.
  • 가상 클러스터를 Kafka 클라이언트에 노출하고 수신(예: TLS 인증서 및 기타 매개변수)에 가상 클러스터별 구성을 제공하는 하나 이상의 KafkaProxyIngress 리소스입니다.
  • 백엔드 Kafka 클러스터를 정의하는 KafkaService 리소스입니다.
  • 클라이언트와 백엔드 Kafka 클러스터 간에 전달되는 Kafka 프로토콜 트래픽에 필터를 적용하는 0개 이상의 KafkaProtocolFilter 리소스입니다.

이 예에서는 동일한 OpenShift 클러스터에서 실행되는 Kafka 클라이언트에 노출되는 VirtualKafkaCluster 를 보여줍니다. 전송 프로토콜로 일반 TCP(TLS와 반대)를 사용합니다.

단일 clusterIP 인그레스가 있는 VirtualKafkaCluster 구성의 예

kind: VirtualKafkaCluster
apiVersion: kroxylicious.io/v1alpha1
metadata:
  name: my-cluster
  namespace: my-proxy
spec:
  proxyRef: 
1

    name: simple
  targetKafkaServiceRef: 
2

    name: my-cluster
  ingresses:
    - ingressRef: 
3

        name: cluster-ip

1
이 가상 클러스터가 포함된 KafkaProxy 리소스를 식별합니다.
2
가상 클러스터에서 프록시한 Kafka 클러스터를 정의하는 KafkaService 입니다.
3
가상 클러스터를 노출하는 수신입니다. 각 수신은 이름별로 KafkaProxyIngress 를 참조합니다.

이 예에서는 TLS를 사용하여 및 클러스터 외부에서 실행되는 Kafka 클라이언트에 노출되는 VirtualKafkaCluster 를 보여줍니다. TLS가 사용되므로 Ingress 구성은 TLS 서버 인증서를 참조해야 합니다.

TLS를 사용하는 두 개의 수신이 있는 VirtualKafkaCluster 구성의 예

kind: VirtualKafkaCluster
apiVersion: kroxylicious.io/v1alpha1
metadata:
  name: my-cluster
  namespace: my-proxy
spec:
  proxyRef:
    name: simple
  targetKafkaServiceRef:
    name: my-cluster
  ingresses:
    - ingressRef:
        name: cluster-ip
        certificateRef:
          name: 'cluster-ip-server-cert' 
1

          kind: Secret
    - ingressRef:
        name: load-balancer
        certificateRef:
          name: 'external-server-cert' 
2

          kind: Secret

1
clusterIP 수신에 대한 서버 인증서가 포함된 보안에 대한 참조입니다.
2
loadBalancer 수신에 대한 서버 인증서가 포함된 보안에 대한 참조입니다.

4.2.4.1. clusterIP 수신 유형에 대한 TLS 인증서 생성

TLS 프로토콜과 함께 clusterIP 수신 유형을 사용하는 경우 통신을 보호하는 데 적합한 TLS 인증서를 제공해야 합니다.

기본 단계는 다음과 같습니다.

  • 인그레스로 가상 클러스터에 할당된 서비스 이름을 처리하는 TLS 서버 인증서를 생성합니다.
  • kubernetes.io/tls 유형의 OpenShift 시크릿 을 사용하여 가상 클러스터에 인증서를 제공합니다.

인증서를 생성하는 정확한 절차는 조직에서 사용하는 툴링 및 프로세스에 따라 다릅니다.

인증서는 다음 기준을 충족해야 합니다.

  • 이 인증서는 가상 클러스터에 연결하는 클러스터의 애플리케이션에서 신뢰하는 CA에서 서명해야 합니다.
  • 인증서 형식은 PKCS#8로 인코딩된 PEM(Privacy Enhanced mail)이어야 합니다. 암호로 보호해서는 안 됩니다.
  • 인증서는 SAN(Subject Alternate Names)을 사용하여 모든 서비스 이름을 나열하거나 모두를 포함하는 와일드카드 TLS 인증서를 사용해야 합니다. 노드 ID(0-2)를 사용하는 my-cluster 의 가상 클러스터 이름, cluster-ip 의 수신 이름 및 Kafka 클러스터라고 가정하면 인증서에 다음 SAN을 나열해야 합니다.

    my-cluster-cluster-ip-bootstrap.<namespace>.svc.cluster.local
    my-cluster-cluster-ip-0.<namespace>.svc.cluster.local
    my-cluster-cluster-ip-1.<namespace>.svc.cluster.local
    my-cluster-cluster-ip-2.<namespace>.svc.cluster.local

다음 명령을 사용하여 인증서의 보안을 생성합니다.

oc create secret tls <secret-name> --namespace <namespace> --cert=<path/to/cert/file> --key=<path/to/key/file>

< secret-name >은 생성할 시크릿의 이름입니다. < namespace >는 프록시를 배포할 네임스페이스의 이름이며 < path/to/cert/file > 및 < path/to/key/file >은 인증서 및 키 파일의 경로입니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동