参考书籍: kubernetes全栈架构师
生产环境关键性配置
Docker 的配置
修改 /etc/docker/daemon.json 文件,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 5,
"log-opts": {
"max-size": "300m",
"max-file": "2"
},
"live-restore": true
}
EOF参数说明:
- max-concurrent-downloads: 开启多线程下载镜像
- max-concurrent-uploads: 开启多线程上传镜像
- log-opts: 容器日志的大小以及文件数设置
- live-restore: 确保重启 Docker 进程时,不影响上面运行的容器
重启 Docker
1
2systemctl daemon-reload
systemctl restart docker
修改 kube-controller-manager 服务
修改 kube-controller-manager 颁发的证书有效期限
1
2
3
4# vim /usr/lib/systemd/system/kube-controller-manager.service
# 找个合适的位置添加以下参数,设定证书过期时间,证书的最长时间一般为5年,以下的日期不一定会生效;
--cluster-signing-duration=876000h0m0s \重启 kube-controller-manager
1
2systemctl daemon-reload
systemctl restart kube-controller-manager.service
修改 kubelet
编辑 kubelet 的配置参数 /etc/systemd/system/kubelet.service.d/10-kubelet.conf 文件
1
2# KUBELET_EXTRA_ARGS 添加参数,修改加密方式
"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"–tls-cipher-suites: 修改加密方式
–image-pull-progress-deadline: 修改镜像拉取超时时间修改 kubelet-conf.yaml 文件,添加以下配置
1
2
3
4
5
6
7
8
9
10
11
12rotateServerCertificates: true
allowedUnsafeSysctls:
- "net.core*"
- "net.ipv4.*"
kubeReserved:
cpu: "1"
memory: 1Gi
ephemeral-storage: 1Gi
systemReserved:
cpu: "1"
memory: 1Gi
ephemeral-storage: 1Gi参数说明:
- allowedUnsafeSysctls: 是否允许修改内核,按需配置,不是必须修改的
- kubeReserved: 给 k8s 组件预留的资源,属性的值按需修改;
- systemReserved: 给系统预留的系统资源,属性的值按需修改;
重启 kubelet
1
2systemctl daemon-reload
systemctl restart kubelet查看节点状态
1
2
3
4
5
6
7kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master-01 Ready <none> 15h v1.19.7
k8s-master-02 Ready <none> 15h v1.19.7
k8s-master-03 Ready <none> 15h v1.19.7
k8s-node-01 Ready <none> 15h v1.19.7
k8s-node-02 Ready <none> 15h v1.19.7
给节点打标签
修改 node 的 ROLES 的 labels 方法
1 | # 修改 ROLES |
安装建议
- 生产环境建议使用二进制安装;
- Master 节点不需要写自动化,添加 Node 节点可以使用自动化;
- 生产环境 etcd 一定要和系统盘分开,一定要使用 ssd 硬盘;
- Docker 数据盘也要和系统盘分开,有条件的话可以使用 ssd 硬盘。