相關連接
#mem相關參數 https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/kubelet-eviction.md#enforce-node-allocatable https://www.cnblogs.com/breezey/p/9100331.html
基本參數
--allow-privileged=true #允許容器請求特權模式
--anonymous-auth=false #不允許匿名請求到 kubelet 服務(默認 true )
--authentication-token-webhook=true #使用 TokenReview API 來確定不記名令牌的身份驗證
--authorization-mode=Webhook #kubelet 服務的授權模式,Webhook 模式使用 SubjectAccessReview API 來確定授權。(默認“AlwaysAllow”)
--cadvisor-port=0 #本地 cAdvisor 端口(默認 4194)
--cgroup-driver=cgroupfs #kubelet 用來操作主機上的 cgroups 驅動,可選值有:“cgroupfs”和“systemd”(默認“cgroupfs”)
--client-ca-file=/etc/kubernetes/pki/ca.crt #集群ca證書
--cluster-dns=10.96.0.10 #DNS 服務器的IP地址列表,逗號分隔。
--cluster-domain=xxx.xxx.xxx #集群域名, kubelet 將配置所有容器除了主機搜索域還將搜索當前域。
--cni-bin-dir=/opt/cni/bin #CNI插件二進制文件的完整路徑
--cni-conf-dir=/etc/cni/net.d #CNI插件配置文件的完整路徑
--eviction-hard=memory.available<500Mi,nodefs.available<10%,nodefs.inodesFree<5% #一個清理閾值的集合,達到該閾值將觸發一次容器清理
--eviction-minimum-reclaim=memory.available=0Mi,nodefs.available=500Mi,imagefs.available=2Gi #資源回收最小值的集合,即 kubelet 壓力較大時 ,執行 pod 清理回收的資源最小值。
--eviction-soft=memory.available<1.5Gi #清理閾值的集合,如果達到一個清理周期將觸發一次容器清理
--eviction-soft-grace-period=memory.available=300s,nodefs.available=300s,nodefs.inodesFree=300s #清理周期的集合,在觸發一個容器清理之前一個軟清理閾值需要保持多久。
--hostname-override=svrxxxxhw2288 #自定義cluster中的node name
--image-pull-progress-deadline=10m #鏡像拉取進度最大時間,如果在這段時間拉取鏡像沒有任何進展,將取消拉取(默認 1m0s)
--kube-api-burst=30 #與 kubernetes apiserver 會話時的並發數。(默認 10)
--kube-api-qps=15 #與 kubernetes apiserver 會話時的 QPS 。(默認 15)
--kubeconfig=/etc/kubernetes/kubelet.kubeconfig #kubeconfig 文件的路徑,用來指定如何連接到 API server
--log-dir=/var/log/kubernetes #日志文件路徑
--logtostderr=false
--max-pods=300 #當前 kubelet 可以運行的容器組數目。(默認 110)
--network-plugin=cni #在 kubelet/pod 生命周期中為各種事件調用的網絡插件的名稱
----node-ip=10.x.x.x #當前節點的IP地址,kubelet 將使用這個地址作為節點ip地址
--node-labels=smoke=test,xxx.xxx.com/role=app-host #node加入集群時自帶的labels,smoke=test用於daemonset冒煙測試
--pod-infra-container-image=hub.xxx.xxx.com/k8s-mirror/pause-amd64:3.0 #每個 pod 中的 network/ipc 名稱空間容器將使用的鏡像
--pod-manifest-path=/etc/kubernetes/manifests
--register-with-taints=smoke=test:NoSchedule #node 加入集群時自帶的taint,用於防止node剛加入集群時會有容器調度到新機器上
--root-dir=/var/lib/k8s/kubelet #管理 kubelet 文件的目錄 (卷掛載等)
--registry-burst=10 #拉取鏡像的最大並發數,允許同時拉取的鏡像數,不能超過 registry-qps ,僅當 --registry-qps 大於 0 時使用。 (默認 10)
--serialize-image-pulls=false #禁止一次只拉取一個鏡像
--stderrthreshold=3
--system-reserved=cpu=4,memory=5Gi #系統預留資源
--tls-cert-file=/etc/kubernetes/pki/kubelet.crt #包含用於 https 服務的 x509 證書的文件 (中間證書,如果有,在服務器認證后使用)。如果沒有提供 --tls-cert-file 和 --tls-private-key-file , 將會生產一個自簽名的證書及密鑰給公開地址使用,並將其保存在 --cert-dir 指定的目錄。
--tls-private-key-file=/etc/kubernetes/pki/kubelet.key #包含 x509 私鑰匹配的文件 --tls-cert-file
--v=4 #日志級別
kubelet 所有參數items
--address ip kubelet 服務監聽的IP地址(設置為 0.0.0.0 監聽所有地址)(默認 0.0.0.0 )
--allow-privileged 如果為 true ,將允許容器請求特權模式
--anonymous-auth 允許匿名請求到 kubelet 服務。未被另一個身份驗證方法拒絕的請求被視為匿名請求。匿名請求包含系
統的用戶名: anonymous ,以及系統的組名: unauthenticated 。(默認 true )
--authentication-token-webhook 使用 TokenReview API 來確定不記名令牌的身份驗證
--authentication-token-webhook-cache-ttl duration webhook 令牌身份驗證器緩存響應時間。(默認2m0s)
--authorization-mode string kubelet 服務的授權模式。有效的選項是 AlwaysAllow 或 Webhook 。Webhook 模式使用 SubjectAccessReview API 來確定授權。(默認“AlwaysAllow”)
--authorization-webhook-cache-authorized-ttl duration 來自 webhook 的已認證響應緩存時間(默認 5m0s)
--authorization-webhook-cache-unauthorized-ttl duration 來自 webhook 的未認證響應緩存時間(默認 30s)
--azure-container-registry-config string Azure 容器注冊表配置信息路徑
--bootstrap-kubeconfig string 用於獲取 kubelet 客戶端證書的 kubeconfig 文件路徑,如果由 --kubeconfig 指定的文件不存在,將
使用 bootstrap kubeconfig 從 API 服務器請求一個客戶端證書,成功后,引用生成證書文件和密鑰的 kubeconfig 將被寫入 --kubeconfig 指定的文件,客戶端證書和
密鑰將被保存在 --cert-dir 指定的目錄。
--cadvisor-port int32 本地 cAdvisor 端口(默認 4194)
--cert-dir string TLS 證書所在目錄。如果 --tls-cert-file 和 --tls-private-key-file 指定的文件存在,當前配置將
被忽略。(默認“/var/run/kubernetes”)
--cgroup-driver string kubelet 用來操作主機上的 cgroups 驅動,可選值有:“cgroupfs”和“systemd”(默認“cgroupfs”)--cgroup-root string 用於 pods 的可選根 cgroup , 這是由容器運行時在最好的工作基礎上處理的,默認:'',也就是使>用容器運行時的默認值。--cgroups-per-qos 開啟創建 QoS cgroup 層級,如果設置為 true 將創建頂級 QoS 和容器 cgroups 。(默認 true)
--chaos-chance float 如果大於 0.0 ,引入隨機客戶端錯誤及延遲,用來測試。
--client-ca-file string 如果設置,任何帶有 client-ca-file 中簽名的客戶端證書的請求都將通過與客戶端證書 CommonName >對應的標識進行身份認證。--cloud-config string 雲提供商的配置文件路徑,沒有配置文件時為空字符串。
--cloud-provider string 雲服務提供商。默認情況下, kubelet 將嘗試自動檢測雲提供商,如果不使用雲提供商可以指定該參數
為空字符串。(默認“auto-detect”)
--cluster-dns stringSlice DNS 服務器的IP地址列表,逗號分隔。這個值是用於配置指定了“dnsPolicy=ClusterFirst”的容器 DNS 服務器。注意:列表中所有的DNS服務器必須提供相同的記錄值,否則集群中的名稱解析可能無法正常工作,也就是無法確保連接DNS服務器提供正確的名稱解析。--cluster-domain string 集群域名。如果設置, kubelet 將配置所有容器除了主機搜索域還將搜索當前域。 --cni-bin-dir string <警告: Alpha 特性>搜索CNI插件二進制文件的完整路徑。默認值:/opt/cni/bin
--cni-conf-dir string <警告: Alpha 特性> 搜索CNI插件配置文件的完整路徑。默認值:/etc/cni/net.d
--container-runtime string 運行時使用的容器。可選值:‘docker’和‘rkt’。(默認‘docker’)
--container-runtime-endpoint string [實驗]遠程運行服務的端點。目前在 Linux 上支持 unix 套接字,在 windows 上支持 tcp 。例如:‘unix:///var/run/dockershim.sock’,‘tcp://localhost:3735’(默認‘unix:///var/run/dockershim.sock’)
--containerized 在容器中運行 kubelet 的實驗支持。用於測試。
--contention-profiling 如果啟用了分析,啟用鎖爭用分析。
--cpu-cfs-quota 為指定 CPU 限制的容器強制限制 CPU CFS 配額(默認 true)
--docker-disable-shared-pid 當運行 1.13.1 或更高版本的 docker 時,容器運行時接口( CRI )默認在同一個 pod 中的容器使用一>個共享的 PID 名稱空間,將此標志設置為對獨立的 PID 名稱空間用來恢復先前的行為,這個功能將在未來的 Kubernetes 發布版本移除。
--docker-endpoint string 用來通信的 docker 端點。(默認“unix:///var/run/docker.sock”)
--enable-controller-attach-detach 允許附加/分離控制器來管理調度到當前節點的附加/分離卷,並禁用 kubelet 執行任何附加/分離操作(默認 true)
--enable-custom-metrics 支持收集自定義指標。
--enable-debugging-handlers 開啟服務用來收集日志及本地運行的容器及命令(默認 true)
--enable-server 開啟 kubelet 服務(默認 true)
--enforce-node-allocatable stringSlice 由 kubelet 執行的節點分配執行級別列表,逗號分隔。可選項有 'pods', 'system-reserved' 和 'kube-reserved' 。如果指定后兩種,必須同時指定 '--system-reserved-cgroup' 和 '--kube-reserved-cgroup'。 查看 https://git.k8s.io/community/contributors/design-proposals/node-allocatable.md 獲取更多細節。 (默認 [ pods ])
--event-burst int32 一個突發事件記錄的最大值。 僅當設置 --event-qps 大於0時,暫時允許該事件記錄值超過設定值,但
不能超過 event-qps 的值。(默認10)
--event-qps int32 設置為大於0的值,將限制每秒創建的事件數目最大為當前值,設置為0則不限制。(默認為5)
--eviction-hard string 一個清理閾值的集合(例如 memory.available<1Gi ),達到該閾值將觸發一次容器清理,(默認“memory.available < 100 mi,nodefs.available < 10%,nodefs.inodesFree < 10%)
--eviction-max-pod-grace-period int32 滿足清理閾值時,終止容器組的最大響應時間,如果設置為負值,將使用 pod 設定的值。.
--eviction-minimum-reclaim string 一個資源回收最小值的集合(例如 imagefs.available=2Gi ),即 kubelet 壓力較大時 ,執行 pod >清理回收的資源最小值。
--eviction-pressure-transition-period duration 過渡出清理壓力條件前, kubelet 需要等待的時間。(默認 5m0S )
--eviction-soft string 一個清理閾值的集合(例如 memory.available<1.5Gi ),如果達到一個清理周期將觸發一次容器清理>。
--eviction-soft-grace-period string 一個清理周期的集合(例如 memory.available=1m30s ),在觸發一個容器清理之前一個軟清理閾值需>要保持多久。
--exit-on-lock-contention kubelet 是否應該退出鎖文件爭用。
--experimental-allocatable-ignore-eviction 設置為 true ,計算節點分配時硬清理閾值將被忽略。查看 https://git.k8s.io/community/contributors/design-proposals/node-allocatable.md 獲取更多細節。[默認 false]
--experimental-allowed-unsafe-sysctls stringSlice 不安全的 sysctls 或者 sysctl 模式(以*結尾)白名單列表,以逗號分隔。在自己的風險中使用這些>。
--experimental-bootstrap-kubeconfig string 已過時:使用 --bootstrap-kubeconfig
--experimental-check-node-capabilities-before-mount [實驗]如果設置為 true , kubelet 將在執行 mount 之前檢查基礎節點所需組件(二進制文件等)。
--experimental-fail-swap-on 如果在節點上啟用了 swap , kubelet 將啟動失敗,這是一個維護遺留行為的臨時選項,在 v1.6 啟動
失敗是因為默認啟用了 swap。
--experimental-kernel-memcg-notification 如果啟用, kubelet 將集成內核 memcg 通知以確定是否達到內存清理閾值,而不是輪詢。
--experimental-mounter-path string [實驗]二進制文件的掛載路徑。保留空以使用默認。
--experimental-qos-reserved mapStringString 一個資源占比的集合(例如 memory=50%),描述如何在QoS級別保留pod資源請求,目前僅支持內存。[>默認 none]
--feature-gates string 一組鍵值對,用來描述 alpha 或實驗特性,選項有:
Accelerators=true|false (ALPHA - default=false)
AdvancedAuditing=true|false (ALPHA - default=false)
AffinityInAnnotations=true|false (ALPHA - default=false)
AllAlpha=true|false (ALPHA - default=false)
AllowExtTrafficLocalEndpoints=true|false (default=true)
AppArmor=true|false (BETA - default=true)
DynamicKubeletConfig=true|false (ALPHA - default=false)
DynamicVolumeProvisioning=true|false (ALPHA - default=true)
ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false)
LocalStorageCapacityIsolation=true|false (ALPHA - default=false)
PersistentLocalVolumes=true|false (ALPHA - default=false)
RotateKubeletClientCertificate=true|false (ALPHA - default=false)
RotateKubeletServerCertificate=true|false (ALPHA - default=false)
StreamingProxyRedirects=true|false (BETA - default=true)
TaintBasedEvictions=true|false (ALPHA - default=false)
--file-check-frequency duration 檢查新數據配置文件的周期(默認 20s)
--google-json-key string 用於谷歌雲平台服務帳戶身份驗證的 JSON 密鑰。
--hairpin-mode string kubelet 如何設置 hairpin NAT(“發夾”轉換)。 這使得當服務可以嘗試訪問自己時服務端點可以自動
恢復,合法值由 "promiscuous-bridge", "hairpin-veth" 和 "none". (默認 "promiscuous-bridge")
--healthz-bind-address ip 健康檢查服務的IP地址。(設置 0.0.0.0 使用所有地址)(默認 127.0.0.1 )
--healthz-port int32 本地健康檢查服務的端口號(默認 10248 )
--host-ipc-sources stringSlice kubelet 允許 pod 使用主機 ipc 名稱空間列表,逗號分隔。(默認[*])
--host-network-sources stringSlice kubelet 允許 pod 使用主機網絡列表,逗號分隔。(默認[*])
--host-pid-sources stringSlice kubelet 允許 pod 使用主機 pid 名稱空間列表,逗號分隔。(默認[*])
--hostname-override string 如果不是空,將使用該字符作為 hostname 而不是真實的 hostname 。
--http-check-frequency duration 通過 http 檢查新數據的周期(默認 20s)
--image-gc-high-threshold int32 鏡像占用磁盤比率最大值,超過此值將執行鏡像垃圾回收。(默認 85)
--image-gc-low-threshold int32 鏡像占用磁盤比率最小值,低於此值將停止鏡像垃圾回收。(默認 80)
--image-pull-progress-deadline duration 鏡像拉取進度最大時間,如果在這段時間拉取鏡像沒有任何進展,將取消拉取。(默認 1m0s)
--image-service-endpoint string [實驗]遠程鏡像服務端點。如果沒有指定,默認情況下將與容器運行時端點相同。目前在 Linux 上支持
unix 套接字,在 windows 上支持 tcp 。 例如:'unix:///var/run/dockershim.sock', 'tcp://localhost:3735'
--iptables-drop-bit int32 用於標記丟棄數據包的 fwmark 空間位,取值范圍[0,31]。(默認 15)
--iptables-masquerade-bit int32 用於標記 SNAT 數據包的 fwmark 空間位,取值范圍[0,31],請將此參數與 kube-proxy 中的相應參數
匹配。(默認 14)
--keep-terminated-pod-volumes 在容器停止后保持容器卷掛載在節點上,這對調試卷相關問題非常有用。
--kube-api-burst int32 與 kubernetes apiserver 會話時的並發數。(默認 10)
--kube-api-content-type string 發送到 apiserver 的請求 Content type 。(默認“application/vnd.kubernetes.protobuf”)
--kube-api-qps int32 與 kubernetes apiserver 會話時的 QPS 。(默認 15
--kube-reserved mapStringString 一個資源預留量的集合(例如 cpu=200m,memory=500Mi, storage=1Gi ) ,即為 kubernetes 系統組件
預留的資源,目前支持根文件系統的 cpu、內存和本地存儲。查看 http://kubernetes.io/docs/user-guide/compute-resources 或許更多細節。[默認 none]
--kube-reserved-cgroup string 用來管理 Kubernetes 組件的頂級 cgroup 的絕對名稱,這些組件用來管理那些標記‘--kube-reserved’的計算資源。 [默認'']
--kubeconfig string kubeconfig 文件的路徑,用來指定如何連接到 API server ,此時將使用 --api-servers 除非設置了
--require-kubeconfig 。(默認“/var/lib/kubelet/kubeconfig”)
--kubelet-cgroups string 可選的 cgroups 的絕對名稱來創建和運行 kubelet
--lock-file string <警告: Alpha 特性> kubelet 用於鎖文件的路徑。
--make-iptables-util-chains 如果為 true , kubelet 將確保 iptables 工具規則在主機上生效。(默認 true)
--manifest-url string 訪問容器清單的 URL 。
--manifest-url-header string 訪問容器清單的 URL 的 HTTP 頭, key 和 value 之間用:分隔
--max-open-files int kubelet 進程可以打開的文件數目。(默認 1000000)
--max-pods int32 當前 kubelet 可以運行的容器組數目。(默認 110)
--minimum-image-ttl-duration duration 在執行垃圾回收前未使用鏡像的最小年齡。例如: '300ms', '10s' or '2h45m'. (默認 2m0s)
--network-plugin string <警告: Alpha 特性> 在 kubelet/pod 生命周期中為各種事件調用的網絡插件的名稱
--network-plugin-mtu int32 <警告: Alpha 特性> 傳遞給網絡插件的 MTU 值以覆蓋缺省值,設置為0將使用默認值 1460
--node-ip string 當前節點的IP地址,如果設置, kubelet 將使用這個地址作為節點ip地址。
--node-labels mapStringString <警告: Alpha 特性> 在集群中注冊節點時添加的標簽,標簽必須為用英文逗號分隔的 key=value 對。
--node-status-update-frequency duration 指定 kubelet 的節點狀態為 master 的頻率。注意:在修改時要小心,它必須與 nodecontroller 的 nodeMonitorGracePeriod 一起工作。(默認 10s)
--oom-score-adj int32 kubelet 進程的 oom-score-adj 值,范圍[-1000, 1000] (默認 -999)
--pod-cidr string 用於 pod IP 地址的 CIDR ,僅在單點模式下使用。在集群模式下,這是由 master 獲得的。
--pod-infra-container-image string 每個 pod 中的 network/ipc 名稱空間容器將使用的鏡像。 (默認 "gcr.io/google_containers/pause-amd64:3.0")
--pod-manifest-path string 包含 pod 清單文件的目錄或者單個 pod 清單文件的路徑。從點開始的文件將被忽略。
--pods-per-core int32 可以在這個 kubelet 上運行的容器組數目,在這個 kubelet 上的容器組數目不能超過 max-pods ,所>以如果在這個 kubelet 上運行更多的容器組應同時使用 max-pods ,設置為 0 將禁用這個限制。
--port int32 kubelet 服務的端口 (默認 10250)
--protect-kernel-defaults kubelet 的默認內核調優行為。設置之后, kubelet 將在任何可調參數與默認值不同時拋出異常。
--provider-id string 在機器數據庫中標識節點的唯一標識符,也就是雲提供商
--read-only-port int32 沒有認證/授權的只讀 kubelet 服務端口。 (設置為 0 以禁用) (默認 10255)
--really-crash-for-testing 設置為 true ,有可能出現應用崩潰。 用於測試。
--register-node 用 apiserver 注冊節點 (如果設置了 --api-servers 默認為 true ) (默認 true)
--register-with-taints []api.Taint 用給定的列表注冊節點 (逗號分隔 "<key>=<value>:<effect>")。如果 register-node 為 false 將無>操作
--registry-burst int32 拉去鏡像的最大並發數,允許同時拉取的鏡像數,不能超過 registry-qps ,僅當 --registry-qps 大>於 0 時使用。 (默認 10)
--registry-qps int32 如果大於 0 ,將限制每秒拉去鏡像個數為這個值,如果為 0 則不限制。 (默認 5)
--require-kubeconfig 設置為 true , kubelet 將在配置錯誤時退出並忽略 --api-servers 指定的值以使用在 kubeconfig >文件中定義的服務器。
--resolv-conf string 用作容器 DNS 解析配置的解析器配置文件。 (默認 "/etc/resolv.conf")
--rkt-api-endpoint string 與 rkt API 服務通信的端點,僅當設置 --container-runtime='rkt' 時有效 (默認 "localhost:15441")
--rkt-path string rkt 二進制文件的路徑,設置為空將使用 $PATH 中的第一個 rkt ,僅當設置 --container-runtime='rkt' 時有效。
--root-dir string 管理 kubelet 文件的目錄 (卷掛載等). (默認 "/var/lib/kubelet")
--runonce 如果為 true ,將在從本地清單或者遠端url生成容器組后退出,除非指定了 --api-servers 和 --enable-server
--runtime-cgroups string 可選的 cgroups 的絕對名稱,創建和運行時使用。
--runtime-request-timeout duration 除了 pull, logs, exec 和 attach 這些長運行請求之外的所有運行時請求的超時時間。 當到達超時時
間,kubelet 將取消請求,拋出異常並稍后重試。 (默認 2m0s)
--seccomp-profile-root string seccomp 配置文件目錄。 (默認 "/var/lib/kubelet/seccomp")
--serialize-image-pulls 一次拉取一個鏡像。建議在安裝 docker 版本低於 1.9 的節點或一個Aufs存儲后端不去修改這個默認值
。查看問題 #10959 獲取更多細節。 (默認 true)
--streaming-connection-idle-timeout duration 在連接自動關閉之前,流連接的最大空閑時間,0 表示永不超時。例如: '5m' (默認 4h0m0s)
--sync-frequency duration 同步運行容器和配置之間的最大時間間隔 (默認 1m0s)
--system-cgroups / 可選的 cgroups 的絕對名稱,用於將未包含在 cgroup 內的所有非內核進程放置在根目錄 / 中,回滾>這個標識需要重啟。
--system-reserved mapStringString 一個 資源名稱=量 的集合(例如 cpu=200m,memory=500Mi ) 用來描述為非 kubernetes 組件保留的資源
。 目前僅支持 cpu 和內存。 查看 http://kubernetes.io/docs/user-guide/compute-resources 或許更多細節。 [默認 none]
--system-reserved-cgroup string 頂級 cgroup 的絕對名稱,用於管理計算資源的非 kubernetes 組件,這些組件通過'--system-reserved'標識保留系統資源。除了'/system-reserved'。 [默認'']
--tls-cert-file string 包含用於 https 服務的 x509 證書的文件 (中間證書,如果有,在服務器認證后使用)。如果沒有提供 --tls-cert-file 和 --tls-private-key-file , 將會生產一個自簽名的證書及密鑰給公開地址使用,並將其保存在 --cert-dir 指定的目錄。
--tls-private-key-file string 包含 x509 私鑰匹配的文件 --tls-cert-file
--version version[=true] 打印 kubelet 版本並退出。
--volume-plugin-dir string <警告: Alpha 特性> 第三方卷插件的完整搜索路徑。 (默認 "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/")
--volume-stats-agg-period duration 指定 kubelet 計算和緩存所有容器組及卷的磁盤使用量時間間隔。設置為 0 禁用卷計算。(默認 1m)
--maximum-dead-containers=100 #在本node上保留已經停止的containers的個數,超過就會被清除
--maximum-dead-containers-per-container=2 #以pod為單位,可以在node上保留已經停止的pod的上限
原文鏈接:https://blog.csdn.net/qq_34857250/article/details/84995381