【问题标题】:Can't run Flink in Standalone Kubernetes mode with JobManager HA无法使用 JobManager HA 在 Standalone Kubernetes 模式下运行 Flink
【发布时间】:2021-11-15 04:34:33
【问题描述】:

我在没有 Job Manager HA 的情况下以独立 Kubernetes(会话)模式运行 Apache Flink。但是我需要部署 Job Manager HA,因为只有在 HA 模式下,Flink 才能持久化(可以在 Job Manager 重启后保存 Job)。 Flink 在专用的 kubernetes 命名空间中运行,我只有命名空间的权限。

使用这篇文章启用 HA: https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/ha/kubernetes_ha/

我使用本文中的 yaml 文件: https://ci.apache.org/projects/flink/flink-docs-master/docs/deployment/resource-providers/standalone/kubernetes/#kubernetes-high-availability-services

例如,我有一个名为 flink-namespace 的 k28s 命名空间。在我创建的这个命名空间中:

  • serviceAccount 名为 flink-sa
  • 角色具有在此命名空间中创建/编辑配置映射的权限

所以这个 serviceAccount 有权创建/编辑配置映射,但只能在这个命名空间中。

部署后jobManager无法启动并报错:

原因:io.fabric8.kubernetes.client.KubernetesClientException: configmaps "flink-restserver-leader" 被禁止:用户 "system:serviceaccount:flink-namespace:flink-sa" 无法观看资源 "configmaps"在命名空间“default”中的 API 组“”中

意味着使用 Flink 的 serviceAccount 来管理 Configmap,尝试在命名空间“default”而不是命名空间“flink-namespace”中创建 Configmap

有人知道如何配置 flink 来管理指定命名空间中的 configmaps 吗?

【问题讨论】:

    标签: kubernetes apache-flink


    【解决方案1】:

    问题已解决 - 我在 Flink 源代码中找到了使用 kubernetes 命名空间告诉 Flink 的可能性正在运行。 所以,要解决这个问题,你应该在配置中设置:

    kubernetes.namespace:YOUR_NAMESPACE_NAME

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多