Etcd
--client-cert-auth=true #etcd 将为受信任CA签名的客户端证书检查所有的传入的 HTTPS 请求,不能提供有效客户端证书的请求将会失败
--data-dir=/var/lib/etcd
--peer-client-cert-auth=true #启用对等客户端证书验证
--snapshot-count=10000 #当key累积到一定的数量时,Etcd 才会创建快照文件,如果 Etcd 的内存使用和磁盘使用过高,那么应该尝试调低快照触发的阈值
Apiserver
--allow-privileged=true #允许特权容器
--authorization-mode=Node,RBAC
--enable-admission-plugins=NodeRestriction #限制kubelet可写的API对象
--enable-bootstrap-token-auth=true #允许 'kube-system' 命名空间中的 'bootstrap.kubernetes.io/token' 类型密钥可以被用于 TLS 的启动认证。
--insecure-port=0 #用于监听不安全和为认证访问的端口
--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname #用于 kubelet 连接的首选 NodeAddressTypes 列表
--requestheader-allowed-names=front-proxy-client #允许在头部提供用户名的客户端证书通用名称列表
--requestheader-extra-headers-prefix=X-Remote-Extra- #用于检查的请求头的前缀列表。
--requestheader-group-headers=X-Remote-Group #用于检查群组的请求头列表。
--requestheader-username-headers=X-Remote-User #用于检查用户名的请求头列表。
--secure-port=6443 #用于监听具有认证授权功能的 HTTPS 协议的端口
Kube-scheduler
| --leader-elect=true 在执行主循环之前,开始领导者选举并选出领导者。为实现高可用性,运行多副本的组件并选出领导者。 |
Controller-manager
--allocate-node-cidrs=true #基于云供应商特性来为 Pod 分配和设置子网掩码
--controllers=*,bootstrapsigner,tokencleaner #要启用的控制器列表
--leader-elect=true #在执行主循环之前,启动领导选举(Leader Election)客户端,并尝试获得领导者身份。在运行多副本组件时启用此标志有助于提高可用性。
--node-cidr-mask-size=24 #集群中节点 CIDR 的掩码长度。
--use-service-account-credentials=true #为每个控制器单独使用服务账号凭据。
Kube-proxy
apiVersion: kubeproxy.config.k8s.io/v1alpha1
bindAddress: 0.0.0.0
clientConnection:
acceptContentTypes: ""
burst: 10 #与 kubernetes apiserver 通信的数量
contentType: "application/vnd.kubernetes.protobuf" #发送到 apiserver 的请求的内容类型。
kubeconfig: /var/lib/kube-proxy/kubeconfig.conf
qps: 5 #与 kubernetes apiserver 交互时使用的 QPS
clusterCIDR: 10.244.0.0/16
configSyncPeriod: 15m #来自 apiserver 的配置的刷新频率
conntrack:
maxPerCore: null
min: null
tcpCloseWaitTimeout: 30s #处于 CLOSE_WAIT 状态的 TCP 连接的 NAT 超时
tcpEstablishedTimeout: 3600s #已建立的 TCP 连接的空闲超时(0 保持原样)
enableProfiling: false
healthzBindAddress: "0.0.0.0:10256" #服务健康检查的 IP 地址和端口
hostnameOverride: ""
iptables:
masqueradeAll: false
masqueradeBit: 14 #如果使用纯 iptables 代理,则 fwmark 空间的 bit 用于标记需要 SNAT 的数据包。必须在 [0,31] 范围内。
minSyncPeriod: 0s
syncPeriod: 30s #刷新 iptables 规则的最大间隔
ipvs:
excludeCIDRs: ["127.0.0.1/32","172.17.0.0/16","10.244.0.0/16"] #逗号分隔的 CIDR 列表,ipvs 代理在清理 IPVS 规则时不应使用此列表
minSyncPeriod: 60s #ipvs 规则可以随着端点和服务的更改而刷新的最小间隔
scheduler: "rr" #代理模式为 ipvs 时的 ipvs 调度器类型
strictARP: false syncPeriod: 90s #刷新 ipvs 规则的最大间隔
kind: KubeProxyConfiguration
metricsBindAddress: "0.0.0.0:10249" #metrics 服务器要使用的 IP 地址
nodePortAddresses:
nulloomScoreAdj: -999 #kube-proxy 进程中的 oom-score-adj 值必须在 [-1000,1000] 范围内
portRange: ""
mode: "ipvs"
udpIdleTimeout: 250ms #空闲 UDP 连接将保持打开的时长
resourceContainer: /kube-proxy