开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink 1.14.3 run on k8s,application模式,更新升级代码时,如果删除

flink 1.14.3 run on k8s,application模式,更新升级代码时,如果删除deployment,不删除configmaps,则代码执行逻辑还是旧的,不会更新;如果删除deployment和configmaps,则代码会更新,但是却无法从checkpoint恢复,因为从那个checkpoint恢复写在configmap中,请教大佬如何在代码逻辑更新升级时如何保留confimap,以便自动从检查点恢复吗?

展开
收起
游客3oewgrzrf6o5c 2022-06-30 10:48:05 551 0
1 条回答
写回答
取消 提交回答
  • 十分耕耘,一定会有一分收获!

    楼主你好,在更新升级代码时,可以考虑使用 RollingUpdate 策略来实现无缝更新。该策略会逐步创建新的 Pod,替换旧的 Pod,在整个过程中保持应用运行。

    具体步骤如下:

    1. 修改 Deployment 的镜像版本或代码版本。

    2. 使用 kubectl apply 命令更新 Deployment:

    kubectl apply -f deployment.yaml
    
    1. 查看 Deployment 状态,确保更新成功:
    kubectl rollout status deployment/<deployment-name>
    

    当 Deployment 更新成功后,可以检查 ConfigMap 是否正确的被应用。如果 ConfigMap 没有被正确的应用,可以使用 kubectl patch 命令来修改 Deployment,强制重新加载 ConfigMap:

    kubectl patch deployment <deployment-name> -p '{"spec":{"template":{"metadata":{"annotations":{"date":"'"`date +%s`"'"}}}}}'
    

    需要注意的是,如果应用遇到问题导致无法从checkpoint恢复,则需要进行排查和调试,以确定问题的根本原因。比如,可以检查应用程序的日志、checkpoint 目录是否正确等。

    2023-07-31 09:12:36
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载