V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
asanelder
V2EX  ›  程序员

关于 Java 服务上 k8s 的最佳实践(配置文件和 debug)?

  •  
  •   asanelder · 2021-05-14 17:45:40 +08:00 · 1960 次点击
    这是一个创建于 1318 天前的主题,其中的信息可能已经有所发展或是发生改变。
    俺现在按照公司要求, 要将 java 服务上 k8s, 但有几点不明, 想问问做过的老铁们, 以下几个方面的最佳实践是什么

    一 配置文件

    本来配置文件就是跟随代码的, 为不同的环境创建不同的配置文件, maven 打包时, 根据环境参数就可以打包不同的配置文件.

    这样的好处就是

    1. 可以很直观的看到不同环境的配置
    2. 选择适当的配置文件, 可以直接本地启动服务(进而可以很方便的 debug)

    但, 如果使用 ConfigMap 的形式, 是不是需要把所有 java 服务的配置文件使用一个单独的 repo 来管理起来? 而且这些配置文件的更新也是要走单独的 CI/CD 流程?

    而这样的话, java 服务本身就不需要知道具体的配置是什么了?

    二 远程 debug

    原来 java 在虚拟机上运行时, 俺可以很方便的远程 debug, 但现在服务以 pod 形式运行, 而 pod 的生命周期交给了 k8s. 俺想 debug 的话, 得

    1. 先打开 k8s 的端口转发
    2. debug 期间, 健康探针如果发现服务"不健康"了(其实还是健康的, 只是俺在 debug), pod 就会被干掉, 这样就无法继续调试了, 怎么办?
    7 条回复    2021-05-18 15:18:45 +08:00
    Ariver
        1
    Ariver  
       2021-05-14 17:49:42 +08:00
    你的问题不是上 k8s,而是容器化。
    第一个问题是这样的,配置只跟环境有关,不同环境运行的容器镜像应该是一致的。
    要达到这样的状态,你需要做一些工作。
    第二个,远程 debug 的时候为啥会认为服务不健康呢?
    tairan2006
        2
    tairan2006  
       2021-05-14 17:55:51 +08:00
    1. 上配置中心;
    2. 测试环境你可以关了健康检查?
    chendy
        3
    chendy  
       2021-05-14 18:54:13 +08:00
    1. configmap 挂载进去,确实可以用单独的仓库放配置
    2. 多打点 log,试试 Arthas
    defunct9
        4
    defunct9  
       2021-05-14 23:57:49 +08:00 via iPhone
    刚帮一个公司把 php 搬到阿里 ack 上。让我继续来
    RedrumSherlock
        5
    RedrumSherlock  
       2021-05-15 07:46:23 +08:00 via Android
    第一个如果用 spring 的话可以看看 spring cloud kubernetes,第二个如果是用 intellij 或是 vs code 开发的话,可以用 google 的 cloud code 来远程 debug
    dayeye2006199
        6
    dayeye2006199  
       2021-05-15 16:11:03 +08:00
    1. configmap 作为本地文件挂载到 pod 里面
    2. 可以用 skaffold 远程调试: https://skaffold.dev/
    asanelder
        7
    asanelder  
    OP
       2021-05-18 15:18:45 +08:00
    @Ariver #1
    @tairan2006 #2
    @chendy #3
    @defunct9 #4
    @RedrumSherlock #5
    @dayeye2006199 #6

    感谢大佬们建议, 刚接触这玩意, 俺要按着大佬们的方向摸索一番
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3634 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:59 · PVG 12:59 · LAX 20:59 · JFK 23:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.