生产环境上k8s避坑指南

使用环境:阿里云的容器服务-kubernetes
1.ingress使用独立机器部署,配置根据业务量进行评估。前端slb使用按量付费,规格拉到最高(实际按使用量计费)。

2.coreDNS的数量不能过少,一般是业务pod总数的10%。

3.java服务的pod,requests和limits的值必须保持一致。

4.java服务一定要配置合适的JVM参数,尤其注意node如果是高配置机器,需要使用
-XX:ActiveProcessorCount= M Y C P U L I M I T 获 取 到 实 际 划 分 给 p o d 的 c p u 核 数 。 − X X : M a x R A M P e r c e n t a g e = MY_CPU_LIMIT 获取到实际划分给pod的cpu核数。 -XX:MaxRAMPercentage= MYCPULIMITpodcpuXX:MaxRAMPercentage=MEM
-XX:InitialRAMPercentage= M E M − X X : M i n R A M P e r c e n t a g e = MEM -XX:MinRAMPercentage= MEMXX:MinRAMPercentage=MEM
注:$MEM按照内存百分比进行配置。
更加详细的jvm参数需要根据实际情况进行配置。

5.涉及到数据库密码等账号的配置,尽量使用ConfigMaps或者Secrets进行配置。

6.pod内核参数修改,建议使用init- container进行修改。直接植入到Dockerfile的方式会增加镜像的层数。

7.liveness和 readiness必须要配置,同时建议探测方式分别使用TCP和HTPP,不建议使用command方式。延迟探测时间需要根据业务实际启动时间进行配置,时间不能太长也不能太短,一般建议30S左右。

8.业务版本迭代方式,rollingUpdate并不能完全保证线上业务SLA,建议至少核心业务使用分批发布。

9.监控系统的选择及规划很重要,阿里云的k8s可以配置ack-node-problem-detector,打通到钉钉的事件报警。有条件的,可以用阿里云的应用实时监控。没条件的可以部署pinpoint进行监控。k8s集成了很多开源软件,支持一键部署,那么prometheus是一定要来一套的。

暂时想到这些,后期持续更新。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值