OpenShift / OKD Укажите URL для каждой реплики Pod
Я новичок в Открытой смене / ОКД. Я бегу Стримзи на вершине открытой смены.
Я развернул приложение, которое включает в себя Rest API. Это приложение имеет Rest Api, и можно контролировать производителя и потребителя от остальных Api. Я скопировал POD моего приложения до 3.
Чтобы иметь лучший контроль, мы хотим, чтобы запрос на пожарную реплику выполнялся лично для каждой реплики. ех. pod-replica1 моего приложения kafka-testing
для того, чтобы начать продюсера.pod-replica2 моего приложения kafka-testing
чтобы начать потребитель и так далее.
Как мы можем получить доступ к каждой под-реплике индивидуально, чтобы выполнить тест? Мы не можем создать несколько приложений с одним и тем же источником.
дайте мне знать, если что-то не понятно.
Большое спасибо
1 ответ
Если у тебя есть statefulset
с headless
сервис, то вы можете получить доступ к каждому модулю с $(podname).$(service name).$(namespace).svc
узнать больше о stable network id
Вот
Если ваше приложение также работает в OpenShift, запустите oc get svc
найти имена каждого брокера. Обратите внимание, что эти имена доступны только внутри кластера OpenShift.
Например, если oc get svc
возвращает:
> oc get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-cluster-kafka-0 ClusterIP 172.30.210.241 <none> 9094/TCP 109d
my-cluster-kafka-1 ClusterIP 172.30.39.25 <none> 9094/TCP 109d
my-cluster-kafka-2 ClusterIP 172.30.93.193 <none> 9094/TCP 109d
, вы можете получить доступ kafka-0
от my-cluster-kafka-0
или же my-cluster-kafka-0.<pod_namespace>.svc.cluster.local
Если ваше приложение работает за пределами OpenShift, настройте внешние прослушиватели стримзи. Среди трех вариантов настройки внешних слушателей: NodePort
может быть проще, если вы запускаете локальный OKD.