sql >> Databasteknik >  >> RDS >> Mysql

Kan du inte ansluta tomcat-behållare till mysql-databasbehållare i kubernetes?

Dina YAML-filer är korrekta. Jag har återskapat hela miljön som nämns i frågan och jag har en frisk Tomcat med applikationen i körläge.
Om någon också vill testa den är Tomcat-hanterarens användarnamn/lösenord:

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

Inga allvarliga fel hittades i tomcat-loggen, jag har fått svaret från applikationen:

{"text":"Data-core"}

som ser ut som korrekt svar. Jag har också den tomma tabellsekvensen i Mysql-databasens datakärna.

Jag kan gissa att du har haft något slags anslutningsproblem, förmodligen orsakat av felaktigt arbete med Kubernetes nätverkstillägg (Calico/Flannel/etc.)

Så här felsöker du det:

  1. För att kontrollera inställningen kan alla pods placeras på samma nod genom att skapa PV för båda distributionen där.
  2. För att testa anslutning till Mysql- eller Tomcat-resurser kan vi köra till deras pods och köra tester med enkla kommandon:

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

    eller kör bara ytterligare pod för att kontrollera om tjänsterna pekar på mysql-podden korrekt:

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

För tomcat pod kan vi använda följande kommandon för att kontrollera användarlösenord och programsvar:

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

eller använd separat pod med curl eller wget för att kontrollera om Tomcat Service och NodePort fungerar bra:

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

Genom att använda IP:er för olika noder kan du också kontrollera klusteranslutningen eftersom NodePort Service öppnar samma port på alla klusternoder och sedan iptables regler för noderna vidarebefordra trafik till Pods IP.
Om pod är placerad på den andra noden, Flannel /Calico/etc. nätverksplugin levererar den till rätt nod och till Pod.




  1. Hur man kommenterar MYSQL autoinkrementfält med JPA-kommentarer

  2. Hur lagrar jag taggar i en databas med MySQL och PHP?

  3. SQL:Hur man väljer en post per dag, förutsatt att varje dag innehåller mer än 1 värde MySQL

  4. Fixar för SQL Server 2012 &2014 Online Index Rebuild Issue