Airflow¶
释放
# 下载至本地资源包
helm install airflow ./airflow-1.18.0.tgz --namespace airflow -f values.yaml
# uninstall
helm list -n airflow
helm -n airflow uninstall airflow
# 清除环境
kubectl -n airflow get all,pvc,pv,job,rs,secret
kubectl -n airflow delete --force pod/airflow-redis-0 pod/airflow-run-airflow-migrations-7xh65
kubectl -n airflow delete job.batch/airflow-run-airflow-migrations
kubectl -n airflow delete persistentvolumeclaim/data-airflow-postgresql-0
kubectl -n airflow delete secret/airflow-broker-url secret/airflow-fernet-key secret/airflow-redis-password
一、install¶
helm repo add apache-airflow https://airflow.apache.org/
helm repo update apache-airflow
helm search repo airflow
helm show values apache-airflow/airflow \
--version 1.18.0 > airflow.yaml-1.18.0-default
helm install airflow apache-airflow/airflow \
-f airflow.yaml-1.18.0 \
-n airflow \
--version 1.18.0
kubectl -n airflow port-forward svc/airflow-api-server 8080:8080
helm show values apache-airflow/airflow \
--version 1.21.0 > airflow.yaml-1.21.0-default
1.1 StorageClass¶
# 查看是否有默认 sc,并设置默认 sc
kubectl get sc
kubectl patch storageclass local-path \
-p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
# 查看是否有默认 sc,并取消默认 sc
kubectl get sc -o yaml | grep is-default-class
kubectl patch storageclass old-sc-name \
-p '{"metadata":{"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
完整 StorageClass 和 PersistentVolume
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: airflow-postgres-sc
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: airflow-postgresql-pv
spec:
capacity:
storage: 10Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: airflow-postgres-sc
local:
path: /data1/lib/airflow/postgres
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- cn-shanghai.10.160.11.184