Вашите YAML файлове са правилни. Пресъздадох цялата среда, спомената във въпроса, и имам здрав Tomcat с приложението в състояние Running.
Ако някой също иска да го тества, потребителско име/парола на мениджъра на Tomcat са:
username="the-manager" password="needs-a-new-password-here"
В регистрационния файл на tomcat не бяха открити СЕВЕРИ грешки, получих отговора от приложението:
{"text":"Data-core"}
което изглежда като правилен отговор. Имам и празната последователност на таблицата в базата данни на Mysql.
Предполагам, че сте имали някакъв проблем със свързаността, вероятно причинен от неправилна работа на мрежовата добавка на Kubernetes (Calico/Flannel/и т.н.)
Как да го отстраните:
- За да проверите настройката, всички модули могат да бъдат поставени на един и същ възел, като се създаде PV и за двете разгръщания там.
-
За да тестваме свързаността към ресурсите на Mysql или Tomcat, можем да изпълним техните модули и да стартираме тестове с помощта на прости команди:
$ kubectl exec mysql-pod-name -it -- mysql -hlocalhost -uroot -proot data-core --execute="show tables;"
или просто стартирайте допълнителен модул, за да проверите дали услугите сочат правилно към mysql pod:
$ kubectl run mysql-client --rm -it --image mysql --restart=Never --command -- mysql -hmysql -uroot -proot data-core --execute="show tables;"
За tomcat pod можем да използваме следните команди, за да проверим потребителските пароли и отговора на приложението:
$ 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/
или използвайте отделна капсула с curl
или wget
за да проверите дали Tomcat Service и NodePort работят добре:
$ 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/
Като използвате IP адреси на различни възли, можете да проверите и свързаността към клъстера, тъй като услугата NodePort отваря един и същ порт на всички възли на клъстер и след това iptables правила за възлите пренасочва трафика към IP на Pod.
Ако pod се намира на различния възел, Flannel /Калико/и др. мрежовият плъгин го доставя до правилния възел и до Pod.