k8s-controller-manager 参数

大番茄 2019年10月31日 422次浏览
--logtostderr   # 日志
--log-dir
--v

--allocate-node-cidrs                      # 是否允许为pod分配地址。
# 分配的pod的网段。  需要--allocate-node-cidrs。
# 比如flannel,就可以直接从集群获取可分配的地址,flannel直连etcd存储的情况下不需要这个参数。 一般用于cni网络情况下使用。
--cluster-cidr                             
--node-cidr-mask-size               # 节点与节点里的容器中的子网掩码,默认24.  ipv6是64.

--service-cluster-ip-range                 # 分配的service ip范围。  这个也是与云挂钩的。 一般不需要。 service ip 在apiserver那里指定了。

--leader-elect                             # 自动选举leader, 高可用环境使用。 拥有资源锁的controller才工作, 具体的机制应该是apiserver  watch  etcd, controller watch  apiserver,  没有锁的controller从apiserver收到变化不会做操作。  多个controller都会从apiserver收到变化, 但是只有一个会做操作。
# 这个锁不是每次请求都要加锁,而是这个controller节点获取到锁就可以处理请求。

# 端口监听
--address                                  # 不安全的监听端口所在地址。  一般controller都监听在127.0.0.1 , 用不到加密的端口。
--port                                     # 不安全的监听端口,  默认10252, 不需要认证, 提供/metrics监控接口。

--bind-address                             # 安全的监听端口所在地址
--secure-port                              # 安全的监听端口, https, 默认10257, 需要认证,提供/metrics监控接口。
--tls-cert-file                            # 安全端口所使用的证书,如果打开了https端口,并且也没有指定证书,会生成自签证书。
--tls-private-key-file

# 给节点颁发证书,如果不需要给kubelet自动颁发证书,这3个参数可以去掉。
# 因为apiserver使用CA证书验证客户端, 所以,这里的证书与key需要使用相同CA。
--cluster-signing-cert-file                # 用于颁发自动生成集群节点所使用的证书的ca证书
--cluster-signing-key-file                 # 用于签署给集群节点自动颁发的证书的签名的ca私钥。
--experimental-cluster-signing-duration    # 签署的证书有效期, 默认8760h0m0s(1年)。

# service account
--root-ca-file                             # 如果指定,会把所指定的ca证书放到service account中。
--service-account-private-key-file         # 加密service account token用的。 生成密钥对,这里指定私钥。   apiserver那里指定公钥。

--cluster-name                             # 集群名称
--master                                   # 连接apiserver。  如果连接apiserver的非安全端口,会使用这个参数。 如果是安全端口,要使用kubeconfig来指定认证信息。

--controllers                              # 启用的控制器, 默认除了bootstrapsigner 和 tokencleaner 都是启用的。如果都要启用。
# --controllers=*,bootstrapsigner,tokencleaner

Unit:

[Unit]
Description=kubernetes controller manager
After=kube-apiserver

[Service]
ExecStart=/opt/kubernetes/bin/kube-controller-manager \
--log-dir=/opt/kubernetes/log/controller \
--logtostderr=false \
--v=4 \
--leader-elect \
--address=127.0.0.1 \
--cluster-signing-cert-file=/opt/kubernetes/cert/k8s/kubernetes-ca.pem \
--cluster-signing-key-file=/opt/kubernetes/cert/k8s/kubernetes-ca.key \
--cluster-signing-duration=240h0m0s \
--node-cidr-mask-size=24 \
--allocate-node-cidrs \
--cluster-cidr=10.1.0.0/16 \
--root-ca-file=/opt/kubernetes/cert/k8s/kubernetes-ca.pem \
--service-account-private-key-file=/opt/kubernetes/cert/k8s/sa.key \
--cluster-name=kubenetes-op \
--master=http://127.0.0.1:8080

Restart=on-failure

[Install]
WantedBy=multi-user.target