返回介绍

Kubernetes 设置

发布于 2025-05-02 18:19:18 字数 4009 浏览 0 评论 0 收藏 0

本页介绍如何在 Kubernetes 上部署 Flink 作业和会话群集。

设置 Kubernetes

请按照 Kubernetes 的设置指南 来部署 Kubernetes 集群。如果您想在本地运行 Kubernetes,我们建议您使用 MiniKube

注意: 如果使用 MiniKube,请确保 minikube ssh 'sudo ip link set docker0 promisc on' 在部署 Flink 群集之前执行。否则,Flink 组件无法通过 Kubernetes 服务自行引用自己。

Kubernetes 上的 Flink 会话群集

Flink 会话群集作为长期运行的 Kubernetes 部署执行。请注意,您可以在会话群集上运行多个 Flink 作业。部署群集后,需要将每个作业提交到群集。

Kubernetes 中的基本 Flink 会话群集部署有三个组件:

  • 部署/作业运行 JobManager
  • 部署 TaskManagers 池
  • 公开 JobManager 的 REST 和 UI 端口的服务

在 Kubernetes 上部署 Flink 会话群集

使用 会话群集 的资源定义,使用以下 kubectl 命令启动群集:

kubectl create -f jobmanager-service.yaml
kubectl create -f jobmanager-deployment.yaml
kubectl create -f taskmanager-deployment.yaml

然后,您可以通过 kubectl proxy 以下方式访问 Flink UI :

  1. kubectl proxy 在终端中运行
  2. 导航到 HTTP://本地主机:8001/API/V1/命名空间/默认/服务/Flink-jobmanager:UI/代理服务器 在您的浏览器

要终止 Flink 会话群集,请使用 kubectl

kubectl delete -f jobmanager-deployment.yaml
kubectl delete -f taskmanager-deployment.yaml
kubectl delete -f jobmanager-service.yaml

Kubernetes 上的 Flink 工作集群

Flink 作业集群是运行单个作业的专用集群。这项工作是镜像的一部分,因此,不需要额外的工作提交。

创建特定于作业的镜像

Flink 作业集群映像需要包含启动集群的作业的用户代码 jar。因此,需要为每个作业构建专用的容器镜像。请按照这些 说明 构建 Docker 镜像。

在 Kubernetes 上部署 Flink 作业集群

要在 Kubernetes 上部署作业集群,请按照这些 说明进行 算子操作

高级群集部署

GitHub 上提供了早期版本的 Flink Helm 图表

附录

会话群集资源定义

部署定义使用 flink:latest在 Docker Hub 上找到的预构建映像。该映像是从这个 Github 存储库 构建的。

jobmanager-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: flink-jobmanager
spec:
  replicas: 1
  template:
  metadata:
    labels:
    app: flink
    component: jobmanager
  spec:
    containers:
    - name: jobmanager
    image: flink:latest
    args:
    - jobmanager
    ports:
    - containerPort: 6123
      name: rpc
    - containerPort: 6124
      name: blob
    - containerPort: 6125
      name: query
    - containerPort: 8081
      name: ui
    env:
    - name: JOB_MANAGER_RPC_ADDRESS
      value: flink-jobmanager

taskmanager-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: flink-taskmanager
spec:
  replicas: 2
  template:
  metadata:
    labels:
    app: flink
    component: taskmanager
  spec:
    containers:
    - name: taskmanager
    image: flink:latest
    args:
    - taskmanager
    ports:
    - containerPort: 6121
      name: data
    - containerPort: 6122
      name: rpc
    - containerPort: 6125
      name: query
    env:
    - name: JOB_MANAGER_RPC_ADDRESS
      value: flink-jobmanager

jobmanager-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: flink-jobmanager
spec:
  ports:
  - name: rpc
  port: 6123
  - name: blob
  port: 6124
  - name: query
  port: 6125
  - name: ui
  port: 8081
  selector:
  app: flink
  component: jobmanager

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。