有flink on k8s的资料吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
以下是关于 Flink on Kubernetes (K8s) 的详细资料和操作指南,基于提供的知识库内容整理而成:
Flink on Kubernetes 是一种将 Apache Flink 部署在 Kubernetes 集群上的方式,利用 Kubernetes 的容器编排能力来管理 Flink 的资源调度和作业运行。这种方式可以提高资源利用率,并简化集群的运维管理。
在 Flink on K8s 环境中,可以通过以下步骤查看运行中的 Flink 作业日志: 1. 登录 EMR on ACK 控制台。 2. 在 EMR on ACK 页面,单击目标集群所在行 所属ACK集群 列的链接。 3. 进入 容器组 页面,找到目标 Pod,单击其操作列的 日志 按钮。 - 此时可以查看对应 JobManager 或 TaskManager 的日志。
要访问 Flink 的 Web UI,需要通过 Kubernetes 的端口转发功能将 JobManager 的服务暴露到本地: 1. 使用 kubectl
工具连接到 Kubernetes 集群(具体方法请参考 Kubernetes 官方文档)。 2. 执行以下命令,将 Flink JobManager 的服务转发到本地:
kubectl port-forward -n <yourClusterId> svc/<flink_service_name>-rest 18088:8081
<yourClusterId>
:Kubernetes 集群 ID,可在 EMR on ACK 控制台获取。<flink_service_name>
:Flink 作业的服务名称,可通过命令 kubectl get svc -n <yourClusterId>
查看。http://127.0.0.1:18088/#/overview
在 Flink on K8s 环境中,可能会遇到网络连通性问题,例如 JobManager heartbeat timeout 或 timeout expired while fetching topic metadata。以下是常见问题及解决方案:
jobmanager.retrieve-taskmanager-hostname: false
zkCli.sh
或 zookeeper-shell.sh
)登录 Kafka 的 Zookeeper。ls /brokers/ids
get /brokers/ids/{your_broker_id}
listener_security_protocol_map
中的 Endpoint 是否正确。在 Kubernetes 上部署 Flink 时,需要合理配置资源以确保作业的稳定运行: - 基础配置: - 名称:Session 集群的名称。 - 部署目标:选择目标资源队列。 - 状态:设置集群的期望运行状态(RUNNING 或 STOPPED)。 - 引擎版本: - 建议使用推荐版本或稳定版本。 - 重启策略: - 可选策略包括: - No Restarts:任务失败后不重启。 - Fixed Delay:固定间隔重启。 - Failure Rate:基于失败率重启。 - 资源配置: - TaskManager CPU Cores:默认值为 2。 - TaskManager Memory:最小值为 1 GiB,推荐值为 8 GiB。 - JobManager CPU Cores:默认值为 1。 - JobManager Memory:最小值为 1 GiB,推荐值为 4 GiB。
在创建 Kubernetes 集群时,需要注意以下事项: - SLB 配置: - 创建集群时会自动创建两个 SLB,分别用于 API Server 和 Ingress。 - 如果未安装 Ingress 组件,可以在 组件管理 中一键安装。 - RDS 白名单配置: - 如果 Kubernetes 集群需要访问 RDS 实例,需根据网络模式(Flannel 或 Terway)配置白名单。 - Flannel 模式:配置 ECS 的 IP。 - Terway 模式:配置 Pod 的 IP。 - 添加已有 ECS 节点: - 确保 ECS 实例与集群在同一地域和 VPC 下。 - 手动添加集群的安全组,建议使用默认安全组。
以上内容涵盖了 Flink on Kubernetes 的关键操作和配置,希望对您有所帮助!
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。