首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bitnami气流调度器不能连接数据库,而webserve可以连接,即使它们具有相同的属性?

Bitnami气流调度器不能连接数据库,而webserve可以连接,即使它们具有相同的属性?
EN

Stack Overflow用户
提问于 2022-05-08 09:32:28
回答 1查看 503关注 0票数 1

我想配置openshift上的气流。

我在openshift上设置数据库,如下所示:

代码语言:javascript
复制
kind: Service
apiVersion: v1
metadata:
  name: airflow-database
  namespace: ersin-poc
spec:
  ports:
    - name: 5432-tcp
      protocol: TCP
      port: 5432
      targetPort: 5432
  selector:
    deployment: airflow-database
  type: ClusterIP
  sessionAffinity: None
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack   

我的数据库部署如下:

代码语言:javascript
复制
kind: Deployment
apiVersion: apps/v1
metadata:
  name: airflow-database
  namespace: ersin-poc 
labels:
  deployment: airflow-database
spec:
  replicas: 1
  selector:
    matchLabels:
      deployment: airflow-database
  template:
    metadata:
      creationTimestamp: null
      labels:
        deployment: airflow-database
    spec:
      volumes:
        - name: generic
          persistentVolumeClaim:
            claimName: generic
        - name: empty1
          emptyDir: {}
      containers:
        - resources: {}
          name: airflow-database
          env:
            - name: POSTGRESQL_USERNAME
              value: 'bn_airflow'
            - name: POSTGRESQL_PASSWORD
              value: 'bitnami1'
            - name: POSTGRESQL_DATABASE
              value: 'bitnami_airflow'
          ports:
            - containerPort: 5432
              protocol: TCP
          volumeMounts:
            - name: generic
              mountPath: /bitnami/postgresql/
          image: >-
            bitnami/postgresql:latest
          hostname: airflow-database  

我可以从我的can服务器连接这个db,如下所示:

代码语言:javascript
复制
kind: Deployment
apiVersion: apps/v1
metadata:
  name: airflow-webserver
  namespace: ersin-poc 
labels:
  deployment: airflow-webserver
spec:
  replicas: 1
  selector:
    matchLabels:
      deployment: airflow-webserver
  template:
    metadata:
      creationTimestamp: null
      labels:
        deployment: airflow-webserver
    spec:
      volumes:
        - name: generic
          persistentVolumeClaim:
            claimName: generic
        - name: empty1
          emptyDir: {}
      containers:
        - resources: {}
          name: airflow-webserver
          env:
            - name: AIRFLOW_HOME
              value: /home/appuser
            - name: USER
              value: appuser
            - name: AIRFLOW_FERNET_KEY
              value: '46BKJoQYlPPOexq0OhDZnIlNepKFf87WFwLbfzqDDho='
            - name: AIRFLOW_SECRET_KEY
              value: 'a25mQ1FHTUh3MnFRSk5KMEIyVVU2YmN0VGRyYTVXY08='
            - name: AIRFLOW_EXECUTOR
              value: 'CeleryExecutor'
            - name: AIRFLOW_DATABASE_NAME
              value: 'bitnami_airflow'
            - name: AIRFLOW_DATABASE_USERNAME
              value: 'bn_airflow'
            - name: AIRFLOW_DATABASE_PASSWORD
              value: 'bitnami1'
            - name: AIRFLOW_LOAD_EXAMPLES
              value: 'yes'
            - name: AIRFLOW_PASSWORD
              value: 'bitnami123'
            - name: AIRFLOW_USERNAME
              value: 'user'
            - name: AIRFLOW_EMAIL
              value: 'user@example.com'
            - name: AIRFLOW_DATABASE_HOST
              value: 'airflow-database'
            - name: AIRFLOW_DATABASE_PORT_NUMBER
              value: '5432'
          ports:
            - containerPort: 8080
              protocol: TCP
          volumeMounts:
            - name: generic
              mountPath: /home/appuser
            - name: generic
              mountPath: /home/appuser/logs/
            - name: generic
              mountPath: /home/appuser/dags/
          image: >-
            bitnami/airflow:latest
          hostname: airflow-webserver

但是,当我尝试使用airflow-scheduler时,它会产生错误:

airflow-scheduler 09:29:43.31 INFO ==> Trying to connect to the database server airflow-scheduler 09:30:47.42 ERROR ==> Could not connect to the database

我的调度程序yaml是:

代码语言:javascript
复制
kind: Deployment
apiVersion: apps/v1
metadata:
  name: airflow-scheduler
  namespace: ersin-poc 
labels:
  deployment: airflow-scheduler
spec:
  replicas: 1
  selector:
    matchLabels:
      deployment: airflow-scheduler
  template:
    metadata:
      labels:
        deployment: airflow-scheduler
    spec:
      volumes:
        - name: generic
          persistentVolumeClaim:
            claimName: generic
        - name: empty1
          emptyDir: {}
      containers:
        - resources: {}
          name: airflow-scheduler
          env:
            - name: AIRFLOW_HOME
              value: /home/appuser
            - name: USER
              value: appuser
            - name: AIRFLOW_FERNET_KEY
              value: '46BKJoQYlPPOexq0OhDZnIlNepKFf87WFwLbfzqDDho='
            - name: AIRFLOW_SECRET_KEY
              value: 'a25mQ1FHTUh3MnFRSk5KMEIyVVU2YmN0VGRyYTVXY08='
            - name: AIRFLOW_EXECUTOR
              value: 'CeleryExecutor'
            - name: AIRFLOW_DATABASE_NAME
              value: 'bitnami_airflow'
            - name: AIRFLOW_DATABASE_USERNAME
              value: 'bn_airflow'
            - name: AIRFLOW_DATABASE_PASSWORD
              value: 'bitnami1'
            - name: AIRFLOW_DATABASE_HOST
              value: 'airflow-database'
            - name: AIRFLOW_DATABASE_PORT_NUMBER
              value: '5432'
            - name: AIRFLOW_WEBSERVER_HOST
              value: 'airflow-webserver'
            - name: AIRFLOW_WEBSERVER_PORT_NUMBER
              value: '8080'
            - name: REDIS_HOST
              value: 'airflow-redis'
            - name: REDIS_PORT_NUMBER
              value: '6379'
          ports:
            - containerPort: 8080
              protocol: TCP
          volumeMounts:
            - name: generic
              mountPath: /home/appuser
            - name: generic
              mountPath: /home/appuser/logs/
            - name: generic
              mountPath: /home/appuser/dags/
          image: >-
            bitnami/airflow-scheduler:latest
          hostname: airflow-scheduler 

所以我不明白为什么我得到这个错误与相同的属性?

提前感谢

编辑

我尝试在调度程序pod中使用这个命令来查看是否可以连接到db:

代码语言:javascript
复制
psql -h airflow-database -p 5432 -U bn_airflow -d bitnami_airflow -W

pass: bitnami1

代码语言:javascript
复制
select * from public.ab_user;

是的,我可以。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-20 12:02:41

经过大量搜索后,我决定使用apache/气流图像来实现这个功能。(posgresql和redis仍然是肉桂--这并不重要)

你可以在openshift上看到所有关于气流的文件。

https://github.com/ersingulbahar/airflow_on_openshift

它现在像预期的那样工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72159704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档