I am running Kubernetes, which is enabled in the Docker Desktop application on my system. My application (Fusion AUTH) is running in pods, and I need to connect to a PostgreSQL database on my localhost. Both are installed on the same system, but I cannot establish a connection. I have also tried using the Docker bridge network.
For the database connection string, I attempted the following:
* Server=host.docker.internal;Database=yourdatabase;User Id=yourusername;Password=yourpassword;
* jdbc:postgresql://host.docker.internal:5432/yourdatabase?user=yourusername&password=yourpassword
* 127.0.0.1 kubernetes.docker.internal
* localhost
* host.docker.internal
Blow my yaml file
# Here my pod deployment file
apiVersion: apps/v1
kind: Deployment
metadata:
name: fusionauth # Deployment for FusionAuth application
namespace: fusionauth
spec:
replicas: 1 # Number of FusionAuth replicas
selector:
matchLabels:
app: fusionauth # Label to identify the FusionAuth deployment
template:
metadata:
labels:
app: fusionauth # Labels for the pods
spec:
containers:
- name: fusionauth
image: fusionauth/fusionauth-app:latest # Latest FusionAuth image
env:
- name: DATABASE_URL
value: jdbc:postgresql://host.docker.internal:5432/postgressql # Database connection string
- name: DATABASE_USERNAME
value: postgresadmin # PostgreSQL username
- name: DATABASE_PASSWORD
value: PGSqlAdm1n@$2024 # PostgreSQL password
- name: DATABASE_DRIVER_CLASS_NAME
value: org.postgresql.Driver # PostgreSQL driver class name
ports:
- containerPort: 9011 # Exposing FusionAuth port
resources:
requests:
memory: "512Mi" # Minimum memory request
cpu: "500m" # Minimum CPU request
limits:
memory: "1Gi" # Maximum memory limit
cpu: "1" # Maximum CPU limit
# Here k8s service
apiVersion: v1
kind: Service
metadata:
name: fusionauth # Service for FusionAuth
namespace: fusionauth
spec:
ports:
- port: 9011 # Port to access FusionAuth
targetPort: 9011 # Target port on the FusionAuth pod
selector:
app: fusionauth
# here k8s ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: fusionauth-ingress
namespace: fusionauth
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: fusionauth
port:
number: 9011
Blow my yaml file
# Here my pod deployment file
apiVersion: apps/v1
kind: Deployment
metadata:
name: fusionauth # Deployment for FusionAuth application
namespace: fusionauth
spec:
replicas: 1 # Number of FusionAuth replicas
selector:
matchLabels:
app: fusionauth # Label to identify the FusionAuth deployment
template:
metadata:
labels:
app: fusionauth # Labels for the pods
spec:
containers:
- name: fusionauth
image: fusionauth/fusionauth-app:latest # Latest FusionAuth image
env:
- name: DATABASE_URL
value: jdbc:postgresql://host.docker.internal:5432/postgressql # Database connection string
- name: DATABASE_USERNAME
value: postgresadmin # PostgreSQL username
- name: DATABASE_PASSWORD
value: PGSqlAdm1n@$2024 # PostgreSQL password
- name: DATABASE_DRIVER_CLASS_NAME
value: org.postgresql.Driver # PostgreSQL driver class name
ports:
- containerPort: 9011 # Exposing FusionAuth port
resources:
requests:
memory: "512Mi" # Minimum memory request
cpu: "500m" # Minimum CPU request
limits:
memory: "1Gi" # Maximum memory limit
cpu: "1" # Maximum CPU limit
# Here k8s service
apiVersion: v1
kind: Service
metadata:
name: fusionauth # Service for FusionAuth
namespace: fusionauth
spec:
ports:
- port: 9011 # Port to access FusionAuth
targetPort: 9011 # Target port on the FusionAuth pod
selector:
app: fusionauth
# here k8s ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: fusionauth-ingress
namespace: fusionauth
spec:
ingressClassName: nginx
rules:
- http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: fusionauth
port:
number: 9011