11장. AMQ Streams 관리


이 장에서는 AMQ Streams 배포를 유지보수하는 작업을 설명합니다.

11.1. 사용자 정의 리소스 작업

oc 명령을 사용하여 AMQ Streams 사용자 정의 리소스에서 정보를 검색하고 다른 작업을 수행할 수 있습니다.

oc 를 사용자 정의 리소스의 status 하위 리소스와 함께 사용하면 리소스에 대한 정보를 가져올 수 있습니다.

11.1.1. 사용자 정의 리소스에서 oc 작업 수행

get,describe,edit 또는 delete 등의 oc 명령을 사용하여 리소스 유형에 대한 작업을 수행합니다. 예를 들어 oc get kafkatopics 는 모든 Kafka 주제 목록을 검색하고 oc get kafkas 는 배포된 모든 Kafka 클러스터를 검색합니다.

리소스 유형을 참조할 때 단일 이름과 복수 이름을 모두 사용할 수 있습니다. oc get kafkasoc get kafka 와 동일한 결과를 가져옵니다.

리소스의 짧은 이름을 사용할 수도 있습니다. 짧은 이름을 학습하면 AMQ Streams를 관리할 때 시간을 절약할 수 있습니다. Kafka 의 짧은 이름은 k 이므로 oc get k 를 실행하여 모든 Kafka 클러스터를 나열할 수도 있습니다.

oc get k

NAME         DESIRED KAFKA REPLICAS   DESIRED ZK REPLICAS
my-cluster   3                        3
Copy to Clipboard Toggle word wrap
Expand
표 11.1. 각 AMQ Streams 리소스의 긴 이름 및 짧은 이름
AMQ Streams 리소스긴 이름짧은 이름

Kafka

kafka

k

Kafka Topic

kafkatopic

kt

Kafka 사용자

kafkauser

ku

Kafka Connect

kafkaconnect

kc

Kafka Connector

kafkaconnector

kctr

Kafka Mirror Maker

kafkamirrormaker

kmm

Kafka 미러 메이커 2

kafkamirrormaker2

kmm2

Kafka 브리지

kafkabridge

kb

Kafka 리밸런스

kafkarebalance

kr

11.1.1.1. 리소스 카테고리

사용자 정의 리소스의 카테고리는 oc 명령에서도 사용할 수 있습니다.

모든 AMQ Streams 사용자 정의 리소스는 계층 구조에 속하므로 strimzi 를 사용하여 하나의 명령으로 모든 AMQ Streams 리소스를 가져올 수 있습니다.

예를 들어 oc get strimzi 를 실행하면 지정된 네임스페이스의 모든 AMQ Streams 사용자 정의 리소스가 나열됩니다.

oc get strimzi

NAME                                   DESIRED KAFKA REPLICAS DESIRED ZK REPLICAS
kafka.kafka.strimzi.io/my-cluster      3                      3

NAME                                   PARTITIONS REPLICATION FACTOR
kafkatopic.kafka.strimzi.io/kafka-apps 3          3

NAME                                   AUTHENTICATION AUTHORIZATION
kafkauser.kafka.strimzi.io/my-user     tls            simple
Copy to Clipboard Toggle word wrap

oc get strimzi -o name 명령은 모든 리소스 유형 및 리소스 이름을 반환합니다. -o name 옵션은 유형/이름 형식으로 출력을 가져옵니다.

oc get strimzi -o name

kafka.kafka.strimzi.io/my-cluster
kafkatopic.kafka.strimzi.io/kafka-apps
kafkauser.kafka.strimzi.io/my-user
Copy to Clipboard Toggle word wrap

strimzi 명령을 다른 명령과 결합할 수 있습니다. 예를 들어 oc delete 명령에 전달하여 단일 명령의 모든 리소스를 삭제할 수 있습니다.

oc delete $(oc get strimzi -o name)

kafka.kafka.strimzi.io "my-cluster" deleted
kafkatopic.kafka.strimzi.io "kafka-apps" deleted
kafkauser.kafka.strimzi.io "my-user" deleted
Copy to Clipboard Toggle word wrap

예를 들어 새 AMQ Streams 기능을 테스트할 때와 같이 단일 작업에서 모든 리소스를 삭제하는 것이 유용할 수 있습니다.

11.1.1.2. 하위 리소스의 상태 쿼리

-o 옵션으로 전달할 수 있는 다른 값이 있습니다. 예를 들어 -o yaml 을 사용하면 YAML 형식으로 출력을 얻을 수 있습니다. -o json 을 사용하면 JSON으로 반환됩니다.

oc get --help 에서 모든 옵션을 볼 수 있습니다.

가장 유용한 옵션 중 하나는 JSONPath 지원 이므로 JSONPath 표현식을 전달하여 Kubernetes API를 쿼리할 수 있습니다. JSONPath 표현식은 리소스의 특정 부분을 추출하거나 탐색할 수 있습니다.

예를 들어 JSONPath 표현식 {.status.listeners[?(@.name=="tls")].bootstrapServers} 를 사용하여 Kafka 사용자 정의 리소스의 상태에서 부트스트랩 주소를 가져와서 Kafka 클라이언트에서 사용할 수 있습니다.

여기에서 이 명령은 tls:이라는 리스너의 bootstrapServers 값을 찾습니다.

oc get kafka my-cluster -o=jsonpath='{.status.listeners[?(@.name=="tls")].bootstrapServers}{"\n"}'

my-cluster-kafka-bootstrap.myproject.svc:9093
Copy to Clipboard Toggle word wrap

이름 조건을 변경하면 다른 Kafka 리스너의 주소를 가져올 수도 있습니다.

jsonpath 를 사용하여 사용자 정의 리소스에서 다른 속성 또는 속성 그룹을 추출할 수 있습니다.

11.1.2. AMQ Streams 사용자 정의 리소스 상태 정보

다음 표에 설명된 대로 여러 리소스에는 status 속성이 있습니다.

Expand
표 11.2. 사용자 정의 리소스 상태 속성
AMQ Streams 리소스스키마 참조…​에 상태 정보를 게시합니다.

Kafka

12.2.55절. “KafkaStatus 스키마 참조”

Kafka 클러스터입니다.

KafkaConnect

12.2.85절. “KafkaConnectStatus schema reference”

배포된 경우 Kafka Connect 클러스터입니다.

KafkaConnector

12.2.123절. “KafkaConnectorStatus 스키마 참조”

배포된 경우 KafkaConnector 리소스.

KafkaMirrorMaker

12.2.111절. “KafkaMirrorMakerStatus schema reference”

배포된 경우 Kafka MirrorMaker 툴입니다.

KafkaTopic

12.2.89절. “KafkaTopicStatus 스키마 참조”

Kafka 클러스터의 Kafka 주제입니다.

KafkaUser

12.2.105절. “KafkaUserStatus 스키마 참조”

Kafka 클러스터의 Kafka 사용자

KafkaBridge

12.2.120절. “KafkaBridgeStatus 스키마 참조”

배포된 경우 AMQ Streams Kafka 브리지입니다.

리소스의 status 속성은 리소스의 정보를 제공합니다.

  • status.conditions 속성에서 현재 상태
  • status.observedGeneration 속성에서 마지막으로 관찰된 생성

status 속성은 리소스 관련 정보도 제공합니다. 예를 들면 다음과 같습니다.

  • KafkaStatus 는 리스너 주소 및 Kafka 클러스터의 ID에 대한 정보를 제공합니다.
  • KafkaConnectStatus 는 Kafka Connect 커넥터를 위한 REST API 엔드포인트를 제공합니다.
  • KafkaUserStatus 는 Kafka 사용자의 사용자 이름과 해당 인증 정보가 저장된 Secret 을 제공합니다.
  • KafkaBridgeStatus 는 외부 클라이언트 애플리케이션이 Bridge 서비스에 액세스할 수 있는 HTTP 주소를 제공합니다.

리소스의 현재 상태는 spec 속성에서 정의한 대로 원하는 상태를 달성하는 리소스와 관련된 진행 상황을 추적하는 데 유용합니다. 상태 조건은 리소스의 상태가 변경된 시간과 이유를 제공하고, 이로 인해 Operator가 리소스의 원하는 상태를 인식하거나 지연하지 못하도록 하는 이벤트의 세부 정보를 제공합니다.

마지막으로 관찰된 생성 은 Cluster Operator가 마지막으로 조정한 리소스의 생성입니다. observedGeneration 값이 metadata.generation 값과 다른 경우 Operator는 아직 리소스에 대한 최신 업데이트를 처리하지 않았습니다. 이러한 값이 동일한 경우 상태 정보는 리소스에 대한 최신 변경 사항을 반영합니다.

AMQ Streams는 사용자 정의 리소스의 현재 상태를 주기적으로 평가하고 그에 따라 상태를 업데이트하는 사용자 정의 리소스의 상태를 생성 및 유지 관리합니다. oc edit 를 사용하여 사용자 정의 리소스에서 업데이트를 수행할 때 (예: 해당 상태 ) 편집할 수 없습니다. 또한 상태를 변경하면 Kafka 클러스터 구성에 영향을 미치지 않습니다.

여기에서 Kafka 사용자 정의 리소스에 지정된 status 속성이 표시됩니다.

상태가 있는 Kafka 사용자 정의 리소스

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
spec:
  # ...
status:
  conditions: 
1

  - lastTransitionTime: 2021-07-23T23:46:57+0000
    status: "True"
    type: Ready 
2

  observedGeneration: 4 
3

  listeners: 
4

  - addresses:
    - host: my-cluster-kafka-bootstrap.myproject.svc
      port: 9092
    type: plain
  - addresses:
    - host: my-cluster-kafka-bootstrap.myproject.svc
      port: 9093
    certificates:
    - |
      -----BEGIN CERTIFICATE-----
      ...
      -----END CERTIFICATE-----
    type: tls
  - addresses:
    - host: 172.29.49.180
      port: 9094
    certificates:
    - |
      -----BEGIN CERTIFICATE-----
      ...
      -----END CERTIFICATE-----
    type: external
  clusterId: CLUSTER-ID 
5

# ...
Copy to Clipboard Toggle word wrap

1
상태 조건은 기존 리소스 정보에서 추론할 수 없거나 리소스 인스턴스와 관련된 기준을 설명합니다.
2
Ready 조건은 Cluster Operator가 현재 트래픽을 처리할 수 있는 Kafka 클러스터를 간주하는지 여부를 나타냅니다.
3
observedGeneration 은 Cluster Operator가 마지막으로 조정한 Kafka 사용자 정의 리소스의 생성을 나타냅니다.
4
리스너 는 현재 Kafka 부트스트랩 주소를 유형별로 설명합니다.
5
Kafka 클러스터 ID입니다.
중요

nodeport 유형의 외부 리스너의 사용자 정의 리소스 상태의 주소는 현재 지원되지 않습니다.

참고

상태에 나열된 Kafka 부트스트랩 주소는 해당 끝점 또는 Kafka 클러스터가 준비 상태에 있음을 표시하지 않습니다.

상태 정보 액세스

명령줄에서 리소스의 상태 정보에 액세스할 수 있습니다. 자세한 내용은 11.1.3절. “사용자 정의 리소스의 상태 찾기”의 내용을 참조하십시오.

11.1.3. 사용자 정의 리소스의 상태 찾기

다음 절차에서는 사용자 정의 리소스의 상태를 찾는 방법을 설명합니다.

사전 요구 사항

  • OpenShift 클러스터입니다.
  • Cluster Operator가 실행 중입니다.

절차

  • 사용자 정의 리소스를 지정하고 -o jsonpath 옵션을 사용하여 표준 JSONPath 표현식을 적용하여 status 속성을 선택합니다.

    oc get kafka <kafka_resource_name> -o jsonpath='{.status}'
    Copy to Clipboard Toggle word wrap

    이 표현식은 지정된 사용자 정의 리소스에 대한 모든 상태 정보를 반환합니다. status.listeners 또는 status.observedGeneration 과 같은 점 표기법을 사용하여 표시하려는 상태 정보를 미세 조정할 수 있습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동