成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

給Kubernetes集群下的容器配置內核參數

開發 開發工具
在Kubernetes集群下運行的容器的內核參數是默認的,但是對于某型類型的應用如Nginx Ingress controller而言,默認的內核參數配置是不夠的,需要做出調整,例如somaxconn是限制了接收新TCP 連接偵聽隊列的大小,它的默認值是128,但是對于反向代理的服務器而言,這個配置實在是太小了。

問題

在Kubernetes集群下運行的容器的內核參數是默認的,但是對于某型類型的應用如Nginx Ingress controller而言,默認的內核參數配置是不夠的,需要做出調整,例如somaxconn是限制了接收新TCP 連接偵聽隊列的大小,它的默認值是128,但是對于反向代理的服務器而言,這個配置實在是太小了。那么我們自然想到需要去調整這個應用的容器的內核配置參數。

解決之道

Docker Daemon的處理方式

對于Docker引擎而言,可是使用--sysctl運行參數來設定需要更改的內核參數,例如:

  1. docker run -it --sysctl net.core.somaxconn=65535  busybox 
  2. #在容器看看是否配置成功: 
  3. cat /proc/sys/net/core/somaxconn 

然后我們可以看看容器的詳情:

可以看到,Docker引擎對容器進行了相關的配置,而無需使用特權模式來設置內核參數

Kubernetes的處理之道

在Kubernetes里,Kubernetes可以利用Docker引擎的這個--sysctl的能力,也可以利用privilege init container的方式。目前sysctls的能力還依然在alpha階段,選擇時需要注意。

Kubernetes Sysctls

具體可以參考:Using Sysctls in a Kubernetes Cluster

實踐過程如下:

  • 需要在kubelet啟動參數上配置對應的開關--experimental-allowed-unsafe-sysctls。例如在阿里云的kubernetes服務,可以在node節點,修改/etc/systemd/system/kubelet.service.d/10-kubeadm.conf,增加對應的配置并重新加載systemctl daemon-reload,然后重啟kubelet。如下是允許配置和net相關的內核參數:

            Kubernetes允許配置的內核參數如下:

  1. kernel.shm*, 
  2.            kernel.msg*, 
  3.            kernel.sem, 
  4.            fs.mqueue.*, 
  5.            net.*. 
  • 啟動Pod的時候設置對應的annotation,申明需要修改的內核參數,以啟動一個nginx為測試例子:
  1. apiVersion: v1 
  2. kind: Pod 
  3. metadata: 
  4.   name: test-sysctl 
  5.   annotations: 
  6.    security.alpha.kubernetes.io/unsafe-sysctls: net.core.somaxconn=65535 
  7. spec: 
  8.   containers: 
  9.   - image: nginx 
  10.     name: nginx 
  11.     ports: 
  12.     - containerPort: 80 
  13.       protocol: TCP 
  14.   nodeSelector: 
  15.     kubernetes.io/hostname: cn-shenzhen.i-xxxxx      

注意:對于需要變更內核參數的應用,建議部署到特定的機器上。為了方便,我是使用了node selector。

如果對應的機器的kubelet沒有打開這個對應的開關,那么pod是部署不成功的。我們可以通過kubectl get event來看看對應的日志:

那么這個方式背后的原理是什么呢?其實就是docker的--sysctl,我們可以pod到對應的node接點去docker inspect看看。但是奇怪的是,docker inspect看不到任何sysctl的跡象,是不是那里有誤?

其實不是的,因為真正執行sysctl是kubernetes的pause container也叫做infra container,我們找到對應的這個容器,再docker inspect看看:

這個時候,我們發現,這個pause容器配置了sysctls。

Kubernetes Init Container

Init container的用法可以參考:Init Containers

使用init container的好處是,無需去改變kubelet的配置,但是需要給這個init container配置成privilege的權限。

以下是一個啟動Pod的例子:

  1. apiVersion: v1 
  2. kind: Pod 
  3. metadata: 
  4.   name: test-sysctl-init 
  5.   namespace: default 
  6. spec: 
  7.   containers: 
  8.   - image: nginx 
  9.     imagePullPolicy: Always 
  10.     name: nginx 
  11.     ports: 
  12.     - containerPort: 80 
  13.       protocol: TCP 
  14.   initContainers: 
  15.   - image: busybox 
  16.     command: 
  17.     - sh 
  18.     - -c 
  19.     - echo 10000 > /proc/sys/net/core/somaxconn 
  20.     imagePullPolicy: Always 
  21.     name: setsysctl 
  22.     securityContext: 
  23.       privileged: true 

至于使用那種方式,可以自行選擇。后續也要留意kubernetes對于sysctls的演進。

【本文是51CTO專欄作者“VIPDOCKER-了哥 ”的原創文章,如需轉載請通過51CTO與作者聯系】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2017-08-08 11:14:47

AzureKubernetes多容器應用程序

2021-12-21 15:17:53

Kubernetes緩存Linux

2019-12-20 10:45:47

Kubernetes容器網絡

2019-07-04 13:10:53

Docker設計云計算

2009-09-16 08:51:47

linuxtomcat集群配置

2021-09-02 05:37:22

Containerd Kubernetes 容器

2015-12-30 14:50:45

Kubernetes容器技術Docker

2023-11-03 13:20:13

Kubernetes

2021-05-12 10:59:39

Kubernetes容器集群

2022-08-01 07:47:03

虛擬化容器Pod

2023-06-27 17:37:08

Kubernete容器集群

2021-07-27 11:31:29

運維架構技術

2023-07-29 11:54:44

KuberneteNFS

2015-07-17 10:25:43

kubernetesDocker集群系統

2021-12-24 10:47:49

Kubernetes容器化微服務

2013-11-07 13:59:56

Linux內核

2013-11-25 14:07:11

Linux內核內核特性

2013-11-05 09:58:39

Linux內核

2013-11-12 11:01:46

Linux內核

2013-11-06 13:03:10

Linux內核
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品乱码久久久久久按摩 | 亚洲日日夜夜 | 中文字幕成人av | 欧美精品成人一区二区三区四区 | 久久一区视频 | 亚洲欧美综合精品另类天天更新 | 国产做爰| 亚洲不卡在线观看 | 日韩精品久久久 | www.亚洲.com | 亚州精品天堂中文字幕 | 91婷婷韩国欧美一区二区 | av在线黄| 日韩色综合| 色噜噜亚洲男人的天堂 | 国产日韩一区二区 | 欧美日韩精品 | 国产电影一区 | 国产一区二区在线视频 | 精品毛片视频 | 蜜桃av一区二区三区 | 国产精品一级 | 99国产在线| 巨大黑人极品videos精品 | 亚洲精品电影在线观看 | 国产精品久久 | 国产高清在线 | 91直接看 | 国产精品乱码一二三区的特点 | 四虎影院在线免费观看 | 日本 欧美 三级 高清 视频 | 韩日一区二区 | 天天操网 | 欧美精品一区在线 | 色综合天天网 | 国产精品揄拍一区二区久久国内亚洲精 | 91日日| 亚洲欧美日韩国产综合 | 本道综合精品 | 日本国产精品视频 | 国产成人99av超碰超爽 |