sql >> Database teknologi >  >> RDS >> Mysql

Kan du ikke forbinde tomcat-beholder til mysql-databasebeholder i kubernetes?

Dine YAML-filer er korrekte. Jeg har genskabt hele det miljø, der er nævnt i spørgsmålet, og jeg har en sund Tomcat med applikationen i køretilstand.
Hvis nogen også vil teste det, er brugernavnet/adgangskoden til Tomcat-administratoren:

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

Der blev ikke fundet alvorlige fejl i tomcat-loggen, jeg har fået svaret fra applikationen:

{"text":"Data-core"}

som ligner korrekt svar. Jeg har også den tomme tabelsekvens i Mysql-databasens datakerne.

Jeg kan gætte på, at du har haft en form for forbindelsesproblem, sandsynligvis forårsaget af forkert arbejde med Kubernetes netværkstilføjelse (Calico/Flannel/etc.)

Sådan fejlfinder du det:

  1. For at kontrollere opsætningen kan alle pods placeres på den samme node ved at oprette PV for begge implementeringer der.
  2. For at teste forbindelsen til Mysql- eller Tomcat-ressourcer kan vi udføre til deres pods og køre test ved hjælp af simple kommandoer:

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

    eller bare kør yderligere pod for at kontrollere, om tjenester peger korrekt på mysql pod:

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

For tomcat pod kan vi bruge følgende kommandoer til at kontrollere brugeradgangskoder og applikationssvar:

   $ 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 brug separat pod med curl eller wget for at kontrollere, om Tomcat Service og NodePort fungerer godt:

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

Ved at bruge IP'er for forskellige noder kan du også tjekke klyngeforbindelse, fordi NodePort Service åbner den samme port på alle klynge noder og derefter iptables regler for noderne videresender trafik til Pod's IP.
Hvis pod er placeret på den anden node, Flannel /Calico/etc. netværksplugin leverer det til den korrekte node og til Pod'en.




  1. hvor i mysql klausul

  2. SQL Server Lock Escalation

  3. få værdi fra MySQL-database med PHP

  4. Sådan fungerer SQLite Upper()