OpenShift에서 AMQ Streams 시작하기
OpenShift Container Platform에서 AMQ Streams 2.6 사용
초록
보다 포괄적 수용을 위한 오픈 소스 용어 교체
Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 용어를 교체하기 위해 최선을 다하고 있습니다. 먼저 마스터(master), 슬레이브(slave), 블랙리스트(blacklist), 화이트리스트(whitelist) 등 네 가지 용어를 교체하고 있습니다. 이러한 변경 작업은 작업 범위가 크므로 향후 여러 릴리스에 걸쳐 점차 구현할 예정입니다. 자세한 내용은 CTO Chris Wright의 메시지를 참조하십시오.
1장. 시작하기 개요
Red Hat AMQ Streams를 사용하여 Kafka 클러스터를 생성하고 설정한 다음 애플리케이션 및 서비스를 해당 클러스터에 연결합니다.
이 가이드에서는 OpenShift Container Platform에서 AMQ Streams를 설치하고 사용하는 방법을 설명합니다. OpenShift 웹 콘솔의 OperatorHub에서 직접 AMQ Streams Operator를 설치할 수 있습니다. AMQ Streams Operator는 Kafka 구성 요소를 설치하고 관리하는 방법을 설명합니다. OperatorHub에서 설치하면 자동 업데이트를 활용할 수 있는 AMQ Streams의 표준 구성이 제공됩니다.
AMQ Streams Operator가 설치되면 Kafka 구성 요소의 인스턴스를 설치하는 리소스를 제공합니다. Kafka 클러스터를 설치한 후 메시지 생성 및 사용을 시작할 수 있습니다.
배포에 더 많은 유연성이 필요한 경우 AMQ Streams와 함께 제공되는 설치 아티팩트를 사용할 수 있습니다. 설치 아티팩트 사용에 대한 자세한 내용은 OpenShift에서 AMQ Streams 배포 및 관리를 참조하십시오.
1.1. 사전 요구 사항
AMQ Streams를 시작하려면 다음 사전 요구 사항이 필요합니다.
- Red Hat 계정이 있습니다.
- JDK 11 이상이 설치되어 있어야 합니다.
- OpenShift 4.11에서 4.14 클러스터를 사용할 수 있습니다.
-
OpenShift
oc
명령줄 툴이 설치되어 실행 중인 클러스터에 연결하도록 구성되어 있습니다.
시작하는 단계는 OpenShift 웹 콘솔에서 OperatorHub를 사용하는 것을 기반으로 하지만 OpenShift oc
CLI 툴을 사용하여 특정 작업을 수행합니다. oc
툴을 사용하여 OpenShift 클러스터에 연결해야 합니다.
-
'?'
도움말 메뉴를 클릭한 다음 명령줄 툴을 클릭하여 웹 콘솔에서oc
CLI 툴 을 설치할 수 있습니다. -
프로필 이름을 클릭한 다음
로그인 명령을 복사하여 웹 콘솔에서 필요한 oc 로그인
세부 정보를 복사할 수 있습니다.
1.2. 추가 리소스
2장. OperatorHub에서 AMQ Streams Operator 설치
OpenShift Container Platform 웹 콘솔에서 OperatorHub를 사용하여 AMQ Streams Operator를 설치하고 구독할 수 있습니다.
다음 절차에서는 프로젝트를 생성하고 AMQ Streams Operator를 해당 프로젝트에 설치하는 방법을 설명합니다. 프로젝트는 네임스페이스를 나타냅니다. 관리를 위해 네임스페이스를 사용하여 함수를 분리하는 것이 좋습니다.
적절한 업데이트 채널을 사용해야 합니다. 지원되는 OpenShift 버전에 있는 경우 기본 stable 채널에서 AMQ Streams를 설치하는 것이 일반적으로 안전합니다. 그러나 stable 채널에서 자동 업데이트를 활성화하지 않는 것이 좋습니다. 자동 업그레이드는 업그레이드하기 전에 필요한 단계를 건너뜁니다. 버전별 채널에서만 자동 업그레이드를 사용합니다.
사전 요구 사항
-
cluster-admin
또는strimzi-admin
권한이 있는 계정을 사용하여 OpenShift Container Platform 웹 콘솔에 액세스합니다.
프로세스
OpenShift 웹 콘솔에서 홈 > 프로젝트 페이지로 이동하여 설치를 위한 프로젝트(네임스페이스)를 생성합니다.
이 예제에서는
amq-streams-kafka
라는 프로젝트를 사용합니다.- Operators > OperatorHub 페이지로 이동합니다.
키워드로 필터링 상자에 키워드 를 스크롤하거나 입력하여 AMQ Streams Operator를 찾습니다.
Operator는 Streaming & Messaging 카테고리에 있습니다.
- AMQ Streams 를 클릭하여 Operator 정보를 표시합니다.
- Operator에 대한 정보를 읽고 설치를 클릭합니다.
Operator 설치 페이지에서 다음 설치 및 업데이트 옵션 중에서 선택합니다.
Update Channel: Operator의 업데이트 채널을 선택합니다.
- (기본값) stable 채널에는 메이저, 마이너 및 마이크로 릴리스를 포함한 모든 최신 업데이트 및 릴리스가 포함되어 있으며 이는 잘 테스트되고 안정적인 것으로 간주됩니다.
- amq-streams-X.x 채널에는 주요 릴리스의 마이너 및 마이크로 릴리스 업데이트가 포함되어 있습니다. 여기서 X 는 주요 릴리스 버전 번호입니다.
- amq-streams-X.Y.x 채널에는 마이너 릴리스의 마이크로 릴리스 업데이트가 포함되어 있습니다. 여기서 X 는 주요 릴리스 버전 번호이고 Y 는 마이너 릴리스 버전 번호입니다.
설치 모드: 생성한 프로젝트를 선택하여 특정 네임스페이스에 Operator를 설치합니다.
AMQ Streams Operator를 클러스터(기본 옵션) 또는 특정 네임스페이스의 모든 네임스페이스에 설치할 수 있습니다. 특정 네임스페이스를 Kafka 클러스터 및 기타 AMQ Streams 구성 요소에 전용으로 사용하는 것이 좋습니다.
- 업데이트 승인: 기본적으로 AMQ Streams Operator는 OLM(Operator Lifecycle Manager)에 의해 최신 AMQ Streams 버전으로 자동 업그레이드됩니다. 선택적으로 향후 업그레이드를 수동으로 승인하려면 Manual 을 선택합니다. Operator에 대한 자세한 내용은 OpenShift 설명서 를 참조하십시오.
설치를 클릭하여 선택한 네임스페이스에 Operator를 설치합니다.
AMQ Streams Operator는 Cluster Operator, CRD 및 역할 기반 액세스 제어(RBAC) 리소스를 선택한 네임스페이스에 배포합니다.
Operator를 사용할 준비가 되면 Operator > Installed Operators 로 이동하여 Operator가 선택한 네임스페이스에 설치되어 있는지 확인합니다.
상태가 성공으로 표시됩니다.
이제 AMQ Streams Operator를 사용하여 Kafka 클러스터부터 Kafka 구성 요소를 배포할 수 있습니다.
워크로드 > Deployments로 이동하는 경우 Cluster Operator 및 Entity Operator에 대한 배포 세부 정보를 확인할 수 있습니다. Cluster Operator의 이름에는 amq-streams-cluster-operator-<version>이라는 버전 번호가 포함됩니다
. AMQ Streams 설치 아티팩트를 사용하여 Cluster Operator를 배포할 때 이름이 다릅니다. 이 경우 이름은 strimzi-cluster-operator
입니다.
3장. AMQ Streams Operator를 사용하여 Kafka 구성 요소 배포
Openshift에 설치할 때 AMQ Streams Operator는 사용자 인터페이스에서 Kafka 구성 요소를 설치할 수 있도록 합니다.
다음 Kafka 구성 요소를 설치할 수 있습니다.
- Kafka
- Kafka Connect
- Kafka MirrorMaker
- Kafka MirrorMaker 2
- Kafka 주제
- Kafka 사용자
- Kafka 브리지
- Kafka 커넥터
- Kafka 리밸런스
구성 요소를 선택하고 인스턴스를 생성합니다. 최소한 Kafka 인스턴스를 생성합니다. 다음 절차에서는 기본 설정을 사용하여 Kafka 인스턴스를 생성하는 방법을 설명합니다. 설치를 수행하기 전에 기본 설치 사양을 구성할 수 있습니다.
이 프로세스는 다른 Kafka 구성 요소의 인스턴스를 생성하는 것과 동일합니다.
사전 요구 사항
- AMQ Streams Operator는 OpenShift 클러스터에 설치되어 있습니다.
프로세스
웹 콘솔에서 Operator > Installed Operators 페이지로 이동하고 AMQ Streams 를 클릭하여 Operator 세부 정보를 표시합니다.
제공된 API 에서 Kafka 구성 요소의 인스턴스를 생성할 수 있습니다.
Kafka 아래에 인스턴스 생성 을 클릭하여 Kafka 인스턴스를 생성합니다.
기본적으로 3개의 Kafka 브로커 노드와 3개의 Zoo Cryostat 노드를 사용하여
my-cluster
라는 Kafka 클러스터를 생성합니다. 클러스터는 임시 스토리지를 사용합니다.생성 을 클릭하여 Kafka 설치를 시작합니다.
상태가 Ready 로 변경될 때까지 기다립니다.
4장. Kafka 클러스터에 액세스하기 위한 OpenShift 경로 생성
OpenShift 경로를 생성하여 OpenShift 외부에서 Kafka 클러스터에 액세스합니다.
다음 절차에서는 Kafka 클러스터를 OpenShift 환경 외부의 클라이언트에 노출하는 방법을 설명합니다. Kafka 클러스터가 노출되면 외부 클라이언트가 Kafka 클러스터에서 메시지를 생성하고 사용할 수 있습니다.
OpenShift 경로를 생성하기 위해 OpenShift에 설치된 Kafka 클러스터 구성에 경로
리스너가 추가됩니다.
OpenShift 경로 주소에는 Kafka 클러스터의 이름, 리스너 이름, 생성된 네임스페이스 이름이 포함됩니다. 예를 들어 my-cluster-kafka-listener1-bootstrap-amq-streams-kafka
(<cluster_name> -kafka- <listener_name> -bootstrap- <namespace> ). 주소의 전체 길이가 최대 63자 제한을 초과하지 않도록 주의하십시오.
사전 요구 사항
- OpenShift에 Kafka 클러스터를 생성 했습니다.
-
인증서를 관리하려면 OpenJDK
keytool
이 필요합니다. -
(선택 사항) OpenShift
oc
CLI 툴을 사용하여 일부 단계를 수행할 수 있습니다.
프로세스
- 웹 콘솔에서 Operator > Installed Operators 페이지로 이동하여 AMQ Streams 를 선택하여 Operator 세부 정보를 표시합니다.
- Kafka 페이지를 선택하여 설치된 Kafka 클러스터를 표시합니다.
세부 정보를 보려면 구성 중인 Kafka 클러스터의 이름을 클릭합니다.
이 예제에서는
my-cluster
라는 Kafka 클러스터를 사용합니다.-
Kafka 클러스터
my-cluster
의 YAML 페이지를 선택합니다. 경로 리스너 구성을 추가하여
listener1
이라는 OpenShift 경로를 생성합니다.리스너 구성을
경로
유형으로 설정해야 합니다. Kafka 구성의 리스너 아래에리스너
구성을 추가합니다.외부 경로 리스너 구성
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster namespace: amq-streams-kafka spec: kafka: # ... listeners: # ... - name: listener1 port: 9094 type: route tls: true # ...
클라이언트는 기본 라우터 포트인 포트 443에 연결되지만 트래픽이 구성된 포트로 라우팅됩니다. 이 예에서는 9094입니다.
- 업데이트된 구성을 저장합니다.
Kafka 클러스터
my-cluster
의 리소스 페이지를 선택하여 클라이언트에 필요한 연결 정보를 찾습니다.리소스 페이지에서 Kafka 클러스터에 연결하는 데 필요한 경로 리스너 및 공용 클러스터 인증서에 대한 세부 정보를 확인할 수 있습니다.
-
Kafka 클러스터에 대해 생성된
my-cluster-kafka-listener1-bootstrap
경로의 이름을 클릭하여 경로 세부 정보를 표시합니다. 호스트 이름을 기록합니다.
호스트 이름은 Kafka 클러스터에 연결하기 위한 부트스트랩 주소로 Kafka 클라이언트의 포트 443으로 지정됩니다.
Networking > Routes 로 이동하고 네임스페이스에 생성된 경로를 표시하는
amq-streams-kafka
프로젝트를 선택하여 부트스트랩 주소를 찾을 수도 있습니다.또는
oc
툴을 사용하여 부트스트랩 세부 정보를 추출할 수 있습니다.부트스트랩 정보 추출
oc get routes my-cluster-kafka-listener1-bootstrap -o=jsonpath='{.status.ingress[0].host}{"\n"}'
리소스 페이지로 돌아가서
my-cluster-cluster-ca-cert
의 이름을 클릭하여 Kafka 클러스터에 액세스하기 위한 시크릿 세부 정보를 표시합니다.ca.crt
인증서 파일에는 Kafka 클러스터의 공용 인증서가 포함되어 있습니다.Kafka 브로커에 액세스하려면 인증서가 필요합니다.
ca.crt
공용 인증서 파일의 로컬 사본을 만듭니다.인증서의 세부 정보를 복사하거나 OpenShift
oc
툴을 사용하여 압축을 풀 수 있습니다.공용 인증서 추출
oc extract secret/my-cluster-cluster-ca-cert --keys=ca.crt --to=- > ca.crt
keytool
을 사용하여 공용 클러스터 인증서의 로컬 신뢰 저장소를 생성합니다.로컬 신뢰 저장소 생성
keytool -keystore client.truststore.jks -alias CARoot -import -file ca.crt
메시지가 표시되면 truststore에 액세스하기 위한 암호를 생성합니다.
truststore는 Kafka 클러스터에 대한 액세스를 인증하기 위해 Kafka 클라이언트에 지정됩니다.
이제 메시지를 보내고 받을 준비가 되었습니다.
5장. 주제에서 메시지 전송 및 수신
OpenShift에 설치된 Kafka 클러스터에서 메시지를 보내고 메시지를 수신합니다.
다음 절차에서는 Kafka 클라이언트를 사용하여 메시지를 생성하고 사용하는 방법을 설명합니다. 클라이언트를 OpenShift에 배포하거나 로컬 Kafka 클라이언트를 OpenShift 클러스터에 연결할 수 있습니다. Kafka 클러스터 설치를 테스트하기 위해 하나 또는 두 옵션을 모두 사용할 수 있습니다. 로컬 클라이언트의 경우 OpenShift 경로 연결을 사용하여 Kafka 클러스터에 액세스합니다.
oc
명령줄 툴을 사용하여 Kafka 클라이언트를 배포하고 실행합니다.
사전 요구 사항
로컬 생산자 및 소비자의 경우:
OpenShift 클러스터에 배포된 Kafka 클라이언트에서 메시지 전송 및 수신
생산자 및 소비자 클라이언트를 OpenShift 클러스터에 배포합니다. 그런 다음 클라이언트를 사용하여 동일한 네임스페이스의 Kafka 클러스터에서 메시지를 보내고 받을 수 있습니다. 배포에서는 Kafka를 실행하는 데 AMQ Streams 컨테이너 이미지를 사용합니다.
oc
명령줄 인터페이스를 사용하여 Kafka 생산자를 배포합니다.이 예에서는 Kafka 클러스터
my-cluster
에 연결하는 Kafka 생산자를 배포합니다.my-topic
이라는 항목이 생성됩니다.OpenShift에 Kafka 생산자 배포
oc run kafka-producer -ti \ --image=registry.redhat.io/amq-streams/kafka-36-rhel8:2.6.0 \ --rm=true \ --restart=Never \ -- bin/kafka-console-producer.sh \ --bootstrap-server my-cluster-kafka-bootstrap:9092 \ --topic my-topic
참고연결에 실패하면 Kafka 클러스터가 실행 중이고 올바른 클러스터 이름이
bootstrap-server
로 지정되었는지 확인합니다.- 명령 프롬프트에서 여러 메시지를 입력합니다.
-
OpenShift 웹 콘솔에서 홈 > 프로젝트 페이지로 이동하여 생성한
amq-streams-kafka
프로젝트를 선택합니다. -
포드 목록에서
kafka-producer
를 클릭하여 생산자 포드 세부 정보를 확인합니다. - 로그 페이지를 선택하여 입력한 메시지가 있는지 확인합니다.
oc
명령줄 인터페이스를 사용하여 Kafka 소비자를 배포합니다.OpenShift에 Kafka 소비자 배포
oc run kafka-consumer -ti \ --image=registry.redhat.io/amq-streams/kafka-36-rhel8:2.6.0 \ --rm=true \ --restart=Never \ -- bin/kafka-console-consumer.sh \ --bootstrap-server my-cluster-kafka-bootstrap:9092 \ --topic my-topic \ --from-beginning
소비자는
my-topic
으로 생성된 메시지를 소비했습니다.- 명령 프롬프트에서 소비자 콘솔에 들어오는 메시지가 표시되는지 확인합니다.
-
OpenShift 웹 콘솔에서 홈 > 프로젝트 페이지로 이동하여 생성한
amq-streams-kafka
프로젝트를 선택합니다. -
포드 목록에서
kafka-consumer
를 클릭하여 소비자 포드 세부 정보를 확인합니다. - 로그 페이지를 선택하여 사용한 메시지가 있는지 확인합니다.
로컬에서 실행되는 Kafka 클라이언트에서 메시지 전송 및 수신
명령줄 인터페이스를 사용하여 로컬 시스템에서 Kafka 생산자 및 소비자를 실행합니다.
AMQ Streams 소프트웨어 다운로드 페이지에서 AMQ Streams <version > 바이너리를 다운로드 하여 추출합니다.
amq-streams- <version> -bin.zip
파일의 압축을 임의의 대상에 풉니다.명령줄 인터페이스를 열고
my-topic
주제와 TLS의 인증 속성을 사용하여 Kafka 콘솔 생산자를 시작합니다.OpenShift 경로를 사용하여 Kafka 브로커에 액세스하는 데 필요한 속성을 추가합니다.
- 사용 중인 OpenShift 경로에 호스트 이름과 포트 443을 사용합니다.
브로커 인증서에 대해 생성한 신뢰 저장소에 대한 암호 및 참조를 사용합니다.
로컬 Kafka 생산자 시작
kafka-console-producer.sh \ --bootstrap-server my-cluster-kafka-listener1-bootstrap-amq-streams-kafka.apps.ci-ln-50kcyvt-72292.origin-ci-int-gce.dev.rhcloud.com:443 \ --producer-property security.protocol=SSL \ --producer-property ssl.truststore.password=password \ --producer-property ssl.truststore.location=client.truststore.jks \ --topic my-topic
- 생산자가 실행 중인 명령줄 인터페이스에 메시지를 입력합니다.
- Enter를 눌러 메시지를 보냅니다.
새 명령줄 인터페이스 탭 또는 창을 열고 Kafka 콘솔 소비자를 시작하여 메시지를 받습니다.
생산자와 동일한 연결 세부 정보를 사용합니다.
로컬 Kafka 소비자 시작
kafka-console-consumer.sh \ --bootstrap-server my-cluster-kafka-listener1-bootstrap-amq-streams-kafka.apps.ci-ln-50kcyvt-72292.origin-ci-int-gce.dev.rhcloud.com:443 \ --consumer-property security.protocol=SSL \ --consumer-property ssl.truststore.password=password \ --consumer-property ssl.truststore.location=client.truststore.jks \ --topic my-topic --from-beginning
- 소비자 콘솔에 들어오는 메시지가 표시되는지 확인합니다.
- Crtl+C를 눌러 Kafka 콘솔 생산자 및 소비자를 종료합니다.
부록 A. 서브스크립션 사용
AMQ Streams는 소프트웨어 서브스크립션을 통해 제공됩니다. 서브스크립션을 관리하려면 Red Hat 고객 포털에서 계정에 액세스하십시오.
계정 액세스
- access.redhat.com 으로 이동합니다.
- 계정이 없는 경우 계정을 생성합니다.
- 계정에 로그인합니다.
서브스크립션 활성화
- access.redhat.com 으로 이동합니다.
- 내 서브스크립션 으로 이동합니다.
- 서브스크립션 활성화로 이동하여 16자리 활성화 번호를 입력합니다.
Zip 및 Tar 파일 다운로드
zip 또는 tar 파일에 액세스하려면 고객 포털을 사용하여 다운로드할 관련 파일을 찾습니다. RPM 패키지를 사용하는 경우 이 단계는 필요하지 않습니다.
- 브라우저를 열고 Red Hat Customer Portal 제품 다운로드 페이지에 access.redhat.com/downloads.
- INTEGRATION 및 AUTOMATION 카테고리에서 AMQ Streams for Apache Kafka 항목을 찾습니다.
- 원하는 AMQ Streams 제품을 선택합니다. 소프트웨어 다운로드 페이지가 열립니다.
- 구성 요소에 대한 다운로드 링크를 클릭합니다.
DNF를 사용하여 패키지 설치
패키지 및 모든 패키지 종속 항목을 설치하려면 다음을 사용합니다.
dnf install <package_name>
로컬 디렉터리에서 이전에 다운로드한 패키지를 설치하려면 다음을 사용합니다.
dnf install <path_to_download_package>
2023-12-06에 최종 업데이트된 문서