flink-kubernetes-operator的简单使用

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
简介: flink-kubernetes-operator的简单使用

01 引言

flink-kubernetes-operator是由Java实现的,它允许用户通过kubectl等原生k8s工具管理Flink应用程序及其生命周期,描述如下:

A Kubernetes operator for Apache Flink, implemented in Java. It allows users to manage Flink applications and their lifecycle through native k8s tooling like kubectl.

简单的说:flink-kubernetes-operator 是在 Kubernetes 集群上运行 Flink 应用的工具。它简化了Flink 应用在 Kubernetes 集群上的部署、扩展和管理。 flink-kubernetes-operator 可以将 Flink 作业定义为 Kubernetes 资源,这样可以更容易地将 Flink 作业作为 Kubernetes 基础架构的一部分管理。Operator负责创建运行 Flink 作业所需的资源,如 podsservices和配置,此外,operator还提供了例如自动扩展、自动恢复和滚动更新的功能

总的来说,Flink Kubernetes 操作员简化了 Flink 应用的部署和管理,使得在 Kubernetes 集群上运行 Flink 作业更加容易。

Github地址https://github.com/apache/flink-kubernetes-operator


相关流程:
在这里插入图片描述

02 资料

相关资料如下:


功能概览(可参考详情

  • 部署和监控Flink应用程序、会话和作业部署
  • 升级、挂起和删除部署
  • 完整的日志记录和指标集成
  • 灵活的部署和与Kubernetes工具的本地集成

03 实践

快速入门: https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main/docs/try-flink-kubernetes-operator/quick-start/

根据官网的快速入门教程,下面记录一下操作。

3.1 环境准备

本地电脑需要准备如下的环境:

以上的环境准备主要就是为了kubectl helm 命令能在本地使用

3.1.1 安装docker和kubernetes

下载Docker Desktop (https://www.docker.com/products/docker-desktop/),安装完成后,在设置里enable kubernetes即可以安装dockerkubernetes环境了。
在这里插入图片描述

3.1.2 安装helm

MacOS:

brew install helm

Windows:

choco install kubernetes-helm

Linux:

## 参考安装指南:https://helm.sh/docs/intro/install/

3.2 部署Operator

step1: 安装证书管理器

安装证书管理器(在Kubernetes集群上安装证书管理器,以便添加webhook组件)

kubectl create -f https://github.com/jetstack/cert-manager/releases/download/v1.8.2/cert-manager.yaml

查看pods是否运行都正常(红框都为Running表示正常):

kubectl get pods -A

在这里插入图片描述

step2: 安装operator

现在可以安装稳定的flink-kubernetes-operator版本,这里使用的是1.3.1版本(稳定的版本可以查看:https://flink.apache.org/downloads.html):

helm repo add flink-operator-repo https://downloads.apache.org/flink/flink-kubernetes-operator-1.3.1/
helm install flink-kubernetes-operator flink-operator-repo/flink-kubernetes-operator

在这里插入图片描述

ok,查看pod的状态(下图红框为Running状态,表示部署成功了):

kubectl get pods -A

在这里插入图片描述
当然也可以看看helm的列表:

helm list

在这里插入图片描述

3.3 提交作业

Operator启动完成后,可以提交flink作业了,这里使用官方的资源文件basic.yaml,其内容如下:

################################################################################
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
# limitations under the License.
################################################################################

apiVersion: flink.apache.org/v1beta1
kind: FlinkDeployment
metadata:
  name: basic-example
spec:
  image: flink:1.15
  flinkVersion: v1_15
  flinkConfiguration:
    taskmanager.numberOfTaskSlots: "2"
  serviceAccount: flink
  jobManager:
    resource:
      memory: "2048m"
      cpu: 1
  taskManager:
    resource:
      memory: "2048m"
      cpu: 1
  job:
    jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar
    parallelism: 2
    upgradeMode: stateless

执行:

kubectl create -f https://raw.githubusercontent.com/apache/flink-kubernetes-operator/release-1.3/examples/basic.yaml

如果报错了(如下图),我们直接在本地新建一个basic.yaml文件,并把内容复制进去,再次执行:
在这里插入图片描述

kubectl create -f basic.yaml

创建成功:
在这里插入图片描述
查看pod,可以看到正在运行:
在这里插入图片描述
如果需要打开flink web监控页面,需要暴露端口,命令如下:

kubectl port-forward svc/basic-example-rest 8081

在这里插入图片描述
浏览器输入地址:http://localhost:8081
在这里插入图片描述
可以看到Flink任务正在运行中。

04 文末

本文主要记录了flink-kubernetes-operator的一些笔记,只能说是按照教程一步一步来操作,后续的文章会介绍其原理及详细用法,谢谢大家的阅读,本文完!

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
分布式计算 运维 Kubernetes
flink on k8s jobmanager HA 完全部署
flink on k8s jobmanager HA 完全部署
flink on k8s jobmanager HA 完全部署
|
弹性计算 资源调度 Kubernetes
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
Flink三种集群模式,Standalone模式,Flink On YARN,Flink On K8S,这三种模式有啥优缺点,生产环境如何选择呢?
1744 3
|
10月前
|
存储 SQL 缓存
Flink 2.0 存算分离状态存储 — ForSt DB 
本文整理自阿里云技术专家兰兆千在Flink Forward Asia 2024上的分享,主要介绍Flink 2.0的存算分离架构、全新状态存储内核ForSt DB及工作进展与未来展望。Flink 2.0通过存算分离解决了本地磁盘瓶颈、检查点资源尖峰和作业恢复速度慢等问题,提升了云原生部署能力。ForSt DB作为嵌入式Key-value存储内核,支持远端读写、批量并发优化和快速检查点等功能。性能测试表明,ForSt在异步访问和本地缓存支持下表现卓越。未来,Flink将继续完善SQL Operator的异步优化,并引入更多流特性支持。
974 88
Flink 2.0 存算分离状态存储 — ForSt DB 
|
11月前
|
存储 分布式计算 流计算
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
本文介绍了阿里云开源大数据团队在实时计算领域的最新成果——向量化流计算引擎Flash。文章主要内容包括:Apache Flink 成为业界流计算标准、Flash 核心技术解读、性能测试数据以及在阿里巴巴集团的落地效果。Flash 是一款完全兼容 Apache Flink 的新一代流计算引擎,通过向量化技术和 C++ 实现,大幅提升了性能和成本效益。
3259 73
实时计算 Flash – 兼容 Flink 的新一代向量化流计算引擎
|
10月前
|
Cloud Native Apache 流计算
资料合集|Flink Forward Asia 2024 上海站
Apache Flink 年度技术盛会聚焦“回顾过去,展望未来”,涵盖流式湖仓、流批一体、Data+AI 等八大核心议题,近百家厂商参与,深入探讨前沿技术发展。小松鼠为大家整理了 FFA 2024 演讲 PPT ,可在线阅读和下载。
8450 18
资料合集|Flink Forward Asia 2024 上海站
|
Kubernetes Apache 流计算
flink-kubernetes-operator 的简单使用
flink-kubernetes-operator 的简单使用
681 0
|
SQL Java Scala
flink-cdc SQL Server op 字段如何获取?
Flink CDC 是 Apache Flink 的组件,用于捕获数据库变更事件。对 SQL Server,通过 Debezium 连接器支持变更数据捕获。`op` 字段标识操作类型(INSERT、UPDATE、DELETE)。配置包括添加依赖及设定 Source 连接器,可通过 Flink SQL 或 Java/Scala 完成。示例查询利用 `op` 字段筛选处理变更事件。
469 1
|
消息中间件 存储 Apache
Apache Paimon 表模式最佳实践
Apache Paimon 表模式最佳实践
3756 57
|
Kubernetes Java 测试技术
flink-kubernetes-operator api使用(支持 jdk 1.8)
flink-kubernetes-operator api使用(支持 jdk 1.8)
1014 0
flink-kubernetes-operator api使用(支持 jdk 1.8)
|
存储 Kubernetes Apache
Flink on kubernets operator
Flink on kubernets operator