无法移过 1 个 pod 具有未绑定的即时 PersistentVolumeClaims
Failed to move past 1 pod has unbound immediate PersistentVolumeClaims
我是 Kubernetes 的新手,正在尝试使用 helm 图表让 apache 气流工作。经过近一周的努力,我无处可去 - 甚至无法让 apache 气流文档中提供的那个工作。我使用 Pop OS 20.04 和 microk8s.
当我运行这些命令时:
kubectl create namespace airflow
helm repo add apache-airflow https://airflow.apache.org
helm install airflow apache-airflow/airflow --namespace airflow
helm 安装在五分钟后超时。
kubectl get pods -n airflow
显示此列表:
NAME READY STATUS RESTARTS AGE
airflow-postgresql-0 0/1 Pending 0 4m8s
airflow-redis-0 0/1 Pending 0 4m8s
airflow-worker-0 0/2 Pending 0 4m8s
airflow-scheduler-565d8587fd-vm8h7 0/2 Init:0/1 0 4m8s
airflow-triggerer-7f4477dcb6-nlhg8 0/1 Init:0/1 0 4m8s
airflow-webserver-684c5d94d9-qhhv2 0/1 Init:0/1 0 4m8s
airflow-run-airflow-migrations-rzm59 1/1 Running 0 4m8s
airflow-statsd-84f4f9898-sltw9 1/1 Running 0 4m8s
airflow-flower-7c87f95f46-qqqqx 0/1 Running 4 4m8s
然后当我运行下面的命令时:
kubectl describe pod airflow-postgresql-0 -n airflow
我得到以下信息(根据事件进行了调整):
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 58s (x2 over 58s) default-scheduler 0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims.
然后我使用以下命令删除了命名空间
kubectl delete ns airflow
此时,pods 的终止卡住了。然后我在另一个终端调出代理:
kubectl proxy
然后发出以下命令强制删除命名空间及其所有 pods 和资源:
kubectl get ns airflow -o json | jq '.spec.finalizers=[]' | curl -X PUT http://localhost:8001/api/v1/namespaces/airflow/finalize -H "Content-Type: application/json" --data @-
然后我使用以下命令删除了 PVC:
kubectl delete pvc --force --grace-period=0 --all -n airflow
你又卡住了,所以我不得不发出另一个命令来强制删除:
kubectl patch pvc data-airflow-postgresql-0 -p '{"metadata":{"finalizers":null}}' -n airflow
此时 PVC 被终止,这两个命令 return 没有:
kubectl get pvc -n airflow
kubectl get all -n airflow
然后重启机器,再次执行helm install(使用本题第一节的first和last命令),结果还是一样
然后我执行了以下命令(使用我在此处找到的建议):
kubectl describe pvc -n airflow
我得到以下输出(我正在发布 PostgreSQL 的事件部分):
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 2m58s (x42 over 13m) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
所以我的假设是我需要提供存储 class 作为 values.yaml
的一部分
我的理解对吗?如何在 values.yaml?
中提供所需的(以及什么值)
如果你用helm安装,你可以用helm delete airflow -n airflow
卸载。
这是一种使用默认值为 测试 目的安装气流的方法:
生成清单helm template airflow apache-airflow/airflow -n airflow > airflow.yaml
用你喜欢的编辑器打开“airflow.yaml”,将所有“volumeClaimTemplates”替换为emptyDir。示例:
创建命名空间并安装:
kubectl create namespace airflow
kubectl apply -f airflow.yaml --namespace airflow
如果需要,您可以 从 pods 中取出文件。
删除kubectl delete -f airflow.yaml --namespace airflow
.
我是 Kubernetes 的新手,正在尝试使用 helm 图表让 apache 气流工作。经过近一周的努力,我无处可去 - 甚至无法让 apache 气流文档中提供的那个工作。我使用 Pop OS 20.04 和 microk8s.
当我运行这些命令时:
kubectl create namespace airflow
helm repo add apache-airflow https://airflow.apache.org
helm install airflow apache-airflow/airflow --namespace airflow
helm 安装在五分钟后超时。
kubectl get pods -n airflow
显示此列表:
NAME READY STATUS RESTARTS AGE
airflow-postgresql-0 0/1 Pending 0 4m8s
airflow-redis-0 0/1 Pending 0 4m8s
airflow-worker-0 0/2 Pending 0 4m8s
airflow-scheduler-565d8587fd-vm8h7 0/2 Init:0/1 0 4m8s
airflow-triggerer-7f4477dcb6-nlhg8 0/1 Init:0/1 0 4m8s
airflow-webserver-684c5d94d9-qhhv2 0/1 Init:0/1 0 4m8s
airflow-run-airflow-migrations-rzm59 1/1 Running 0 4m8s
airflow-statsd-84f4f9898-sltw9 1/1 Running 0 4m8s
airflow-flower-7c87f95f46-qqqqx 0/1 Running 4 4m8s
然后当我运行下面的命令时:
kubectl describe pod airflow-postgresql-0 -n airflow
我得到以下信息(根据事件进行了调整):
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 58s (x2 over 58s) default-scheduler 0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims.
然后我使用以下命令删除了命名空间
kubectl delete ns airflow
此时,pods 的终止卡住了。然后我在另一个终端调出代理:
kubectl proxy
然后发出以下命令强制删除命名空间及其所有 pods 和资源:
kubectl get ns airflow -o json | jq '.spec.finalizers=[]' | curl -X PUT http://localhost:8001/api/v1/namespaces/airflow/finalize -H "Content-Type: application/json" --data @-
然后我使用以下命令删除了 PVC:
kubectl delete pvc --force --grace-period=0 --all -n airflow
你又卡住了,所以我不得不发出另一个命令来强制删除:
kubectl patch pvc data-airflow-postgresql-0 -p '{"metadata":{"finalizers":null}}' -n airflow
此时 PVC 被终止,这两个命令 return 没有:
kubectl get pvc -n airflow
kubectl get all -n airflow
然后重启机器,再次执行helm install(使用本题第一节的first和last命令),结果还是一样
然后我执行了以下命令(使用我在此处找到的建议):
kubectl describe pvc -n airflow
我得到以下输出(我正在发布 PostgreSQL 的事件部分):
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 2m58s (x42 over 13m) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
所以我的假设是我需要提供存储 class 作为 values.yaml
的一部分我的理解对吗?如何在 values.yaml?
中提供所需的(以及什么值)如果你用helm安装,你可以用helm delete airflow -n airflow
卸载。
这是一种使用默认值为 测试 目的安装气流的方法:
生成清单helm template airflow apache-airflow/airflow -n airflow > airflow.yaml
用你喜欢的编辑器打开“airflow.yaml”,将所有“volumeClaimTemplates”替换为emptyDir。示例:
创建命名空间并安装:
kubectl create namespace airflow
kubectl apply -f airflow.yaml --namespace airflow
如果需要,您可以
删除kubectl delete -f airflow.yaml --namespace airflow
.