Hi all. Deploying a Django application to Kubernetes. When I want to perform migrations in a container. An error appears that dns “pg” does not resolve. How can I fix this?
/usr/local/lib/python3.9/site-packages/django/core/management/commands/makemigrations.py:105: RuntimeWarning: Got an error checking a consistent migration history performed for database connection ‘default’: could not translate host name “pg” to address: Temporary failure in name resolution
kubeadm version: &version.Info{Major:“1”, Minor:“29”, GitVersion:“v1.29.9”, GitCommit:“114a1f58037bd70f90d9e630e591c5e52dd9b298”, GitTreeState:“clean”, BuildDate:“2024-09-11T20:27:20Z”, GoVersion:“go1.22.6”, Compiler:“gc”, Platform:“linux/amd64”}
root@kube-master:/home/dott/job# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04
Codename: jammy
root@kube-master:/home/dott/job#
My manifest
> root@kube-master:/home/dott/job# ls
> app-deploy.yaml app-migrations1.yaml pg-deploy.yaml pg-service.yaml
>
> root@kube-master:/home/dott/job# nano app-deploy.yaml
> apiVersion: apps/v1
> kind: Deployment
> metadata:
> name: ktswebinar
> labels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: web
> spec:
> replicas: 1
> selector:
> matchLabels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: web
> template:
> metadata:
> labels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: web
> spec:
> containers:
> - name: ktswebinar
> image: igorcoding/ktswebinar:1.0.4
> imagePullPolicy: IfNotPresent
> ports:
> - containerPort: 8000
> name: http
> env:
> - name: DATABASE_URL
> value: postgresql://postgres:gYwOKJZaR0do8TUUgPS9@pg:5432/postgres
>
>
> root@kube-master:/home/dott/job# nano app-migrations1.yaml
> apiVersion: batch/v1
> kind: Job
> metadata:
> name: migrations
> labels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: migrations
> spec:
> activeDeadlineSeconds: 120
> template:
> metadata:
> labels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: migrations
> spec:
> restartPolicy: Never
> containers:
> - name: migrations
> image: igorcoding/ktswebinar:1.0.4
> imagePullPolicy: IfNotPresent
> command:
> - python
> - manage.py
> - migrate
> env:
> - name: DATABASE_URL
> value: postgresql://postgres:gYwOKJZaR0do8TUUgPS9@pg:5432/postgres
>
>
> root@kube-master:/home/dott/job# nano pg-deploy.yaml
> apiVersion: apps/v1
> kind: Deployment
> metadata:
> name: pg
> labels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: pg
> spec:
> replicas: 1
> selector:
> matchLabels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: pg
> template:
> metadata:
> labels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: pg
> spec:
> containers:
> - name: pg
> image: postgres:14
> imagePullPolicy: IfNotPresent
> ports:
> - containerPort: 5432
> name: pg
> env:
> - name: POSTGRES_PASSWORD
> value: gYwOKJZaR0do8TUUgPS9
>
>
>
> root@kube-master:/home/dott/job# nano pg-service.yaml
>
>
> apiVersion: v1
> kind: Service
> metadata:
> name: pg
> labels:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: pg
> spec:
> type: ClusterIP
> ports:
> - port: 5432
> targetPort: pg
> protocol: TCP
> name: pg
> selector:
> app.kubernetes.io/name: ktswebinar
> app.kubernetes.io/component: pg
>
>
> root@kube-master:/home/dott/job# kubectl -n ktswebinar get pods
> NAME READY STATUS RESTARTS AGE
> ktswebinar-6b7c46b449-286rr 1/1 Running 0 42s
> pg-56c9d89c69-mljlh 1/1 Running 0 116s