Взаимодействие Apache и tomcat в Kubernetes

#kubernetes

#kubernetes

Вопрос:

Я запускаю два модуля для apache и 4 модуля для Tomcat (оба модуля работают в одном и том же пространстве имен). Я предоставляю (обслуживаю) порт apache и tomcat (80,8080) для внешнего мира.
Когда я пытаюсь вызвать URL-адрес apache, запрос не доходит до модуля tomcat.

Когда я проверяю журнал modjk, я вижу, что tomcat не запущен и не использует правильный порт. Я использую mod_jk для связи apache с tomcat. Я дал своему рабочему. файл свойств и файл Jkmount здесь. Когда я напрямую обращаюсь к tomcat, приложение работает нормально, я новичок в Kubernetes.

 Worker.properties:
worker.list=tomcat,loadbalancer
worker.tomcat.type=ajp13
#worker.myserver.host=127.0.0.1
worker.tomcat.port=8009
worker.tomcat.lbfactor=1
worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=tomcat
worker.loadbalancer.sticky_session=1

JK mount:
JkMount /Userinfo/* tomcat

httpd.conf:
JkWorkersFile /opt/apache/conf/worker.properties
Include /opt/apache/conf/jkmount.conf
LoadModule jk_module modules/mod_jk.so
Tomcat AJP:
<!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Message:
[Tue Dec 08 17:52:54.811 2020] [7:140256921777920] [info] jk_open_socket::jk_connect.c (817): connect to 127.0.0.1:8009 failed (errno=111)
[Tue Dec 08 17:52:54.811 2020] [7:140256921777920] [info] ajp_connect_to_endpoint::jk_ajp_common.c (1068): (tomcat) Failed opening socket to (127.0.0.1:8009) (errno=111)
[Tue Dec 08 17:52:54.811 2020] [7:140256921777920] [error] ajp_send_request::jk_ajp_common.c (1728): (tomcat) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=111)
[Tue Dec 08 17:52:54.811 2020] [7:140256921777920] [info] ajp_service::jk_ajp_common.c (2778): (tomcat) sending request to tomcat failed (recoverable), because of error during request sending (attempt=2)
[Tue Dec 08 17:52:54.811 2020] [7:140256921777920] [error] ajp_service::jk_ajp_common.c (2799): (tomcat) connecting to tomcat failed (rc=-3, errors=1, client_errors=0).
[Tue Dec 08 17:52:54.811 2020] [7:140256921777920] [info] jk_handler::mod_jk.c (2995): Service error=-3 for worker=tomcat
 

Комментарии:

1. С точки зрения Kubernetes, если Apache и Tomcat размещены отдельно Pods , вы должны обмениваться данными между ними через сеть с сервисами . Не могли бы вы показать YAML определения, которые вы использовали?

2. Спасибо за повтор, я предоставил свои служебные данные. «Раскрытие порта: kubectl раскрывает развертывание apache-tomcat-demo —type=NodePort —name=oapache -n apache-tomcat —port=80 —target-port=80 kubectl раскрывает развертывание apache-tomcat-demo —type=NodePort —name=otomcat -n apache-tomcat —port=8080 —target-port=8080 [root# kubectl получить svc -n ТИП ИМЕНИ apache-tomcat КЛАСТЕР-IP ВНЕШНИЙ-IP ПОРТ (Ы) ВОЗРАСТ oapache Порт узла 10.111.184.22 <нет> 80:30366 / TCP 40h Порт узла otomcat 10.107.156.132 <нет> 8080:30358/TCP 40h`

3. Я предоставляю порт AJP Tomcat AJP после получения IP-адреса (IP-адрес порта узла и IP-адрес кластера). Я использовал этот IP-адрес и порт ajp в моем apache worker.properties, даже если он не работает, я попробовал кластерный IP-адрес и порт узла, и я получаю отказ в соединении. ТИП ИМЕНИ КЛАСТЕР-IP ВНЕШНИЙ-IP ПОРТ (Ы) ВОЗРАСТ ajax-cat Порт узла xxxxxxxx <нет> 8009:30915/ TCP 3h28m ajax-cat ClusterIP xxxxxxxx <нет> 8009/ TCP 8s

4. Я открыл порт Tomcat 8080 и использовал прокси-сервер, теперь мой модуль apache разговаривает с модулем Tomcat, спасибо всем.