下面是kube-controller-manager version 1.12.0的所有配置,其中高亮加粗的是我认为需要注意的Flag。
Flag | Comments |
--allocate-node-cidrs | 在cloud provider上分配和设置pod的CIDR |
--attach-detach-reconcile-sync-period | Volume连接与分离之间的同步等待时间。这个时间必须大于1秒, 从默认值增加这个值可能会导致volume和pod不匹配,默认值1m0s |
--authentication-kubeconfig | kubeconfig文件指向‘core‘ kubernetes服务,并有足够权限创建 tokenaccessreviews.authentication.k8s.io. 。可选参数,如果为空, 所有token请求都当作匿名的,集群不查找客户CA证书。 |
--authentication-skip-lookup | 如果是false,authentication-kubeconfig会用来从集群中查找 丢失的身份验证配置 |
--authentication-token-webhook-cache-ttl | 从webhook token认证器缓存响应的持续时间,默认值10s |
--authorization-always-allow-paths | 忽略授权的HTTP路径列表,无需联系‘core’ kubernetes服务器 就可以进行授权。默认值:[/healthz] |
--authorization-kubeconfig | kubeconfig文件指向‘core‘ kubernetes服务,并有足够权限创建subjectaccessreviews.authorization.k8s.io。可选参数,如果为空, 所有未经授权跳过的请求都被禁止。 |
--authorization-webhook-cache-authorized-ttl | 缓存webhook授权器已授权响应的持续时间。默认值:10s |
--authorization-webhook-cache-unauthorized-ttl | 缓存webhook授权器未授权响应的持续时间。默认值:10s |
--azure-container-registry-config | 包含Azure容器注册配置信息的文件路径 |
--bind-address | 默认值:0.0.0.0,监听--secure-port端口的IP地址。关联的接口 必须由集群的其他部分和CLI/web客户端访问。 |
--cert-dir | TLS certs所在的目录。如果提供了--tls-cert-file和--tls-private-key-file 那么该参数会被忽略。默认值:"/var/run/kubernetes" |
--cidr-allocator-type | 使用CIDR分配器的类型,默认值:"RangeAllocator" |
--client-ca-file | 如果set了,任何提供client-ca-file中由某个权威机构签名的客户机 证书的请求都使用与客户机证书的公共名称相对应的身份进行身份验证 |
--cloud-config | cloud provider配置文件的路径。空表示没有配置文件 |
--cloud-provider | 云服务提供商,空表示没有提供商 |
--cluster-cidr | 集群内的pod的CIDR范围,需要 --allocate-node-cidrs设为true |
--cluster-name | 集群实例的前缀,默认值:"kubernetes" |
--cluster-signing-cert-file | 包含PEM编码的X509 CA证书的文件名,用来发出cluster-scoped证书 默认值:"/etc/kubernetes/ca/ca.pem" |
--cluster-signing-key-file | 包含PEM编码的RSA或者ECDSA私钥的文件名,用来签署cluster-scoped证书 默认值:"/etc/kubernetes/ca/ca.key" |
--concurrent-deployment-syncs | 允许并发同步的Deployment对象的数量,更大的数量等于更快的部署响应, 但是更多的CPU(和网络)负载,默认值:5 |
--concurrent-endpoint-syncs | 允许并发执行端点同步操作的数量,更大的数量等于更快的端点更新, 但是更多的CPU(和网络)负载,默认值:5 |
--concurrent-gc-syncs | 允许并发同步的垃圾收集器数量,默认值:20 |
--concurrent-namespace-syncs | 允许并发同步的namespace对象的数量,更大的数量等于更快的namespace终止, 但是更多的CPU(和网络)负载,默认值:10 |
--concurrent-replicaset-syncs | 允许并发同步的replica sets的数量,更大的数量等于更快的replica管理, 但是更多的CPU(和网络)负载,默认值:5 |
--concurrent-resource-quota-syncs | 允许并发同步的resource quta的数量,更大的数量等于更快的配额管理, 但是更多的CPU(和网络)负载,默认值:5 |
--concurrent-service-syncs | 允许并发同步的service的数量,更大的数量等于更快的service管理, 但是更多的CPU(和网络)负载,默认值:1 |
--concurrent-serviceaccount-token-syncs | 允许并发同步的service account token的数量,更大的数量等于更快的 产生token,但是更多的CPU(和网络)负载,默认值:5 |
--concurrent-ttl-after-finished-syncs | 允许并发同步的TTL-after-finished控制器数量,,默认值:5 |
--concurrent_rc_syncs | 允许并发同步的replication controllers的数量,更大的数量等于 更快的replica管理,但是更多的CPU(和网络)负载,默认值:5 |
--configure-cloud-routes | 由allocate-node-cidrs分配的CIDR是否应该在cloud provider上配置。 |
--contention-profiling | 如果启用了profilling,则启用锁争用profilling |
--controller-start-interval | 启用controller manager之间的间隔 |
--controllers | 要启用的控制器列表,‘*’表示启用所有on-by-default控制器,‘foo'表示启用名称 为foo的控制器,‘-foo’表示不启用名称为foo的控制器。默认值:[*] |
--deployment-controller-sync-period | 同步deployment的周期。默认值:30s |
--disable-attach-detach-reconcile-sync | 启用volume连接与分离的协调同步。禁用此选项可能导致volume和pod不同步 |
--enable-dynamic-provisioning | 为支持动态供应的环境启用动态供应,默认值:true |
--enable-garbage-collector | 启用通用的垃圾收集器。必须与kube-apiserver的相应标志一致。默认值:true |
--enable-hostpath-provisioner | 在没有cloud provider的情况下,启用HostPath PV供应。允许在测试和开发供应 该功能,HostPath供应无论如何都不受支持,因为不能在多节点集群中工作, 并且不应该用于测试或开发之外。 |
--enable-taint-manager | Beta功能,如果设为true。启用Noexecute Taint,并且清除所有不允许运行在 有Noexecute Taint的Node上的pod,默认为true。 |
--experimental-cluster-signing-duration | 已签署证书的期限,默认值:8760h0m0s |
--external-cloud-volume-plugin | 当cloud provider设置为外部时使用的插件,可以为空,只有cloud provider为 外部时设置。当前用于允许node和volume controller在树cloud provider中工作 |
--feature-gates | 一组键值对用于描述alpha/实验特性的特性门 |
--flex-volume-plugin-dir | flex volume插件搜索附加的第三方volume插件的目录的完整路径 默认值:"/usr/libexec/kubernetes/kubelet-plugins/volume/exec/" |
--horizontal-pod-autoscaler-cpu-initialization-period | Autoscaler扩展的pod启动后CPU样本可能会被跳过的时间。默认值:5m0s |
--horizontal-pod-autoscaler-downscale-stabilization | Autoscaler向后看的时间段,这段时间内不会缩小POD的数量。默认值:5m0s |
--horizontal-pod-autoscaler-initial-readiness-delay | Pod启动后的一段时间,这段时间内如果readiness改变了会重新当做 新的readiness,默认值:30s |
--horizontal-pod-autoscaler-sync-period | horizontal pod autoscaler同步pods数量的周期,默认值:15s |
--horizontal-pod-autoscaler-tolerance | horizontal pod autoscaler考虑scaling所需的实际度量比率的 最小变化(从1.0),默认值:0.1 |
--http2-max-streams-per-connection | 服务器提供给客户端单个HTTP/2连接的最大数据流限制。 0表示使用golang的默认值。 |
--insecure-experimental-approve-all-kubelet-csrs-for-group | 该参数不做任何事情 |
--kube-api-burst | 和kubernetes apiserver交互的突发量,默认值:30 |
--kube-api-content-type | 发送给apiserver的请求的文本类型, 默认值:"application/vnd.kubernetes.protobuf" |
--kube-api-qps | 与kubernetes apiserver交互的QPS |
--kubeconfig | 带有授权和master位置信息的kubeconfig文件路径 |
--large-cluster-size-threshold | NodeController将集群当做大集群的nodes数量,主要目的驱逐的逻辑。 对于这种大小或者更小的集群,隐式的将--secondary-node-eviction-rate 重写为0. |
--leader-elect | 在执行主逻辑之前,启动leader选举,并获得leader权。 当为了高可用运行多个组件的时候启用该参数。默认值:true |
--leader-elect-lease-duration duration | Leader在被另外的候选者取代之前可以停止的最长时间。 只有当--leader-elect参数启用时该参数才适用。默认值:15s |
--leader-elect-renew-deadline | 代理Master在转换leader权和停止leader权之间的间隔时间,这个参数 必须小于--leader-elect-lease-duration duration。 只有当--leader-elect参数启用时该参数才适用。默认值:10s |
--leader-elect-resource-lock | 在leader选举期间锁定的资源对象类型。支持的选项: endpoints(默认)和configmaps |
--leader-elect-retry-period | 客户师徒获得和更换leader之间等待的时间。 只有当--leader-elect参数启用时该参数才适用。默认值:2s |
--log-flush-frequency | 日志刷新的间隔时间,默认值5s |
--master | Kubernetes API server的地址(覆盖kubeconfig中的任意值) |
--min-resync-period | 反射器的同步周期,取值MinResyncPeriod and 2*MinResyncPeriod的随机数。默认值12h0m0s |
--namespace-sync-period | 同步namespace生命周期更新的周期,默认值:5m0s |
--node-cidr-mask-size | 集群中node cidr的掩码大小,默认值:24 |
--node-eviction-rate | 一个健康的zone中Node失败时,每秒删除失败Node上Pod的百分比。 默认值:0.1,即默认10s删除失败节点的所有Pod。 zone是指非多区域集群中的整个集群 |
--node-monitor-grace-period | 标识node为unhealthy之前,允许运行node不响应的时间, 必须是kubelet nodeStatusUpdateFrequency参数的N倍,其中N表示 允许kubelet节点状态的重试次数。默认值:40s |
--node-monitor-period | NodeController同步NodeStatus的间隔时间,默认值:5s |
--node-startup-grace-period | 在标记unhealthy之前,允许启动节点不响应的时间。默认值:1m0s |
--pod-eviction-timeout | 在失败节点删除pod的宽限期,默认值:5m0s |
--profiling | 通过web接口host:port/debug/pprof/ 启用profilling |
--pv-recycler-increment-timeout-nfs | 对于NFS洗涤pod,每个Gi向ActiveDeadlineSeconds增加的时间, 默认值:30s |
--pv-recycler-minimum-timeout-hostpath | 用于HostPath回收Pod的最小的activedeadlinesecond。该参数仅用于 开发测试,在多节点的集群不能使用。默认值60. |
--pv-recycler-minimum-timeout-nfs | 用于NFS回收Pod的最小的activedeadlinesecond,默认值:300 |
--pv-recycler-pod-template-filepath-hostpath | 用于Hostpath pv回收模板的pod定义的文件路径。 该参数仅用于开发测试,在多节点的集群不能使用。 |
--pv-recycler-pod-template-filepath-nfs | 用于NFS pv回收模板的pod定义的文件路径。 该参数仅用于开发测试,在多节点的集群不能使用。 |
--pv-recycler-timeout-increment-hostpath | 对于HostPath洗涤pod,每个Gi向ActiveDeadlineSeconds增加的时间, 该参数仅用于开发测试,在多节点的集群不能使用。默认值:30s |
--pvclaimbinder-sync-period duration | 同步pv和pv 请求的周期,默认值:15s |
--requestheader-allowed-names | 客户端证书常用名称列表,允许--requestheader-username-headers中 指定的标头提供用户名。如为空,则允许--requestheader-client-ca-file 文件中当局验证的任何客户端证书。 |
--requestheader-client-ca-file | 用于在信任由—requestheader-username-headers指定的标头中的 用户名前,验证传入请求的客户端证书的根证书绑定包 |
--requestheader-extra-headers-prefix | 要检查的请求标头前缀列表。建议设定为X-Remote-Extra. |
--requestheader-group-headers | 要检查组的请求标头列表。建议设定为X-Remote-Group |
--requestheader-username-headers | 要检查用户名的请求标头列表。常用X-Remote-User |
--resource-quota-sync-period | 同步系统配额使用状态的周期,默认值:5m0s |
--root-ca-file | 如果设置,该根证书权限将包含service acount的toker secret。 这必须是一个有效的PEM编码CA 包。 |
--route-reconciliation-period | cloud provider为节点创建协调路由的周期,默认值:10s |
--secondary-node-eviction-rate | 区域不健康时,当节点失败,每秒删除失败Node上pod的百分比。如果集 群规模小于--large-cluster-size-threshold,则该值将隐式重写为0。 默认值:0.01,即默认100s删除失败节点的所有Pod。 |
--secure-port | 使用身份验证和授权为HTTPS提供服务的端口。如果是0,表示 不提供HTTPS服务。默认值:10257 |
--service-account-private-key-file | 包含用于签署service account token的PEM编码RSA或者ECDSA 私钥的文件名 |
--service-cluster-ip-rang | 集群Services 的CIDR范围。需要--allocate-node-cidrs设为true |
--terminated-pod-gc-threshold | 在pod垃圾收集器开始删除终止pod之前,可以存在的终止pod数量。 默认值:12500 |
--tls-cert-file | 包含用于HTTPS的默认x509证书的文件。如果HTTPS服务启用,并且 --tls-cert-file和--tls-private-key-file没有提供,将为公共地址生成 自签名证书和密钥,并保存到--cert-dir制定的目录。 |
--tls-cipher-suites | 用逗号分隔服务器密码套件列表。如果省略,将使用默认的Go密码套件 |
--tls-min-version | 支持的最小的TLS版本。可能的值:VersionTLS10, VersionTLS11, VersionTLS12 |
--tls-private-key-file | 包含匹配--tls-cert-file的默认x509私钥的文件 |
--unhealthy-zone-threshold | 区域被视为不健康时,Not Ready 节点的比例 |
--use-service-account-credentials | 如果true,为每个控制器使用单独的service account证书 |
--tls-sni-cert-key namedCertKey | A pair of x509 certificate and private key file paths, optionally suffixed with a list of domain patterns which are fully qualified domain names, possibly with prefixed wildcard segments. If no domain patterns are provided, the names of the certificate are extracted. Non-wildcard matches trump over wildcard matches, explicit domain patterns trump over extracted names. For multiple key/certificate pairs, use the --tls-sni-cert-key multiple times. Examples: "example.crt,example.key" or "foo.crt,foo.key:*.foo.com,foo.com". Default:[] |