k8s学习记录,集群关键性配置 1.21.x(二)
文章中资料参考来源2022 云原生Kubernetes全栈架构师
1、docker服务相关
/etc/docker/daemon.json
{
# 镜像仓库地址配置
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
# cgroupdriver配置
"exec-opts": ["native.cgroupdriver=systemd"],
#并发下载线程数
"max-concurrent-downloads": 10,
#并发上传线程数
"max-concurrent-uploads": 5,
#日志 /var/lib/docker/containers/ 按300m大小切分日志文件,最多保留2个
"log-opts": {
"max-size": "300m",
"max-file": "2"
},
#开启时,重启docker服务,不会影响正在运行的docker容器
"live-restore": true
}
2、Controller-manager配置
修改证书时间
vim /usr/lib/systemd/system/kube-controller-manager.service
#内部最长的证书有效期为5年,这里设置的比较长,可能还是以内部最长的有效期来算
--cluster-signing-duration=876000h0m0s \
#证书快过期时,kubelet会自动去申请证书,申请后会自动颁发,bootstrap;新版本中默认为true
# --feature-gates=RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true \
3、kubelet配置项
vim /etc/systemd/system/kubelet.service.d/10-kubelet.conf
#k8s本身的安全机制比较简单,这里是配置加密方式;后面的配置为下载镜像的超时时间,根据集群具体环境配置;
Environment="KUBELET_EXTRA_ARGS=--tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 --image-pull-progress-deadline=30m"
vim /etc/kubernetes/kubelet-conf.yml
rotateServerCertificates: true
#容器部署在pod中,可能会需要修改一些内核参数,比如:最大并发数,内核优化;k8s默认不允许修改
allowedUnsafeSysctls:
- "net.core*"
- "net.ipv4.*"
#给k8s组件和系统预留的资源大小,我自己机器的资源不足,所以这里只给了很少的资源,生产环境尽量配置满足要求的资源数量
kubeReserved:
cpu: "10m"
memory: 10Mi
ephemeral-storage: 10Mi
systemReserved:
cpu: "10m"
memory: 20Mi
ephemeral-storage: 1Gi
#配置完成后重启服务
systemctl daemon-reload
systemctl restart kubelet
tail -f /var/log/messages
4、注意事项
etcd一定要和系统盘分开,一定要使用SSD盘
docker数据盘和系统盘也要分开,有钱就上SSD