kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
address: 172.18.105.1 # 监听地址,kubelet提供服务所用的ip地址
port: 10250 # 监听端口,kubelet提供服务端口号
readOnlyPort: 10255 # 是 kubelet 用来提供服务所使用的只读端口号。 此端口上的服务不支持身份认证或鉴权
authentication: # 设置发送给kubelet服务器的请求是如何进行身份认证的
anonymous: # 包含与匿名身份认证相关的配置信息
enabled: false # enabled允许匿名用户向kubelet服务器发送请求,false则不允许
webhook:
cacheTTL: 2m0s # 启用对身份认证结果的缓存,
enabled: true # enabled允许使用tokenreviews.authentication.k8s.io API 来提供持有者令牌身份认证
x509:
clientCAFile: /etc/kubernetes/ssl/ca.pem # 是一个指向 PEM 编发的证书包的路径
authorization: # 设置发送给 kubelet 服务器的请求是如何进行鉴权的
mode: Webhook # 应用到kubelet服务器所接收到的请求上的鉴权模式。合法值包括 AlwaysAllow和Webhook
webhook:
cacheAuthorizedTTL: 5m0s # 设置来自 Webhook 鉴权组件的 'authorized' 响应的缓存时长
cacheUnauthorizedTTL: 30s # 设置来自 Webhook 鉴权组件的 'unauthorized' 响应的缓存时长
cgroupDriver: cgroupfs # kubelet 用来操控宿主系统上控制组(CGroup) 的驱动程序(cgroupfs 或 systemd)
cgroupsPerQOS: true # 用来启用基于 QoS 的控制组(CGroup)层次结构
clusterDNS:
- 10.250.0.2 # 设置DNS地址
clusterDomain: cluster.local. # 集群的DNS域名。如果设置了此字段,kubelet会配置所有容器,使之在搜索主机的搜索域的同时也搜索这里指定的DNS域
configMapAndSecretChangeDetectionStrategy: Watch # ConfigMap和Secret管理器的运行模式,Get:kubelet 从 API 服务器直接取回必要的对象;Cache:kubelet 使用 TTL 缓存来管理来自 API 服务器的对象;Watch:kubelet 使用 watch 操作来观察所关心的对象的变更
containerLogMaxFiles: 3 # 设置每个容器可以存在的日志文件个数上限
containerLogMaxSize: 10Mi # 定义容器日志文件被轮转之前可以到达的最大尺寸
enforceNodeAllocatable:
- pods
- kube-reserved
eventBurst: 10 # 突发性事件创建的上限值,允许事件创建临时上升到所指定数量
eventRecordQPS: 5 # 设置每秒钟可创建的事件个数上限。如果此值为 0,则表示没有限制。此值不能设置为负数
evictionHard:
imagefs.available: 1%
memory.available: 8Gi # 可用内存低于 8Gi 时,kubelet开始驱逐Pod
nodefs.available: 2%
nodefs.inodesFree: 2%
evictionPressureTransitionPeriod: 5m0s
failSwapOn: true # 通知 kubelet 在节点上启用交换分区时拒绝启动
fileCheckFrequency: 40s # 对配置文件中新数据进行检查的时间间隔值,默认值20s,这个是和staticPodPath配合使用的,用于检测静态Pod配置文件
httpCheckFrequency: 40s # 对HTTP服务器上新数据进行检查的时间间隔值,默认值20s,这个是和staticPodURL配合使用
hairpinMode: hairpin-veth
healthzBindAddress: 172.18.105.1
healthzPort: 10248 # 健康检查端口
imageGCHighThresholdPercent: 85
imageGCLowThresholdPercent: 80
imageMinimumGCAge: 2m0s
kubeReservedCgroup: /system.slice/kubelet.service
kubeReserved: {'cpu':'200m','memory':'10.0Gi','ephemeral-storage':'1Gi'} # 用来描述为Kubernetes系统组件预留的资源
kubeAPIBurst: 100 # 设置与 Kubernetes API 服务器通信时突发的流量级别
kubeAPIQPS: 50 # 设置与 Kubernetes API 服务器通信时要使用的 QPS
makeIPTablesUtilChains: true # 设置为true时,相当于允许 kubelet 确保一组 iptables 规则存在于宿主机上
maxOpenFiles: 1000000 # 此kubelet进程可以打开的文件个数
maxPods: 165 # 此kubelet上可运行的Pod个数上限
nodeLeaseDurationSeconds: 40
nodeStatusReportFrequency: 1m0s
nodeStatusUpdateFrequency: 10s
oomScoreAdj: -999
podPidsLimit: -1
resolvConf: /etc/resolv.conf # 指定DNS解析文件路径
runtimeRequestTimeout: 2m0s # 用来设置除长期运行的请求(pull、logs、exec和attach)之外所有运行时请求的超时时长
serializeImagePulls: true # 拉取镜像策略,true代表串行方式拉取镜像,false代表并行方式拉取镜像
streamingConnectionIdleTimeout: 4h0m0s # 设置流式连接在被自动关闭之前可以空闲的最长时间
syncFrequency: 1m0s # 对运行中的容器和配置进行同步的最长周期
tlsCertFile: /etc/kubernetes/ssl/kubelet.pem # 包含HTTPS所需要的 x509 证书的文件
tlsPrivateKeyFile: /etc/kubernetes/ssl/kubelet-key.pem # 包含与tlsCertFile证书匹配的 X509 私钥的文件
Kubelet配置