#kubernetes
#kubernetes
Вопрос:
Я пытаюсь запустить задание cron в kubernetes, которому требуется доступ к базе данных. Это база данных yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
component: db
name: db
spec:
selector:
matchLabels:
component: db
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
component: db
spec:
containers:
- name: db
image: mysql:5.7
ports:
- containerPort: 3306
args:
- --transaction-isolation=READ-COMMITTED
- --binlog-format=ROW
- --max-connections=1000
- --bind-address=0.0.0.0
env:
- name: MYSQL_DATABASE
valueFrom:
secretKeyRef:
key: MYSQL_DATABASE
name: db-secrets
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
key: MYSQL_PASSWORD
name: db-secrets
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
key: MYSQL_ROOT_PASSWORD
name: db-secrets
- name: MYSQL_USER
valueFrom:
secretKeyRef:
key: MYSQL_USER
name: db-secrets
volumeMounts:
- mountPath: /var/lib/mysql
name: db-persistent-storage
restartPolicy: Always
volumes:
- name: db-persistent-storage
persistentVolumeClaim:
claimName: db-pvc
И это yaml для cronjob:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: cron
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: cron
image: iulbricht/shopware-status-tool:1.0.0
env:
- name: USERNAME
valueFrom:
secretKeyRef:
key: USERNAME
name: cron-secrets
- name: PASSWORD
valueFrom:
secretKeyRef:
key: PASSWORD
name: cron-secrets
- name: DATABASE_DSN
valueFrom:
secretKeyRef:
key: DATABASE_DSN
name: cron-secrets
- name: DHL_API_KEY
valueFrom:
secretKeyRef:
key: DHL_API_KEY
name: cron-secrets
- name: SHOP_API
valueFrom:
secretKeyRef:
key: SHOP_API
name: cron-secrets
restartPolicy: OnFailure
При запуске cronjob я всегда получаю следующее сообщение: default addr for network 'db:3306' unknown
. Строка подключения к mysql выглядит следующим образом: mysql://username:password@db:3306/shopware
Я использую кустомизацию, а db и cron находятся в пространстве имен save.
Кто-нибудь может помочь мне найти способ решить эту проблему?
Комментарии:
1. Это та же строка подключения, которую использует магазин. Поэтому я думаю, что да.
Ответ №1:
Не могли бы вы попробовать эту строку подключения
username:password@tcp(db:3306)/shopware
Комментарии:
1. Почти, правильная строка подключения была
username:password@tcp(db:3306)/shopware
. Но вы указали мне правильное направление, большое спасибо 🙂2. @Knerd Спасибо за быстрый ответ 🙂 Извините за префикс, обновил мой ответ на случай, если он понадобится другим. BR