码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【云原生 | Kubernetes篇】自建高可用k8s集群优化


    文末有惊喜 

    文章目录

    自建高可用k8s集群优化

    一、Docker配置优化

    二、优化kubelet

    三、时区问题


    自建高可用k8s集群优化

    一、Docker配置优化

    1. # 所有节点执行
    2. // max-concurrent-downloads: 最大并发下载
    3. // "max-concurrent-uploads": 最大并发上传
    4. // log-opts: 日志设置,单文件最大,最大几个文件
    5. // 容器的日志都在 /var/lib/docker/containers/容器名/xxx.log
    6. // "live-restore": 停机保活
    7. vi /etc/docker/daemon.json
    8. {
    9. "registry-mirrors": [
    10. "https://82m6ar63.mirror.aliyuncs.com"
    11. ],
    12. "exec-opts": ["native.cgroupdriver=systemd"],
    13. "max-concurrent-downloads": 10,
    14. "max-concurrent-uploads": 5,
    15. "log-opts": {
    16. "max-size": "300m",
    17. "max-file": "2"
    18. },
    19. "live-restore": true
    20. }
    systemctl daemon-reload && systemctl restart docker

    二、优化kubelet

    可参照官方文档: Kubelet 配置 (v1beta1) | Kubernetes

    vi /etc/kubernetes/kubelet-conf.yml
    1. # kubeReserved: kubelet预留资源
    2. kubeReserved:
    3. cpu: "500m"
    4. memory: 300m
    5. ephemeral-storage: 3Gi
    6. systemReserved:
    7. cpu: "200m"
    8. memory: 500m
    9. ephemeral-storage: 3Gi

    验证集群kube-proxy使用ipvs模式工作; 10249是每个节点kube-proxy的metrics信息端口,可以访问/proxyMode或者/metrics等

    curl 127.0.0.1:10249/proxyMode

    三、时区问题

    很多应用镜像时区都是UTC,而不是本机时间(当然,前提是本机时间是对的,云服务器不存在这个问题)

    我们不用每一个Pod都设置挂载本地时间

    1. apiVersion: settings.k8s.io/v1alpha1
    2. kind: PodPreset
    3. metadata:
    4. name: allow-localtime
    5. namespace: spinnaker
    6. spec:
    7. selector:
    8. matchLabels:
    9. volumeMounts:
    10. - mountPath: /etc/localtime
    11. name: localtime
    12. volumes:
    13. - name: localtime
    14. hostPath:
    15. path: etc/localtime
    kubectl apply -f xxx.yaml

    docker hub下载来的几乎所有Pod都是UTC时间。

    java -- Pod -- UTC

    这个需要开启特性门控

    1. vi /usr/lib/systemd/system/kube-apiserver.service
    2. # 1、添加 --runtime-config=settings.k8s.io/v1alpha1=true
    3. # 2、添加 --enable-admission-plugins中加入 PodPreset
    4. systemctl daemon-reload && systemctl restart kube-apiserver

    可惜此特性在 1.20以后废弃了。

    PodPreset(Pod 预设置)的功能从 v1.11 版本开始出现,但是又在 v1.20 版本取消。

    所以以后,使用Pod标准模板。挂载时区

    1. volumeMounts:
    2. - name: localtime
    3. mountPath: /etc/localtime
    4. volumes:
    5. - name: localtime
    6. hostPath:
    7. path: /usr/share/zoneinfo/Asia/Shanghai

     文末惊喜 

    开发云特价优惠

    【开发云】年年都是折扣价,不用四处薅羊毛


    • 📢博客主页:https://lansonli.blog.csdn.net
    • 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
    • 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
    • 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
  • 相关阅读:
    龙口联合化学通过注册:年营收5.5亿 李秀梅控制92.5%股权
    c语言map的详细用法
    解析边缘计算网关的优势-天拓四方
    安装 node 错误的配置环境变量之后使用 npm 报错
    ruoyi框架中添加sharding sphere5.0.0分表(通过spi添加自定义分表策略)
    基于Kylin的数据统计分析平台架构设计与实现
    总结改变和获取 url 的方法 (包括 umi,react-router,原生)
    Vue的render函数&修改默认配置
    手撕520页PDF高级文档,成功“挤掉”7年开发架构师,牛逼
    程序员与产品之间应该如何配合,什么时候技术为重,什么时候产品为重?
  • 原文地址:https://blog.csdn.net/xiaoweite1/article/details/125437528
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号