|NO.Z.00042|——————————|^^ 部署 ^^|——|KuberNetes&二进制部署.V20|5台Server|——|kubernetes配置|生产环境关键性配置|
一、生产环境关键性配置
### --- docker参数配置——所有节点
~~~ docker参数:所有节点都需要更改。
[root@k8s-master01 ~]# vim /etc/docker/daemon.json
{
"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
}
### --- docker参数配置说明
~~~ docker参数注释说明:
{ "registry-mirrors" // docker的配置参数
"max-concurrent-downloads": 10, // 并发下载的线程数
"max-concurrent-uploads": 5, // 并发上传的线程数
"log-opts": { // 日志,cat /var/lib/docker/containers/k8s日志地址
"max-size": "300m", // 限制最大文件大小,到了300M后进行切割
"max-file": "2" }, // 生成的文件数
"live-restore": true // 进行配置文件配置需要重启docker,重启docker容器会重新启动,需要一定时间误差;所以开启live-restore。就不用重启docker;
二、ControllerManager参数配置——master节点
### --- ControllerManager参数配置——master节点
~~~ # controller-manager颁发证书时间修改
[root@k8s-master01 ~]# vim /usr/lib/systemd/system/kube-controller-manager.service
--leader-elect=true \ // 在此行一下添加参数
--experimental-cluster-signing-duration=876000h0m0s \ // 添加这行参数
--use-service-account-credentials=true \ // 在此行以上添加参数
[root@k8s-master01 ~]# systemctl daemon-reload
[root@k8s-master01 ~]# systemctl restart kube-controller-manager
### --- ControllerManager参数配置说明
~~~ # ControllerManager参数配置说明
~~~ 注:controller-manager颁发证书默认时间是一年,该参数设置颁发证书时间更长一些。
~~~ 注:颁发时间有些长,但是最长设置最长是5年,不一定生效,但是到达时间会重新颁发。
--cluster-signing-duration=876000h0m0s \
三、kubelet参数配置说明——所有节点
### --- kubelet参数配置——所有节点
~~~ 设置安全漏洞扫描参数,及下载参数(此验证失败,待实验)
[root@k8s-master01 ~]# vim /etc/systemd/system/kubelet.service.d/10-kubelet.conf
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig --kubeconfig=/etc/kubernetes/kubelet.kubeconfig"
Environment="KUBELET_SYSTEM_ARGS=--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin"
Environment="KUBELET_CONFIG_ARGS=--config=/etc/kubernetes/kubelet-conf.yml --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2"
Environment="KUBELET_EXTRA_ARGS=--node-labels=node.kubernetes.io/node='' --tls-cipher-suites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 --image-pull-progress-deadline=30m "
ExecStart=
ExecStart=/usr/local/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_SYSTEM_ARGS $KUBELET_EXTRA_ARGS
~~~ # kubelet参数配置说明
~~~ 引号内添加参数:--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=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
~~~ 若是公司有安全监控的情况下,会把k8s的安全漏洞会扫描出来,设置高级别的加密算法,就会扫描不出来。对于集群是没有任何影响的。
--image-pull-progress-deadline=30m"
~~~ 在下载镜像的时候默认时间是很短的。若是不设置,下载会一直循环。设置时间长一些,就尽量避免循环的出现
### --- 修改kubelet-conf配置参数
~~~ 容器是部署在pod里面,需要修改内核参数并发量的;
~~~ 但是默认是不允许修改内核的;所以设置参数允许修改内核。
[root@k8s-master01 ~]# vim /etc/kubernetes/kubelet-conf.yml
~~~ 注:末尾添加如下配置
rotateServerCertificates: true
allowedUnsafeSysctls:
- "net.core*"
- "net.ipv4.*"
kubeReserved:
cpu: "10m"
memory: 10Mi
ephemeral-storage: 10Mi
systemReserved:
cpu: "10m"
memory: 20Mi
ephemeral-storage: 1Gi
### --- kubelet-conf配置参数说明
~~~ kubelet-conf配置参数说明
allowedUnsafeSysctls: - "net.core*" - "net.ipv4.*"
~~~ 注:允许pod内核修改开启时,开启安全设置,根据情况来定。不是必须的。
kubeReserved: cpu: "1" memory: 1Gi ephemeral-storage: 10Gi
systemReserved: cpu: "1" memory: 1Gi ephemeral-storage: 10Gi
~~~ 注:容器跑到主机上,不是无限制的消耗系统的资源。需要给k8s和系统预留一些资源。
### --- 重启kubelet
[root@k8s-master01 ~]# systemctl daemon-reload
[root@k8s-master01 ~]# systemctl restart kubelet
### --- 查看日志状态:查看集群运行是否正常
[root@k8s-master01 ~]# tail -f /var/log/messages
四、更改node.ROLES标签参数
### --- 查看node状态
~~~ 查看集群是否运行正常
~~~ 注:ROLES参数值为none
[root@k8s-master01 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready <none> 15h v1.20.0
k8s-master02 Ready <none> 15h v1.20.0
k8s-master03 Ready <none> 15h v1.20.0
k8s-node01 Ready <none> 15h v1.20.0
k8s-node02 Ready <none> 15h v1.20.0
### --- 更改ROLES标签参数
~~~ 更改ROLES:可以去配置,也可以不用去配置。
~~~ 注:扩展更改ROLES标签
[root@k8s-master01 ~]# kubectl label node k8s-master01 node-role.kubernetes.io/master=''
node/k8s-master01 labeled
### --- 查看更改后的ROLES标签参数
~~~ 查看更改后的ROLES标签参数
[root@k8s-master01 ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready master 15h v1.20.0
k8s-master02 Ready <none> 15h v1.20.0
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
浙公网安备 33010602011771号