我正面臨著一些問題,我認為是我的.yaml檔案。 Docker-compose作業正常,容器也按預期運行。 但在kompose轉換檔案后,在k8s上沒有產生預期的結果,我得到com.mysql.cj.jdbc.exceptions.CommunicationsException。通信鏈接失敗。
在docker容器中沒有現有的容器,并且在kompose轉換之前使用了docker-compose down。
mysql pod作業正常,并且能夠訪問。 然而,spring卻無法連接到它....
在docker-compose.yaml中
version: '3'
服務:
mysql-docker-container:
image: mysql:latest
環境:
- MYSQL_ROOT_PASSWORD=1
- MYSQL_DATABASE=db_fromSpring
- MYSQL_USER=springuser
- MYSQL_PASSWORD=ThePassword
networks:
- 后端
埠:
- 3307:3306
卷數:
- data/mysql
spring-boot-jpa-app:
command: mvn clean install DskipTests
image: bnsbns/spring-boot-jpa-image
取決于_on:
- mysql-docker-container
環境:
- spring.datasource.url=jdbc:mysql://mysql-docker-tainer:3306/db_fromSpring
- spring.datasource.username=springuser[/span
- spring.datasource.password=ThePassword[/span
networks:
- 后端
埠:
- "8087:8080"/span>
卷軸:
- /data/spring-boot-app
網路:
后端:
錯誤:
2021-09-15 04:37:47. 542 ERROR 1 -- [ main] com. zaxxer.hikari.pool。 HikariPool : HikariPool-1 - ExceptionException during pool initialization.
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
backend-network.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: NetworkPolicy
creationTimestamp: null
name: backend
規格:
地址:
- from:
- podSelector:/span>
matchLabels:
io.kompose.network/backend: "true"/span>
podSelector:/span>
matchLabels:/span>
io.kompose.network/backend: "true"/span>
mysql-docker-container-claim0-persistentvolumeclaim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
元資料:
creationTimestamp: null
標簽:
io.kompose.service: mysql-docker-container-claim0
name: mysql-docker-container-claim0
規格:
accessModes:/span>
- ReadWriteOnce
資源:
請求:
存盤: 100Mi
status: {}。
mysql-docker-container-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata: Deployment
注釋:
kompose.cmd: /snap/kompose/19/kompose-linux-amd64 Convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
標簽:
io.kompose.service: mysql-docker-tainer
name: mysql-docker-container
規格:
replicas: 1
選擇器:
matchLabels:/span>
io.kompose.service: mysql-docker-tainer
戰略:
type: Recreate
模板:
metadata: metadata:
注釋:
kompose.cmd: /snap/kompose/19/komose-linux-amd64 convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
標簽:
io.kompose.network/backend: "true"/span>
io.kompose.service: mysql-docker-container。
spec:
容器:
- env:
- name: MYSQL_DATABASE[/span
值: db_fromSpring
- name: MYSQL_PASSWORD
value: ThePassword
- name: MYSQL_ROOT_PASSWORD
value: "1"/span>
- name:/span> MYSQL_USER
值: springuser
image: mysql:latest
imagePullPolicy: ""
name: mysql-docker-container
埠:
- containerPort: 3306
resources: {}。
volumeMounts:
- mountPath: data/mysql
name: mysql-docker-container-claim0
restartPolicy: Always
serviceAccountName: ""/span>
卷軸:
- name:/span> mysql-docker-container-claim0
persistentVolumeClaim:
claimName: mysql-docker-tainer-claim0
status: {}。
mysql-docker-container-service.yaml
apiVersion: v1
kind: Service
metadata: 服務
注釋:
kompose.cmd: /snap/kompose/19/kompose-linux-amd64 Convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
標簽:
io.kompose.service: mysql-docker-tainer
name: mysql-docker-container
規格:
埠:
- name: "3307"/span>
port: 3307
targetPort: 3306
選擇器:
io.kompose.service: mysql-docker-tainer
狀態:
loadBalancer: {}。
springboot-app-jpa-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata: Deployment
注釋:
kompose.cmd: /snap/kompose/19/kompose-linux-amd64 Convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
標簽:
io.kompose.service: spring-boot-jpa-app
name: spring-boot-jpa-app
規格:
replicas: 1
選擇器:
matchLabels:/span>
io.kompose.service: spring-boot-jpa-app
戰略:
type: Recreate
模板:
metadata: metadata:
注釋:
kompose.cmd: /snap/kompose/19/komose-linux-amd64 convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
標簽:
io.kompose.network/backend: "true"/span>
io.kompose.service: spring-boot-jpa-app
spec:
容器:
- args:/span>
- mvn
- clean
-install
- DskipTests
env:/span>
- name: spring.datasource.password
value: ThePassword
- name:/span> spring.datasource.url
value: jdbc:mysql://mysql-docker-container:3306/db_fromSpring
- name: spring.datasource.username
值: springuser
image: bnsbns/spring-boot-jpa-image
imagePullPolicy: ""/span>
name: spring-boot-jpa-app
埠:
- containerPort: 8080[/span
resources: {}。
volumeMounts:
- mountPath: data/spring-boot-app
name: spring-boot-jpa-app-claim0
restartPolicy: Always
serviceAccountName: ""/span>
卷軸:
- name:/span> spring-boot-jpa-app-claim0
persistentVolumeClaim:
claimName: spring-boot-jpa-app-claim0
status: {}。
springboot-jpa-app-persistence-claim.yaml
apiVersion: v1
kind: PersistentVolumeClaim
元資料:
creationTimestamp: null
標簽:
io.kompose.service: spring-boot-jpa-app-claim0
name: spring-boot-jpa-app-claim0
規格:
accessModes:/span>
- ReadWriteOnce
資源:
請求:
存盤: 100Mi
status: {}。
springboot-app-service.yaml
apiVersion: v1
kind: Service
metadata: 服務
注釋:
kompose.cmd: /snap/kompose/19/kompose-linux-amd64 Convert
kompose.version: 1.21.0 (992df58d8)
creationTimestamp: null
標簽:
io.kompose.service: spring-boot-jpa-app
name: spring-boot-jpa-app
規格:
埠:
- name: "8087"/span>
port: 8087
targetPort: 8080
選擇器:
io.kompose.service: spring-boot-jpa-app
狀態:
loadBalancer: {}。
gohm'c發布的解決方案是,我的埠不正確。
接下來面對這個問題,我是否需要特定的集群/負載?
$ kubectl expose deployment spring-boot-jpa-app --type=NodePort 來自服務器的錯誤(AlreadyExists):服務 "spring-boot-jpa-app "已經存在
。minikube service spring-boot-jpa-app
|-----------|---------------------|-------------|--------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|---------------------|-------------|--------------|
| default | spring-boot-jpa-app | | No node port |
|-----------|---------------------|-------------|--------------|
| |
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/319489.html
標籤:
