sql >> Database >  >> RDS >> Mysql

Kan Tomcat-container niet verbinden met mysql-databasecontainer in kubernetes?

Uw YAML-bestanden zijn correct. Ik heb de hele omgeving die in de vraag wordt genoemd opnieuw gemaakt en ik heb een gezonde Tomcat met de toepassing in de actieve staat.
Als iemand het ook wil testen, zijn de gebruikersnaam/het wachtwoord van de Tomcat-manager:

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

Er zijn geen ERNSTIGE fouten gevonden in het Tomcat-logboek, ik heb het antwoord van de applicatie:

{"text":"Data-core"}

die eruitziet als een juiste reactie. Ik heb ook de lege tabelvolgorde in de data-core van de Mysql-database.

Ik vermoed dat je een soort verbindingsprobleem hebt gehad, waarschijnlijk veroorzaakt door onjuist werk van de Kubernetes-netwerkadd-on (Calico/Flannel/etc.)

Hoe het probleem op te lossen:

  1. Om de instellingen te controleren, kunnen alle pods op hetzelfde knooppunt worden geplaatst door daar een PV te maken voor beide implementaties.
  2. Om de connectiviteit met Mysql- of Tomcat-bronnen te testen, kunnen we uitvoeren naar hun pods en tests uitvoeren met behulp van eenvoudige opdrachten:

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

    of voer gewoon een extra pod uit om te controleren of services correct naar de mysql-pod verwijzen:

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

Voor Tomcat pod kunnen we de volgende commando's gebruiken om de gebruikerswachtwoorden en toepassingsreactie te controleren:

   $ 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/

of gebruik een aparte pod met curl of wget om te controleren of Tomcat Service en NodePort goed werken:

   $ 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/

Door IP's van verschillende knooppunten te gebruiken, kunt u ook clusterconnectiviteit controleren, omdat NodePort-service dezelfde poort op alle clusterknooppunten opent en vervolgens iptables-regels op de knooppunten verkeer doorsturen naar het IP-adres van Pod.
Als pod zich op het andere knooppunt bevindt, gebruikt Flannel / Calico/enz. netwerkplug-in levert het aan het juiste knooppunt en aan de pod.




  1. Geavanceerde MySql-query:tabel bijwerken met informatie uit een andere tabel

  2. Fout bij het converteren van gegevenstypen bij het importeren van Excel naar SQL Server 2008

  3. Hoe het percentage van twee kolommen in MySQL te berekenen

  4. Declareer door gebruiker gedefinieerde uitzondering met behulp van de RAISE_APPLICATION_ERROR-methode in Oracle Database