【发布时间】:2021-12-28 15:53:06
【问题描述】:
我尝试在 corp OpenShift 集群上部署 Apache Airflow,但遇到了问题:
Traceback (most recent call last):
File "/home/airflow/.local/bin/airflow", line 5, in <module>
from airflow.__main__ import main
ModuleNotFoundError: No module named 'airflow'
我在airflow github 中发现了类似的问题。这个问题似乎与 UID\GID 有关。但在airflow docs 中说:
Airflow 图像与 Open-Shift 兼容,这意味着您可以使用随机用户 ID 和组 id 0(root)启动它。
下面是我的 OpenShift 模板示例。在这里,我尝试运行 airflow kerberos 来刷新 kerberos 令牌。我知道,这不是一个“整体气流”,但我想命令 airflow kerberos 应该在这个容器中工作,而无需其他气流服务。
apiVersion: v1
kind: Pod
metadata:
name: airflow-kerberos
labels:
name: ${APPLICATION_NAME}
spec:
volumes:
- name: keytab-shared-volume
persistentVolumeClaim:
claimName: ${PERSISTENT_VOLUME_KRB5}
- name: airflow-dags
persistentVolumeClaim:
claimName: ${PERSISTENT_VOLUME_CLAIM_DAG}
- name: airflow-logs
persistentVolumeClaim:
claimName: ${PERSISTENT_VOLUME_CLAIM_LOG}
containers:
- name: airflow-kerberos
image: apache/airflow:2.2.3
env:
- name: AIRFLOW__KERBEROS__KEYTAB
value: ${KEYTAB_FILE}
imagePullPolicy: Always
resources:
requests:
cpu: 1
memory: "512Mi"
volumeMounts:
- name: keytab-shared-volume
mountPath: ${KRB5_SHARED_DIR}
- name: airflow-dags
mountPath: "/opt/airflow/dags"
- name: airflow-logs
mountPath: "/opt/airflow/logs"
command: ["sh", "-c", "airflow kerberos"]
dnsPolicy: ClusterFirst
imagePullSecrets:
- name: docker-hub-secret
restartPolicy: Always
serviceAccount: default
【问题讨论】:
-
所以,它似乎是不正确的命令。我应该使用
args: ["kerberos"]而不是command: ["sh", "-c", "airflow kerberos"]
标签: openshift airflow kerberos