前言

下面讲解安装好k8s集群之后,如何优化参数。

优化docker

[root@nginx ~]# cat /etc/docker/daemon.json 
{
    "registry-mirrors": [
       "https://wli8urvv.mirror.aliyuncs.com",
       "https://docker.mirrors.ustc.edu.cn"  
     ],
    "exec-opts": ["native.cgroupdriver=systemd"],
    "insecure-registries": ["192.168.118.143:1443"],
    "log-opts": {
        "max-size": "300m",
        "max-file":"5"
     },
    "data-root": "/var/lib/docker", 
    "max-concurrent-downloads": 3,
    "max-concurrent-uploads": 5,
    "live-restore": true
}
systemctl restart docker

参数解释:

"registry-mirrors"					#镜像下载地址,这个就不用多说了,可以配置多个镜像下载地址
"exec-opts": ["native.cgroupdriver=systemd"]	#将cgroupdriver设置为systemd
"insecure-registries":				#这个定义的是harbor的仓库地址
"max-concurrent-downloads": 3 		#docker拉取镜像并发下载的线程数
"max-concurrent-uploads": 5			#docker并发上传镜像的线程数
 "data-root": "/var/lib/docker"		#docker的主目录,默认是/var/lib/docker,在生产环境中建议设置ssd硬盘单独挂一个lvm逻辑卷
"live-restore": true  #Docker 容器的自动重启是由 Docker 守护进程完成的。在较老版本 Docker 中,如果 docker 守护进程重启,容器会全
部挂掉。新版本 Docker 中,允许设置,当 docker 守护进程重启,容器不受影响。该场景比较多见,例如修改了 docker 的配置而需要重新加载 
docker 守护进程,如果 docker 容器重启,业务会短暂中断,尤其是在生产环境这是不可接受的。所以这个设置很有必要。
具体设置方法有两种:第一种,编辑 /etc/docker/daemon.json,添加 "live-restore": true ,第二种,命令启用,dockerd --live-restore systemd。

"log-opts": {
        "max-size": "300m",
        "max-file":"5"
}		#设置docker最大的日志限制,在/var/lib/docker/containers/2a201024b135073bd9d0037227501e09ce0cddeedd523f15f2651ab5ed436670有个log文件,这个文件就是容器里面的默认控制台输出文件,容器没有很长时间没有重启过,也不进行切割该文件,则该文件会越来越来大, "max-size"表示这个文件最大多少,到达指定大小会自动切割,"max-file"表示最多保留多少个文件。

设置controller-manager的证书有效期

#这个是二进制安装的1.22.15版本,其他版本请找到对应的文件添加参数即可
[root@matser ~]# cat /opt/kubernetes/config/kube-controller-manager.conf 
KUBE_CONTROLLER_MANAGER_OPTS="--logtostderr=false \
--v=2 \
--log-dir=/opt/kubernetes/logs \
--leader-elect=true \
--kubeconfig=/opt/kubernetes/config/kube-controller-manager.kubeconfig \
--bind-address=0.0.0.0 \
--allocate-node-cidrs=true \
--cluster-cidr=10.244.0.0/16 \
--service-cluster-ip-range=10.0.0.0/24 \
--cluster-signing-cert-file=/opt/kubernetes/ssl/ca.pem \
--cluster-signing-key-file=/opt/kubernetes/ssl/ca-key.pem  \
--root-ca-file=/opt/kubernetes/ssl/ca.pem \
--service-account-private-key-file=/opt/kubernetes/ssl/ca-key.pem \
--cluster-signing-duration=87600h0m0s"		#证书有效期,旧版本的使用--experimental-cluster-signing-duration参数
[root@matser ~]# 

kubelet优化

[root@matser ~]# cat   /opt/kubernetes/config/kubelet.conf 
KUBELET_OPTS="--logtostderr=false \
--v=2 \
--log-dir=/opt/kubernetes/logs \
--hostname-override=master \
--network-plugin=cni \
--kubeconfig=/opt/kubernetes/config/kubelet.kubeconfig \
--bootstrap-kubeconfig=/opt/kubernetes/config/bootstrap.kubeconfig \
--config=/opt/kubernetes/config/kubelet-config.yml \
--cert-dir=/opt/kubernetes/ssl \
--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.5 \
--tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 \	#设置k8s的加密方式,防止漏洞扫描
--image-pull-progress-deadline=30m" 	#下载镜像的时间,防止镜像下载很慢情况下超时
[root@matser ~]# 
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐