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