Код: Выделить всё
Connection to localhost:5432 refused.
Check that the hostname and port are correct and that the postmaster
is accepting TCP/IP connections.
Код: Выделить всё
# This will expose database to other microservices
apiVersion: v1
kind: Service
metadata:
name: postgres-service
labels:
app: postgres
spec:
ports:
- port: 5432
selector:
app: postgres
clusterIP: None
Код: Выделить всё
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres-deployment
labels:
app: postgres
spec:
selector:
matchLabels:
app: postgres
template:
metadata:
name: postgres-pod
labels:
app: postgres
spec:
containers:
- name: postgres-container
image: postgres:latest
env:
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: postgres-credentials
key: user
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgres-credentials
key: password
- name: POSTGRES_HOST
valueFrom:
configMapKeyRef:
name: postgres-config
key: host
ports:
- containerPort: 5432
name: postgres
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgres-persistent-storage
volumes:
- name: postgres-persistent-storage
persistentVolumeClaim:
claimName: postgres-pv-claim
Код: Выделить всё
# PVC to store the data of db
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-pv-claim
labels:
app: postgres
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi # Modify as needed
Код: Выделить всё
apiVersion: v1
kind: Secret
metadata:
name: postgres-credentials
data:
user: cG9zdGdyZXM=
password: cG9zdGdyZXM=
Код: Выделить всё
apiVersion: v1
kind: ConfigMap
metadata:
name: postgres-config
data:
host: "postgres-service"
Код: Выделить всё
apiVersion: v1
kind: Service
metadata:
name: task-app-service
spec:
ports:
- protocol: TCP
port: 8081 # Port of the service, user by clients
targetPort: 8081 # Port of the Spring application
selector:
app: task-app
type: LoadBalancer
Код: Выделить всё
apiVersion: apps/v1
kind: Deployment
metadata:
name: task-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: task-app
template:
metadata:
name: task-pod
labels:
app: task-app
spec:
containers:
- name: task-container
image: renvins/task-app:2.0
ports:
- containerPort: 8081
imagePullPolicy: Always
env:
- name: POSTGRES_HOST
valueFrom:
configMapKeyRef:
name: postgres-config
key: host
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: postgres-credentials
key: user
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: postgres-credentials
key: password
- name: SPRING_DATASOURCE_URL
value: jdbc:postgresql://localhost:5432/stm_db
- name: SPRING_DATASOURCE_USERNAME
value: postgres
- name: SPRING_DATASOURCE_PASSWORD
value: admin
Код: Выделить всё
spring:
sql:
init:
mode: never # Database initialization should typically be performed outside of Spring lifecycle
application:
name: scalable-task-manager-task-app
datasource:
driver-class-name: org.postgresql.Driver
url: jdbc:postgresql://postgres-service:5432/il_tuo_database
username: ${POSTGRES_USER}
password: ${POSTGRES_PASSWORD}
jpa:
open-in-view: false
hibernate:
ddl-auto: update
naming: # To prevent Hibernate from naming columns
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
properties:
hibernate.temp.use_jdbc_metadata_defaults: false
database-platform: org.hibernate.dialect.PostgreSQLDialect
springdoc:
api-docs:
enabled: true
swagger-ui:
url: /api/swagger.yml
server:
port: 8081
user:
service:
url: http://localhost:8080
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-with-k8s