Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Nie można połączyć kontenera tomcat z kontenerem bazy danych mysql w kubernetes?

Twoje pliki YAML są poprawne. Odtworzyłem całe środowisko wymienione w pytaniu i mam sprawnego Tomcata z aplikacją w stanie Running.
Jeśli ktoś też chce ją przetestować, nazwa użytkownika/hasło menedżera Tomcat to:

 username="the-manager" password="needs-a-new-password-here"

W dzienniku tomcat nie znaleziono POWAŻNYCH błędów, otrzymałem odpowiedź z aplikacji:

{"text":"Data-core"}

co wygląda na poprawną odpowiedź. Mam również pustą sekwencję tabeli w bazie danych Mysql.

Domyślam się, że miałeś jakiś problem z łącznością, prawdopodobnie spowodowany niepoprawną pracą dodatku sieciowego Kubernetes (Calico/Flannel/etc.)

Jak go rozwiązać:

  1. Aby sprawdzić konfigurację, wszystkie pody można umieścić w tym samym węźle, tworząc PV dla obu tam wdrożeń.
  2. Aby przetestować łączność z zasobami Mysql lub Tomcat, możemy uruchomić ich pody i uruchomić testy za pomocą prostych poleceń:

    $ kubectl exec mysql-pod-name -it -- mysql -hlocalhost -uroot -proot data-core --execute="show tables;"
    

    lub po prostu uruchom dodatkowy pod, aby sprawdzić, czy usługi poprawnie wskazują na pod mysql:

    $ kubectl run mysql-client --rm -it --image mysql --restart=Never --command -- mysql -hmysql -uroot -proot data-core --execute="show tables;"
    

W przypadku tomcat pod możemy użyć następujących poleceń, aby sprawdzić hasła użytkowników i odpowiedzi aplikacji:

   $ kubectl exec -ti tomcat-pod-name -- cat /usr/local/tomcat/conf/tomcat-users.xml

   $ kubectl exec -ti tomcat-pod-name -- curl http://localhost:8080/data-core-0.0.1-SNAPSHOT/

lub użyj oddzielnego poda z curl lub wget aby sprawdzić, czy usługa Tomcat i NodePort działają dobrze:

   $ kubectl run curl -it --rm --image=appropriate/curl --restart=Never  -- curl http://tomcat:8080/data-core-0.0.1-SNAPSHOT/

   $ curl http://Cluster.Node.IP:30000/data-core-0.0.1-SNAPSHOT/

Używając adresów IP różnych węzłów, możesz również sprawdzić łączność klastra, ponieważ usługa NodePort otwiera ten sam port we wszystkich węzłach klastra, a następnie reguły iptables na węzłach przekazują ruch do adresu IP poda.
Jeśli pod znajduje się na innym węźle, flanelowe /Calico/itd. wtyczka sieciowa dostarcza go do właściwego węzła i do poda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Autouzupełnianie w kliencie wiersza poleceń MySQL

  2. Jak porównać daty za pomocą klauzuli między klauzulą ​​w hibernacji?

  3. Format daty i godziny Mysql dodaje 10 minut

  4. Wydajny sposób na aktualizację/zapełnienie bazy mysql zewnętrznym XML

  5. MYSQL:DECIMAL z dokładnością do 10 cyfr po przecinku