Kubelet配置详解

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配置

posted @ 2023-02-14 18:54  幻月0412  阅读(540)  评论(0编辑  收藏  举报