|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

 

 

posted on 2022-03-29 13:24  yanqi_vip  阅读(24)  评论(0)    收藏  举报

导航