乐趣区

关于kubernetes:kubeapiserver启动命令参数解释

在 apiserver 启动时候会有很多参数来配置启动命令,有些时候不是很明确这些参数具体指的是什么意思。

我的 kube-apiserver 启动命令参数:

cat > /usr/lib/systemd/system/kube-apiserver.service << EOF


[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes
After=network.target


[Service]
ExecStart=/usr/local/bin/kube-apiserver \
      --v=2  \
      --logtostderr=true  \
      --allow-privileged=true  \
      --bind-address=0.0.0.0  \
      --secure-port=6443  \
      --insecure-port=0  \
      --advertise-address=192.168.1.30 \
      --service-cluster-ip-range=10.96.0.0/12  \
      --service-node-port-range=30000-32767  \
      --etcd-servers=https://192.168.1.30:2379,https://192.168.1.31:2379,https://192.168.1.32:2379 \
      --etcd-cafile=/etc/etcd/ssl/etcd-ca.pem  \
      --etcd-certfile=/etc/etcd/ssl/etcd.pem  \
      --etcd-keyfile=/etc/etcd/ssl/etcd-key.pem  \
      --client-ca-file=/etc/kubernetes/pki/ca.pem  \
      --tls-cert-file=/etc/kubernetes/pki/apiserver.pem  \
      --tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem  \
      --kubelet-client-certificate=/etc/kubernetes/pki/apiserver.pem  \
      --kubelet-client-key=/etc/kubernetes/pki/apiserver-key.pem  \
      --service-account-key-file=/etc/kubernetes/pki/sa.pub  \
      --service-account-signing-key-file=/etc/kubernetes/pki/sa.key  \
      --service-account-issuer=https://kubernetes.default.svc.cluster.local \
      --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname  \
      --enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,ResourceQuota  \
      --authorization-mode=Node,RBAC  \
      --enable-bootstrap-token-auth=true  \
      --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.pem  \
      --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.pem  \
      --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client-key.pem  \
      --requestheader-allowed-names=aggregator  \
      --requestheader-group-headers=X-Remote-Group  \
      --requestheader-extra-headers-prefix=X-Remote-Extra-  \
      --requestheader-username-headers=X-Remote-User
      # --token-auth-file=/etc/kubernetes/token.csv


Restart=on-failure
RestartSec=10s
LimitNOFILE=65535


[Install]
WantedBy=multi-user.target


EOF

解释

-v, --v int
日志级别具体水平的数字。--logtostderr     默认值:true
在规范谬误而不是文件中输入日志记录。--bind-address string     默认值:"0.0.0.0"
用来监听 --secure-port 端口的 IP 地址。集群的其余部分以及 CLI/web 客户端必须能够拜访所关联的接口。如果为空白或未指定地址(0.0.0.0 或 ::),则将应用所有接口。--secure-port int     默认值:6443
带身份验证和鉴权机制的 HTTPS 服务端口。不能用 0 敞开。--advertise-address string
向集群成员告诉 apiserver 音讯的 IP 地址。这个地址必须可能被集群中其余成员拜访。如果 IP 地址为空,将会应用 --bind-address,如果未指定 --bind-address,将会应用主机的默认接口地址。--service-cluster-ip-range string
CIDR 示意的 IP 范畴用来为服务调配集群 IP。此地址不得与指定给节点或 Pod 的任何 IP 范畴重叠。--service-node-port-range < 模式为 'N1-N2' 的字符串 >     默认值:30000-32767
保留给具备 NodePort 可见性的服务的端口范畴。例如:"30000-32767"。范畴的两端都包含在内。--etcd-servers strings
要连贯的 etcd 服务器列表(scheme://ip:port),以逗号分隔。--etcd-cafile string
用于爱护 etcd 通信的 SSL 证书颁发机构文件。--etcd-certfile string
用于爱护 etcd 通信的 SSL 证书文件。--etcd-keyfile string
用于爱护 etcd 通信的 SSL 密钥文件。--client-ca-file string
如果已设置,则应用与客户端证书的 CommonName 对应的标识对任何出示由 client-ca 文件中的受权机构之一签名的客户端证书的申请进行身份验证。--tls-cert-file string
蕴含用于 HTTPS 的默认 x509 证书的文件。(CA 证书(如果有)在服务器证书之后并置)。如果启用了 HTTPS 服务,并且未提供 --tls-cert-file 和 --tls-private-key-file,为公共地址生成一个自签名证书和密钥,并将其保留到 --cert-dir 指定的目录中。--tls-private-key-file string
蕴含匹配 --tls-cert-file 的 x509 证书私钥的文件。--kubelet-client-certificate string
TLS 的客户端证书文件的门路。--kubelet-client-key string
TLS 客户端密钥文件的门路。--service-account-key-file strings
蕴含 PEM 编码的 x509 RSA 或 ECDSA 私钥或公钥的文件,用于验证 ServiceAccount 令牌。指定的文件能够蕴含多个键,并且能够应用不同的文件屡次指定标记。如果未指定,则应用 --tls-private-key-file。提供 --service-account-signing-key 时必须指定。--service-account-signing-key-file string
蕴含服务帐户令牌颁发者以后私钥的文件的门路。颁发者将应用此私钥签订所颁发的 ID 令牌。--service-account-issuer strings
服务帐号令牌颁发者的标识符。颁发者将在已方法令牌的 "iss" 申明中查看此标识符。此值为字符串或 URI。如果依据 OpenID Discovery 1.0 标准查看此选项不是无效的 URI,则即便个性门控设置为 true,ServiceAccountIssuerDiscovery 性能也将放弃禁用状态。强烈建议该值合乎 OpenID 标准:https://openid.net/specs/openid-connect-discovery-1_0.html。实际中,这意味着 service-account-issuer 取值必须是 HTTPS URL。还强烈建议此 URL 可能在 {service-account-issuer}/.well-known/openid-configuration 处提供 OpenID 发现文档。当此值被屡次指定时,第一次的值用于生成令牌,所有的值用于确定承受哪些发行人。--kubelet-preferred-address-types strings     默认值:Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP
用于 kubelet 连贯的首选 NodeAddressTypes 列表。--enable-admission-plugins stringSlice
除了默认启用的插件(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、PodSecurity、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionWebhook、ResourceQuota)之外要启用的插件
取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、EventRateLimit、ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、LimitRanger、MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、PersistentVolumeLabel、PodNodeSelector、PodSecurity、PodSecurityPolicy、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、SecurityContextDeny、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionWebhook
该标记中插件的程序无关紧要。--authorization-mode stringSlice     默认值:"AlwaysAllow"
在平安端口上进行鉴权的插件的程序列表。逗号分隔的列表:AlwaysAllow、AlwaysDeny、ABAC、Webhook、RBAC、Node。--enable-bootstrap-token-auth
启用以容许将 "kube-system" 名字空间中类型为 "bootstrap.kubernetes.io/token" 的 Secret 用于 TLS 疏导身份验证。--requestheader-client-ca-file string
在信赖申请头中以 --requestheader-username-headers 批示的用户名之前,用于验证接入申请中客户端证书的根证书包。正告:个别不要假设传入申请已被受权。--proxy-client-cert-file string
当必须调用内部程序以解决申请时,用于证实聚合器或者 kube-apiserver 的身份的客户端证书。包含代理转发到用户 api-server 的申请和调用 Webhook 准入管制插件的申请。Kubernetes 冀望此证书蕴含来自于 --requestheader-client-ca-file 标记中所给 CA 的签名。该 CA 在 kube-system 命名空间的 "extension-apiserver-authentication" ConfigMap 中公开。从 kube-aggregator 收到调用的组件应该应用该 CA 进行各自的双向 TLS 验证。--proxy-client-key-file string
当必须调用内部程序来解决申请时,用来证实聚合器或者 kube-apiserver 的身份的客户端私钥。这包含代理转发给用户 api-server 的申请和调用 Webhook 准入管制插件的申请。--requestheader-allowed-names strings
此值为客户端证书通用名称(Common Name)的列表;表中所列的表项能够用来提供用户名,形式是应用 --requestheader-username-headers 所指定的头部。如果为空,可能通过 --requestheader-client-ca-file 中机构 认证的客户端证书都是被容许的。--requestheader-group-headers strings
用于查验用户组的申请头部列表。倡议应用 X-Remote-Group。--requestheader-extra-headers-prefix strings
用于查验申请头部的前缀列表。倡议应用 X-Remote-Extra-。--requestheader-username-headers strings
用于查验用户名的申请头头列表。倡议应用 X-Remote-User。--token-auth-file string
如果设置该值,这个文件将被用于通过令牌认证来爱护 API 服务的平安端口。官网文档:https://kubernetes.io/zh/docs/reference/command-line-tools-reference/kube-apiserver/

https://www.oiox.cn/

https://www.chenby.cn/

https://cby-chen.github.io/

https://weibo.com/u/5982474121

https://blog.csdn.net/qq\_33921750

https://my.oschina.net/u/3981543

https://www.zhihu.com/people/…

https://segmentfault.com/u/hp…

https://juejin.cn/user/331578…

https://space.bilibili.com/35…

https://cloud.tencent.com/dev…

https://www.jianshu.com/u/0f8…

https://www.toutiao.com/c/use…

CSDN、GitHub、知乎、开源中国、思否、掘金、简书、腾讯云、哔哩哔哩、今日头条、新浪微博、集体博客、全网可搜《小陈运维》

退出移动版