Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 未找到所需的GKE pod,google cloud composer_Kubernetes_Google Cloud Platform_Airflow_Google Kubernetes Engine_Google Cloud Composer - Fatal编程技术网

Kubernetes 未找到所需的GKE pod,google cloud composer

Kubernetes 未找到所需的GKE pod,google cloud composer,kubernetes,google-cloud-platform,airflow,google-kubernetes-engine,google-cloud-composer,Kubernetes,Google Cloud Platform,Airflow,Google Kubernetes Engine,Google Cloud Composer,我正在使用Google cloud composer,并创建了composer环境。composer环境已经准备好(有绿色记号),现在我正在尝试使用Google cloud shell设置DAG python代码中使用的变量 用于设置变量的命令: gcloud composer environments run test-environment \ --location us-central1 variables -- \ --set gcp_project

我正在使用Google cloud composer,并创建了composer环境。composer环境已经准备好(有绿色记号),现在我正在尝试使用Google cloud shell设置DAG python代码中使用的变量

用于设置变量的命令:

     gcloud composer environments run test-environment \
       --location us-central1 variables -- \
       --set gcp_project xxx-gcp
准确的错误消息:

  ERROR: (gcloud.composer.environments.run) Desired GKE pod not found. If the environment was recently started, please wait and retry.
作为调查的一部分,我试着跟踪调查,但每次都犯同样的错误。 我使用UI而不是GoogleShell命令创建了一个新环境。 我检查了kubernetes引擎中的吊舱,所有吊舱都是绿色的,没有发现任何问题。 我验证了composer API、Billing kubernetes,所有必需的API都已启用

我已分配“编辑”角色

添加了我第一次看到的一些失败的屏幕截图

退出代码为1的错误
google疑难解答指南描述:如果退出代码为1,则容器因应用程序崩溃而崩溃。

如果您使用的是太旧的,则这是Composer版本1.6.0的副作用,因为它现在在名称空间中启动POD,而不是
默认值。您看到的错误是和的结果

要解决此问题,请运行
gcloud components update
。如果您还不能更新,执行aiffair命令的一个解决方法是自己手动SSH到pod并运行
aiffair
。要开始,请获取GKE群集凭据:

$ gcloud container clusters get-credentials $COMPOSER_GKE_CLUSTER_NAME
获得凭据后,您应该找到POD运行在哪个命名空间中(您也可以使用云控制台找到):

然后,您可以通过SSH连接到任何调度程序/工作程序pod中,并运行以下命令:

$ kubectl exec \
    --namespace=$NAMESPACE \
    -it airflow-worker-569bc59df5-x6jhl airflow list_dags -r
如果愿意,也可以打开外壳:

$ kubectl exec \
    --namespace=$NAMESPACE \
    -it airflow-worker-569bc59df5-x6jhl bash

airflow@airflow-worker-569bc59df5-x6jhl:~$ airflow list_dags -r

失败的
airflow database init作业
作业是不相关的,不会在Composer环境中造成问题。

如果您使用的是太旧的,这是Composer版本1.6.0的副作用,因为它现在在
默认值
以外的命名空间中启动POD。您看到的错误是和的结果

要解决此问题,请运行
gcloud components update
。如果您还不能更新,执行aiffair命令的一个解决方法是自己手动SSH到pod并运行
aiffair
。要开始,请获取GKE群集凭据:

$ gcloud container clusters get-credentials $COMPOSER_GKE_CLUSTER_NAME
获得凭据后,您应该找到POD运行在哪个命名空间中(您也可以使用云控制台找到):

然后,您可以通过SSH连接到任何调度程序/工作程序pod中,并运行以下命令:

$ kubectl exec \
    --namespace=$NAMESPACE \
    -it airflow-worker-569bc59df5-x6jhl airflow list_dags -r
如果愿意,也可以打开外壳:

$ kubectl exec \
    --namespace=$NAMESPACE \
    -it airflow-worker-569bc59df5-x6jhl bash

airflow@airflow-worker-569bc59df5-x6jhl:~$ airflow list_dags -r

失败的
airflow database init作业
作业无关,不会在您的Composer环境中造成问题。

您可以截取Composer环境的GKE集群中运行的所有POD吗?@添加了截图您可以截取Composer环境的GKE集群中运行的所有POD吗cluster?@Hexa氰化物添加的屏幕快照我无法在POD中使用SSH,但这很有帮助,很高兴听到--我用更具体的标志更新命令(如
--namespace
),以防您需要重试。正如@Hexa氰化物所注意到的,这并不是真正的回归,从1.6.0开始,我们现在将与气流相关的工作负载放在一个专用的名称空间中,gcloud SDK已经更新以解决这个问题。请运行gcloud components update,它应该会解除您的阻止。我无法在pods中使用SSH,但很高兴听到这样的消息--我使用更具体的标志(如
--namespace
)更新命令,以防您需要重试。这并不是真正的回归,正如@hexagine注意到的,从1.6.0开始,我们现在将与气流相关的工作负载放在一个专用的名称空间中,gcloud SDK已经更新以解决这个问题。请运行gcloud组件更新,它将解除对您的阻止。