#云原生征文#自建高可用k8s集群优化

网友投稿 363 2022-09-09

#云原生征文#自建高可用k8s集群优化

自建高可用k8s集群优化

一、Docker配置优化

# 所有节点执行// max-concurrent-downloads: 最大并发下载// "max-concurrent-uploads": 最大并发上传// log-opts: 日志设置,单文件最大,最大几个文件// 容器的日志都在 /var/lib/docker/containers/容器名/xxx.log// "live-restore": 停机保活vi /etc/docker/daemon.json { "registry-mirrors": [ " ], "exec-opts": ["native.cgroupdriver=systemd"], "max-concurrent-downloads": 10, "max-concurrent-uploads": 5, "log-opts": { "max-size": "300m", "max-file": "2" }, "live-restore": true}

systemctl daemon-reload && systemctl restart docker

二、优化kubelet

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

vi /etc/kubernetes/kubelet-conf.yml

# kubeReserved: kubelet预留资源kubeReserved: cpu: "500m" memory: 300m ephemeral-storage: 3GisystemReserved: cpu: "200m" memory: 500m ephemeral-storage: 3Gi

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

curl 127.0.0.1:10249/proxyMode

三、时区问题

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

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

apiVersion: settings.k8s.io/v1alpha1kind: PodPresetmetadata: name: allow-localtime namespace: spinnakerspec: selector: matchLabels: volumeMounts: - mountPath: /etc/localtime name: localtime volumes: - name: localtime hostPath: path: etc/localtime

kubectl apply -f xxx.yaml

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

java -- Pod -- UTC

这个需要开启特性门控

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

可惜此特性在 1.20以后废弃了。PodPreset(Pod 预设置)的功能从 ​​v1.11​​ 版本开始出现,但是又在 ​​v1.20​​ 版本取消。所以以后,使用Pod标准模板。挂载时区

volumeMounts: - name: localtime mountPath: /etc/localtime volumes: - name: localtime hostPath: path: /usr/share/zoneinfo/Asia/Shanghai

【本文正在参加云原生有奖征文活动】,活动链接:https://ost./posts/12598

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:理财经理营销产品前你要了解的3件事!
下一篇:#云原生征文#自建高可用k8s集群搭建
相关文章

 发表评论

暂时没有评论,来抢沙发吧~