首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >升级气流1.11至1.15时出错

升级气流1.11至1.15时出错
EN

Stack Overflow用户
提问于 2022-07-21 14:52:36
回答 1查看 282关注 0票数 1

嗨,我计划把我的气流版本从1.11升级到部署在OpenShift中的1.15。由于DAG的数量非常多,所以我计划升级新娘版本,而不是使用气流2.2

我所得到的错误很可能是由于fernet键造成的:

代码语言:javascript
复制
ERROR: The `secret_key` setting under the webserver config has an insecure value - Airflow has 
failed safe and refuses to start. Please change this value to a new, per-environment,
 randomly generated string, for example using this command `openssl rand -hex 30`

早些时候,我使用了静态Fernet键,YAML文件如下所示:

代码语言:javascript
复制
apiVersion:v1
kind:Secret
metadata:
    name : airflow-secret
    namespace : CUSTOM_NAMESPACE
    labels: 
        app:airflow
type: Opaque
stringData:
   fernet-key: my_fernet_key

我的Python版本: 3.8我的气流网络服务器Config:

代码语言:javascript
复制
apiVersion: v1
kind: DeploymentConfig
metadata:
  name: airflow-webserver
  namespace: CUSTOM_NAMESPACE
  labels:
    app: airflow
spec:
  strategy: 
    type: Rolling
  trigger: 
    - type : ConfigChange
    - type : ImageChange
      ImageChangeParams: 
        automatic: true
        containerNames:
        - airflow-webserver
        from: 
          kind: ImageStreamTag
          namespace: CUSTOM_NAMESPACE
  replicas: 1
  revisionHistoryLimit : 10
  paused: false
  selector :
    app : airflow
    deploymentconfig : airflow-webserver
  template:
    metadata:
      labels:
        name: airflow-webserver
        app: airflow
        deploymentconfig : airflow-webserver
    spec: 
      volumes: 
      - name: airflow-dags
      persistentVolumeClaims:
        claimName: airflow-dags
    containers:
    - name:  airflow-webserver
      image:  airflow:latest
      resources:  
        limits:
          memory: 4Gi
      env:
        - name : FERNET_KEY
          valueFrom:
            secretKeyRef: 
              name: airflow-secrets
              key : fernet-key
        - name : SERVICE_ACCOUNT_NAME
          valueFrom:
            secretKeyRef:
              name: airflow-service-account
              key : service-account-name
      ports:
        - containerPort: 8080
          protocol: TCP

      volumeMounts:
        - name: airflow-dags
          mountPath: /opt/airflow/dags
        - name: airflow-logs
          mountPath: /opt/airflow/logs

我的理解是,我们需要在fernet键中以某种方式提供动态值,但就我的情况而言,它是静态的,任何解决错误的可能方法。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-31 18:38:45

主要问题是在airflow.cfg中存储了默认值,即

代码语言:javascript
复制
secret_key = temporary_value

我们可以通过查看错误消息来生成secret_key

代码语言:javascript
复制
openssl rand -hex 30 

假设值为-> 94b9d6124ff2e9a5783d94dc7aa3641ebb8929bdbbf2f3989402f9e400ac

我们需要将该值放入secret_key中的airflow.cfg中。

代码语言:javascript
复制
secret_key = 94b9d6124ff2e9a5783d94dc7aa3641ebb8929bdbbf2f3989402f9e400ac
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73068358

复制
相关文章

相似问题

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