Unable to connect tomcat container to mariadb database container in kubernetes?

5/5/2020

Tomcat and mariadb services are up and running and pinging was happening from tomcat service to mariadb service but not communicating from db to tomcat using ping command. attached my scripts for troubleshooting issue----------------------------- tomcat deployment

apiVersion: apps/v1
kind: Deployment
metadata:
  name: xyzapp-tomcat
spec:
  selector:
    matchLabels:
      app: xyzapp-tomcat
      tier: backend
      track: stable
  template:
    metadata:
      labels:
        app: xyzapp-tomcat
        tier: backend
        track: stable
    spec:
      containers:
        - name: xyzapp-tomcat
          image: xyz/xyz:tomcat
          env:
          - name: MYSQL_SERVICE_HOST
            value: "xyzapp-mariadb"
          - name: MYSQL_SERVICE_PORT
            value: "3306"
            #- name: DB_PORT_3306_TCP_ADDR
            #value: xyzapp-mariadb                  #service name of mysql
          - name: MYSQL_DATABASE
            value: xyzapp
          - name: MYSQL_USER
            value: student
          - name: MYSQL_PASSWORD
            value: student
          ports:
            - name: http
              containerPort: 8080

database deployment.yml

apiVersion: v1
kind: Service
metadata:
  name: xyzapp-mariadb
  labels:
    app: xyzapp
spec:
  ports:
    - port: 3306
  selector:
    app: xyzapp
    tier:  mariadb
  clusterIP: None
---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: xyzapp-mariadb
  labels:
    app: xyzapp
spec:
  selector:
    matchLabels:
      app: xyzapp
      tier:  mariadb
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: xyzapp
        tier:  mariadb
    spec:
      containers:
      - image:  mariadb
        name:  xyzapp-mariadb
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: password
        - name: MYSQL_DATABASE
          value: xyzapp
        - name: MYSQL_USER
          value: student
        - name: MYSQL_PASSWORD
          value: student
        args: ["--default-authentication-plugin=mysql_native_password"]
        ports:
        - containerPort: 3306
        volumeMounts:
        - name: mariadb-init
          mountPath: /docker-entrypoint-initdb.d
      volumes:
        - name: mariadb-init
          persistentVolumeClaim:
            claimName: xyzapp-initdb-pv-claim

tomcat logs:

05-May-2020 11:48:53.486 WARNING [main] org.apache.tomcat.util.scan.StandardJarScanner.processURLs Failed to scan [file:/usr/local/tomcat/lib/mysql-connector-java-8.0.20.jar] from classloader hierarchy

JDBC mapped context.xml:

<Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxTotal="100" maxIdle="30" maxWaitMillis="10000" username="$MYSQL_USER" password="$MYSQL_PASSWORD" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://$MYSQL_SERVICE_HOST:$MYSQL_SERVICE_PORT/$MYSQL_DATABASE"/>
-- satish nakirikanti
kubernetes
mysql
tomcat

0 Answers