1. 程式人生 > 其它 >|NO.Z.00066|——————————|^^ 部署 ^^|——|KuberNetes&二進位制部署.V19|3臺Server|---------------------------------------|kubernetes配置|生產環境關鍵性配置|

|NO.Z.00066|——————————|^^ 部署 ^^|——|KuberNetes&二進位制部署.V19|3臺Server|---------------------------------------|kubernetes配置|生產環境關鍵性配置|



[CloudNative:KuberNetes&二進位制部署.V19]                                                            [Applications.KuberNetes] [|DevOps|k8s|**3節點**|二進位制1.20|kubernetes生產環境關鍵性配置|] [|docker|controller-manager|kubelet|kubelet-conf|Node.ROLES|]








一、生產環境關鍵性配置:docker引數配置——所有節點
### --- 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引數配置說明

{  "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引數配置說明
~~~     注: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配置引數說明

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標籤引數

[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









===============================END===============================


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



來自為知筆記(Wiz)