From 05381f6078ab9ce15487e813ceeb6a14aab423fe Mon Sep 17 00:00:00 2001 From: Hao Yuan Date: Wed, 2 Dec 2020 15:19:40 +0800 Subject: [PATCH] sync kube-controller-manager, kube-proxy and kubelet-authentication-authorization --- .../kube-controller-manager.md | 423 +++++++++++++++++- .../kube-proxy.md | 295 ++++++++++-- .../kubelet-authentication-authorization.md | 109 ++++- 3 files changed, 773 insertions(+), 54 deletions(-) diff --git a/content/zh/docs/reference/command-line-tools-reference/kube-controller-manager.md b/content/zh/docs/reference/command-line-tools-reference/kube-controller-manager.md index 602d0bdbfa..34d86b0bba 100644 --- a/content/zh/docs/reference/command-line-tools-reference/kube-controller-manager.md +++ b/content/zh/docs/reference/command-line-tools-reference/kube-controller-manager.md @@ -262,6 +262,23 @@ kube-controller-manager [flags] 包含 PEM 编码格式的 X509 CA 证书的文件名。该证书用来发放集群范围的证书。 + + + +--cluster-signing-duration duration     默认值: 8760h0m0s + + + + + +所签名证书的有效期限。 + + + --cluster-signing-key-file string     默认值:"/etc/kubernetes/ca/ca.key" @@ -271,6 +288,118 @@ kube-controller-manager [flags] 包含 PEM 编码的 RSA 或 ECDSA 私钥的文件名。该私钥用来对集群范围证书签名。 + +--cluster-signing-kube-apiserver-client-cert-file string + + + + +包含 PEM 编码的 X509 CA 证书的文件名, +该证书用于为 kubernetes.io/kube-apiserver-client 签署者颁发证书。 +如果指定,则不得设置 --cluster-signing-{cert,key}-file。 + + + + +--cluster-signing-kube-apiserver-client-key-file string + + + + +包含 PEM 编码的 RSA 或 ECDSA 私钥的文件名, +该私钥用于为 kubernetes.io/kube-apiserver-client 签署者签名证书。 +如果指定,则不得设置 --cluster-signing-{cert,key}-file。 + + + + +--cluster-signing-kubelet-client-cert-file string + + + + +包含 PEM 编码的 X509 CA 证书的文件名, +该证书用于为 kubernetes.io/kube-apiserver-client-kubelet 签署者颁发证书。 +如果指定,则不得设置 --cluster-signing-{cert,key}-file。 + + + + +--cluster-signing-kubelet-client-key-file string + + + + +包含 PEM 编码的 RSA 或 ECDSA 私钥的文件名, +该私钥用于为 kubernetes.io/kube-apiserver-client-kubelet 签署者签名证书。 +如果指定,则不得设置 --cluster-signing-{cert,key}-file。 + + + + +--cluster-signing-kubelet-serving-cert-file string + + + + +包含 PEM 编码的 X509 CA 证书的文件名, +该证书用于为 kubernetes.io/kubelet-serving 签署者颁发证书。 +如果指定,则不得设置 --cluster-signing-{cert,key}-file。 + + + + +--cluster-signing-kubelet-serving-key-file string + + + + +包含 PEM 编码的 RSA或ECDSA 私钥的文件名, +该私钥用于对 kubernetes.io/kubelet-serving 签署者的证书进行签名。 +如果指定,则不得设置 --cluster-signing-{cert,key}-file。 + + + + +--cluster-signing-legacy-unknown-cert-file string + + + + +包含 PEM 编码的 X509 CA 证书的文件名, +用于为 kubernetes.io/legacy-unknown 签署者颁发证书。 +如果指定,则不得设置 --cluster-signing-{cert,key}-file。 + + + + +--cluster-signing-legacy-unknown-key-file string + + + + +包含 PEM 编码的 RSA 或 ECDSA 私钥的文件名, +用于为 kubernetes.io/legacy-unknown 签署者签名证书。 +如果指定,则不得设置 --cluster-signing-{cert,key}-file。 + + + --concurrent-deployment-syncs int32     默认值:5 @@ -409,9 +538,9 @@ kube-controller-manager [flags] --controllers stringSlice     默认值:[*] - + 要启用的控制器列表。* 表示启用所有默认启用的控制器;foo 启用名为 foo 的控制器;-foo 表示禁用名为 foo 的控制器。
-控制器的全集:attachdetach、bootstrapsigner、cloud-node-lifecycle、clusterrole-aggregation、cronjob、csrapproving、csrcleaner、csrsigning、daemonset、deployment、disruption、endpoint、endpointslice、garbagecollector、horizontalpodautoscaling、job、namespace、nodeipam、nodelifecycle、persistentvolume-binder、persistentvolume-expander、podgc、pv-protection、pvc-protection、replicaset、replicationcontroller、resourcequota、root-ca-cert-publisher、route、service、serviceaccount、serviceaccount-token、statefulset、tokencleaner、ttl、ttl-after-finished
+控制器的全集:attachdetach、bootstrapsigner、cloud-node-lifecycle、clusterrole-aggregation、cronjob、csrapproving、csrcleaner、csrsigning、daemonset、deployment、disruption、endpoint、endpointslice、endpointslicemirroring、ephemeral-volume、garbagecollector、horizontalpodautoscaling、job、namespace、nodeipam、nodelifecycle、persistentvolume-binder、persistentvolume-expander、podgc、pv-protection、pvc-protection、replicaset、replicationcontroller、resourcequota、root-ca-cert-publisher、route、service、serviceaccount、serviceaccount-token、statefulset、tokencleaner、ttl、ttl-after-finished
默认禁用的控制器有:bootstrapsigner 和 tokencleaner。 @@ -482,14 +611,6 @@ kube-controller-manager [flags] 端点片段(Endpoint Slice)批量更新周期时长。对 Pods 变更的处理会被延迟,以便将其与即将到来的更新操作合并,从而减少端点更新操作次数。较大的数值意味着端点更新的迟滞时间会增长,也意味着所生成的端点版本个数会变少。 - - ---experimental-cluster-signing-duration duration     默认值:8760h0m0s - - -所签署的证书的有效期时长。 - - --external-cloud-volume-plugin string @@ -502,8 +623,180 @@ kube-controller-manager [flags] --feature-gates mapStringBool - -一组 key=value 耦对,用来描述测试性/试验性功能的特性门控(Feature Gate)。可选项有:
APIListChunking=true|false (BETA - default=true)
APIPriorityAndFairness=true|false (ALPHA - default=false)
APIResponseCompression=true|false (BETA - default=true)
AllAlpha=true|false (ALPHA - default=false)
AllBeta=true|false (BETA - default=false)
AllowInsecureBackendProxy=true|false (BETA - default=true)
AnyVolumeDataSource=true|false (ALPHA - default=false)
AppArmor=true|false (BETA - default=true)
BalanceAttachedNodeVolumes=true|false (ALPHA - default=false)
BoundServiceAccountTokenVolume=true|false (ALPHA - default=false)
CPUManager=true|false (BETA - default=true)
CRIContainerLogRotation=true|false (BETA - default=true)
CSIInlineVolume=true|false (BETA - default=true)
CSIMigration=true|false (BETA - default=true)
CSIMigrationAWS=true|false (BETA - default=false)
CSIMigrationAWSComplete=true|false (ALPHA - default=false)
CSIMigrationAzureDisk=true|false (ALPHA - default=false)
CSIMigrationAzureDiskComplete=true|false (ALPHA - default=false)
CSIMigrationAzureFile=true|false (ALPHA - default=false)
CSIMigrationAzureFileComplete=true|false (ALPHA - default=false)
CSIMigrationGCE=true|false (BETA - default=false)
CSIMigrationGCEComplete=true|false (ALPHA - default=false)
CSIMigrationOpenStack=true|false (BETA - default=false)
CSIMigrationOpenStackComplete=true|false (ALPHA - default=false)
ConfigurableFSGroupPolicy=true|false (ALPHA - default=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - default=false)
DefaultIngressClass=true|false (BETA - default=true)
DevicePlugins=true|false (BETA - default=true)
DryRun=true|false (BETA - default=true)
DynamicAuditing=true|false (ALPHA - default=false)
DynamicKubeletConfig=true|false (BETA - default=true)
EndpointSlice=true|false (BETA - default=true)
EndpointSliceProxying=true|false (ALPHA - default=false)
EphemeralContainers=true|false (ALPHA - default=false)
EvenPodsSpread=true|false (BETA - default=true)
ExpandCSIVolumes=true|false (BETA - default=true)
ExpandInUsePersistentVolumes=true|false (BETA - default=true)
ExpandPersistentVolumes=true|false (BETA - default=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false)
HPAScaleToZero=true|false (ALPHA - default=false)
HugePageStorageMediumSize=true|false (ALPHA - default=false)
HyperVContainer=true|false (ALPHA - default=false)
IPv6DualStack=true|false (ALPHA - default=false)
ImmutableEphemeralVolumes=true|false (ALPHA - default=false)
KubeletPodResources=true|false (BETA - default=true)
LegacyNodeRoleBehavior=true|false (ALPHA - default=true)
LocalStorageCapacityIsolation=true|false (BETA - default=true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - default=false)
NodeDisruptionExclusion=true|false (ALPHA - default=false)
NonPreemptingPriority=true|false (ALPHA - default=false)
PodDisruptionBudget=true|false (BETA - default=true)
PodOverhead=true|false (BETA - default=true)
ProcMountType=true|false (ALPHA - default=false)
QOSReserved=true|false (ALPHA - default=false)
RemainingItemCount=true|false (BETA - default=true)
RemoveSelfLink=true|false (ALPHA - default=false)
ResourceLimitsPriorityFunction=true|false (ALPHA - default=false)
RotateKubeletClientCertificate=true|false (BETA - default=true)
RotateKubeletServerCertificate=true|false (BETA - default=true)
RunAsGroup=true|false (BETA - default=true)
RuntimeClass=true|false (BETA - default=true)
SCTPSupport=true|false (ALPHA - default=false)
SelectorIndex=true|false (ALPHA - default=false)
ServerSideApply=true|false (BETA - default=true)
ServiceAccountIssuerDiscovery=true|false (ALPHA - default=false)
ServiceAppProtocol=true|false (ALPHA - default=false)
ServiceNodeExclusion=true|false (ALPHA - default=false)
ServiceTopology=true|false (ALPHA - default=false)
StartupProbe=true|false (BETA - default=true)
StorageVersionHash=true|false (BETA - default=true)
SupportNodePidsLimit=true|false (BETA - default=true)
SupportPodPidsLimit=true|false (BETA - default=true)
Sysctls=true|false (BETA - default=true)
TTLAfterFinished=true|false (ALPHA - default=false)
TokenRequest=true|false (BETA - default=true)
TokenRequestProjection=true|false (BETA - default=true)
TopologyManager=true|false (BETA - default=true)
ValidateProxyRedirects=true|false (BETA - default=true)
VolumeSnapshotDataSource=true|false (BETA - default=true)
WinDSR=true|false (ALPHA - default=false)
WinOverlay=true|false (ALPHA - default=false) + +一组 key=value 对,用来描述测试性/试验性功能的特性门控(Feature Gate)。可选项有: +
APIListChunking=true|false (BETA - 默认值=true) +
APIPriorityAndFairness=true|false (ALPHA - 默认值=false) +
APIResponseCompression=true|false (BETA - 默认值=true) +
AllAlpha=true|false (ALPHA - 默认值=false) +
AllBeta=true|false (BETA - 默认值=false) +
AllowInsecureBackendProxy=true|false (BETA - 默认值=true) +
AnyVolumeDataSource=true|false (ALPHA - 默认值=false) +
AppArmor=true|false (BETA - 默认值=true) +
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false) +
BoundServiceAccountTokenVolume=true|false (ALPHA - 默认值=false) +
CPUManager=true|false (BETA - 默认值=true) +
CRIContainerLogRotation=true|false (BETA - 默认值=true) +
CSIInlineVolume=true|false (BETA - 默认值=true) +
CSIMigration=true|false (BETA - 默认值=true) +
CSIMigrationAWS=true|false (BETA - 默认值=false) +
CSIMigrationAWSComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationAzureDisk=true|false (BETA - 默认值=false) +
CSIMigrationAzureDiskComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationAzureFile=true|false (ALPHA - 默认值=false) +
CSIMigrationAzureFileComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationGCE=true|false (BETA - 默认值=false) +
CSIMigrationGCEComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationOpenStack=true|false (BETA - 默认值=false) +
CSIMigrationOpenStackComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationvSphere=true|false (BETA - 默认值=false) +
CSIMigrationvSphereComplete=true|false (BETA - 默认值=false) +
CSIStorageCapacity=true|false (ALPHA - 默认值=false) +
CSIVolumeFSGroupPolicy=true|false (ALPHA - 默认值=false) +
ConfigurableFSGroupPolicy=true|false (ALPHA - 默认值=false) +
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false) +
DefaultPodTopologySpread=true|false (ALPHA - 默认值=false) +
DevicePlugins=true|false (BETA - 默认值=true) +
DisableAcceleratorUsageMetrics=true|false (ALPHA - 默认值=false) +
DynamicKubeletConfig=true|false (BETA - 默认值=true) +
EndpointSlice=true|false (BETA - 默认值=true) +
EndpointSliceProxying=true|false (BETA - 默认值=true) +
EphemeralContainers=true|false (ALPHA - 默认值=false) +
ExpandCSIVolumes=true|false (BETA - 默认值=true) +
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true) +
ExpandPersistentVolumes=true|false (BETA - 默认值=true) +
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false) +
GenericEphemeralVolume=true|false (ALPHA - 默认值=false) +
HPAScaleToZero=true|false (ALPHA - 默认值=false) +
HugePageStorageMediumSize=true|false (BETA - 默认值=true) +
HyperVContainer=true|false (ALPHA - 默认值=false) +
IPv6DualStack=true|false (ALPHA - 默认值=false) +
ImmutableEphemeralVolumes=true|false (BETA - 默认值=true) +
KubeletPodResources=true|false (BETA - 默认值=true) +
LegacyNodeRoleBehavior=true|false (BETA - 默认值=true) +
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true) +
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false) +
NodeDisruptionExclusion=true|false (BETA - 默认值=true) +
NonPreemptingPriority=true|false (BETA - 默认值=true) +
PodDisruptionBudget=true|false (BETA - 默认值=true) +
PodOverhead=true|false (BETA - 默认值=true) +
ProcMountType=true|false (ALPHA - 默认值=false) +
QOSReserved=true|false (ALPHA - 默认值=false) +
RemainingItemCount=true|false (BETA - 默认值=true) +
RemoveSelfLink=true|false (ALPHA - 默认值=false) +
RotateKubeletServerCertificate=true|false (BETA - 默认值=true) +
RunAsGroup=true|false (BETA - 默认值=true) +
RuntimeClass=true|false (BETA - 默认值=true) +
SCTPSupport=true|false (BETA - 默认值=true) +
SelectorIndex=true|false (BETA - 默认值=true) +
ServerSideApply=true|false (BETA - 默认值=true) +
ServiceAccountIssuerDiscovery=true|false (ALPHA - 默认值=false) +
ServiceAppProtocol=true|false (BETA - 默认值=true) +
ServiceNodeExclusion=true|false (BETA - 默认值=true) +
ServiceTopology=true|false (ALPHA - 默认值=false) +
SetHostnameAsFQDN=true|false (ALPHA - 默认值=false) +
StartupProbe=true|false (BETA - 默认值=true) +
StorageVersionHash=true|false (BETA - 默认值=true) +
SupportNodePidsLimit=true|false (BETA - 默认值=true) +
SupportPodPidsLimit=true|false (BETA - 默认值=true) +
Sysctls=true|false (BETA - 默认值=true) +
TTLAfterFinished=true|false (ALPHA - 默认值=false) +
TokenRequest=true|false (BETA - 默认值=true) +
TokenRequestProjection=true|false (BETA - 默认值=true) +
TopologyManager=true|false (BETA - 默认值=true) +
ValidateProxyRedirects=true|false (BETA - 默认值=true) +
VolumeSnapshotDataSource=true|false (BETA - 默认值=true) +
WarningHeaders=true|false (BETA - 默认值=true) +
WinDSR=true|false (ALPHA - 默认值=false) +
WinOverlay=true|false (ALPHA - 默认值=false) +
WindowsEndpointSliceProxying=true|false (ALPHA - 默认值=false) + @@ -647,12 +940,20 @@ kube-controller-manager [flags] - ---leader-elect-resource-lock endpoints     默认值:"endpointsleases" + + +--leader-elect-resource-lock string     默认值:"endpointsleases" + - -在领导者选举期间用来执行锁操作的资源对象类型。可选项为 endpointsleases (默认值)和 configmaps。 + + +在领导者选举期间用于锁定的资源对象的类型。 支持的选项为'endpoints'、'configmaps'、'leases'、'endpointsleases' 和 'configmapsleases'。 + @@ -723,6 +1024,25 @@ kube-controller-manager [flags] 将内存中日志数据清除到日志文件中时,相邻两次清除操作之间最大间隔秒数。 + + + +--logging-format string     默认值:"text" + + + + + +设置日志格式。允许的格式:"text","json"。 +
非默认格式不支持以下标志:--add_dir_header、--alsologtostderr、--log_backtrace_at、--log_dir、--log_file、--log_file_max_size、--logtostderr、--skip_headers、--skip_log_headers、--stderrthreshold、--vmodule、--log-flush-frequency。 +
当前非默认选项为 Alpha,如有更改,恕不另行通知。 + + + --logtostderr     默认值:true @@ -758,6 +1078,58 @@ kube-controller-manager [flags] 自省程序的重新同步时隔下限。实际时隔长度会在 min-resync-period 和 2 * min-resync-period 之间。 + + + +--mirroring-concurrent-service-endpoint-syncs int32     默认值:5 + + + + + +EndpointSliceMirroring 控制器将同时执行的服务端点同步操作数。 +较大的数量 = 更快的端点切片更新,但 CPU(和网络)负载更多。 默认为 5。 + + + + +--mirroring-endpointslice-updates-batch-period duration + + + + +EndpointSlice 的长度更新了 EndpointSliceMirroring 控制器的批处理周期。 +EndpointSlice 更改的处理将延迟此持续时间, +以使它们与潜在的即将进行的更新结合在一起,并减少 EndpointSlice 更新的总数。 +较大的数量 = 较高的端点编程延迟,但是生成的端点修订版本数量较少 + + + + + + +--mirroring-max-endpoints-per-subset int32     默认值:1000 + + + + + +EndpointSliceMirroring 控制器将添加到 EndpointSlice 的最大端点数。 +每个分片的端点越多,端点分片越少,但资源越大。 +默认为 100。 + + + --namespace-sync-period duration     默认值:5m0s @@ -827,6 +1199,20 @@ kube-controller-manager [flags] 在节点启动期间,节点可以处于无响应状态;但超出此标志所设置的时长仍然无响应则该节点被标记为不健康。 + +--permit-port-sharing + + + + +如果为 true,则在绑定端口时将使用 SO_REUSEPORT, +这允许多个实例在同一地址和端口上进行绑定。 +[默认值 = false] + + + --pod-eviction-timeout duration     默认值:5m0s @@ -1058,8 +1444,9 @@ kube-controller-manager [flags] --tls-cipher-suites stringSlice - -供服务器使用的加密包的逗号分隔列表。若忽略此标志,则使用 Go 语言默认的加密包。可选值包括:TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_RC4_128_SHA + +供服务器使用的加密包的逗号分隔列表。若忽略此标志,则使用 Go 语言默认的加密包。可选值包括:TLS_AES_128_GCM_SHA256、TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256、TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256、TLS_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384. +
不安全的值: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_RC4_128_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_RC4_128_SHA、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_RC4_128_SHA diff --git a/content/zh/docs/reference/command-line-tools-reference/kube-proxy.md b/content/zh/docs/reference/command-line-tools-reference/kube-proxy.md index ffbc4e7ec8..1c98ff35da 100644 --- a/content/zh/docs/reference/command-line-tools-reference/kube-proxy.md +++ b/content/zh/docs/reference/command-line-tools-reference/kube-proxy.md @@ -209,15 +209,215 @@ Idle timeout for established TCP connections (0 to leave as-is) + +--detect-local-mode LocalMode + + + + +用于检测本地流量的模式 + + + --feature-gates mapStringBool -一组键=值(key=value)对,描述了 alpha/experimental 的特征。可选项有:
APIListChunking=true|false (BETA - 默认值=true)
APIResponseCompression=true|false (BETA - 默认值=true)
AllAlpha=true|false (ALPHA - 默认值=false)
AppArmor=true|false (BETA - 默认值=true)
AttachVolumeLimit=true|false (BETA - 默认值=true)
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false)
BlockVolume=true|false (BETA - 默认值=true)
BoundServiceAccountTokenVolume=true|false (ALPHA - 默认值=false)
CPUManager=true|false (BETA - 默认值=true)
CRIContainerLogRotation=true|false (BETA - 默认值=true)
CSIBlockVolume=true|false (BETA - 默认值=true)
CSIDriverRegistry=true|false (BETA - 默认值=true)
CSIInlineVolume=true|false (BETA - 默认值=true)
CSIMigration=true|false (ALPHA - 默认值=false)
CSIMigrationAWS=true|false (ALPHA - 默认值=false)
CSIMigrationAzureDisk=true|false (ALPHA - 默认值=false)
CSIMigrationAzureFile=true|false (ALPHA - 默认值=false)
CSIMigrationGCE=true|false (ALPHA - 默认值=false)
CSIMigrationOpenStack=true|false (ALPHA - 默认值=false)
CSINodeInfo=true|false (BETA - 默认值=true)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
CustomResource默认值ing=true|false (BETA - 默认值=true)
DevicePlugins=true|false (BETA - 默认值=true)
DryRun=true|false (BETA - 默认值=true)
DynamicAuditing=true|false (ALPHA - 默认值=false)
DynamicKubeletConfig=true|false (BETA - 默认值=true)
EndpointSlice=true|false (ALPHA - 默认值=false)
EphemeralContainers=true|false (ALPHA - 默认值=false)
EvenPodsSpread=true|false (ALPHA - 默认值=false)
ExpandCSIVolumes=true|false (BETA - 默认值=true)
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true)
ExpandPersistentVolumes=true|false (BETA - 默认值=true)
ExperimentalHostUserNamespace默认值ing=true|false (BETA - 默认值=false)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HyperVContainer=true|false (ALPHA - 默认值=false)
IPv6DualStack=true|false (ALPHA - 默认值=false)
KubeletPodResources=true|false (BETA - 默认值=true)
LegacyNodeRoleBehavior=true|false (ALPHA - 默认值=true)
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
MountContainers=true|false (ALPHA - 默认值=false)
NodeDisruptionExclusion=true|false (ALPHA - 默认值=false)
NodeLease=true|false (BETA - 默认值=true)
NonPreemptingPriority=true|false (ALPHA - 默认值=false)
PodOverhead=true|false (ALPHA - 默认值=false)
PodShareProcessNamespace=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
QOSReserved=true|false (ALPHA - 默认值=false)
RemainingItemCount=true|false (BETA - 默认值=true)
RemoveSelfLink=true|false (ALPHA - 默认值=false)
RequestManagement=true|false (ALPHA - 默认值=false)
ResourceLimitsPriorityFunction=true|false (ALPHA - 默认值=false)
ResourceQuotaScopeSelectors=true|false (BETA - 默认值=true)
RotateKubeletClientCertificate=true|false (BETA - 默认值=true)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
RunAsGroup=true|false (BETA - 默认值=true)
RuntimeClass=true|false (BETA - 默认值=true)
SCTPSupport=true|false (ALPHA - 默认值=false)
ScheduleDaemonSetPods=true|false (BETA - 默认值=true)
ServerSideApply=true|false (BETA - 默认值=true)
ServiceLoadBalancerFinalizer=true|false (BETA - 默认值=true)
ServiceNodeExclusion=true|false (ALPHA - 默认值=false)
StartupProbe=true|false (BETA - 默认值=true)
StorageVersionHash=true|false (BETA - 默认值=true)
StreamingProxyRedirects=true|false (BETA - 默认值=true)
SupportNodePidsLimit=true|false (BETA - 默认值=true)
SupportPodPidsLimit=true|false (BETA - 默认值=true)
Sysctls=true|false (BETA - 默认值=true)
TTLAfterFinished=true|false (ALPHA - 默认值=false)
TaintBasedEvictions=true|false (BETA - 默认值=true)
TaintNodesByCondition=true|false (BETA - 默认值=true)
TokenRequest=true|false (BETA - 默认值=true)
TokenRequestProjection=true|false (BETA - 默认值=true)
TopologyManager=true|false (ALPHA - 默认值=false)
ValidateProxyRedirects=true|false (BETA - 默认值=true)
VolumePVCDataSource=true|false (BETA - 默认值=true)
VolumeSnapshotDataSource=true|false (ALPHA - 默认值=false)
VolumeSubpathEnvExpansion=true|false (BETA - 默认值=true)
WatchBookmark=true|false (BETA - 默认值=true)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (ALPHA - 默认值=false)
WindowsGMSA=true|false (BETA - 默认值=true)
WindowsRunAsUserName=true|false (ALPHA - 默认值=false) +一组键=值(key=value)对,描述了 alpha/experimental 的特征。可选项有: +
APIListChunking=true|false (BETA - 默认值=true) +
APIPriorityAndFairness=true|false (ALPHA - 默认值=false) +
APIResponseCompression=true|false (BETA - 默认值=true) +
AllAlpha=true|false (ALPHA - 默认值=false) +
AllBeta=true|false (BETA - 默认值=false) +
AllowInsecureBackendProxy=true|false (BETA - 默认值=true) +
AnyVolumeDataSource=true|false (ALPHA - 默认值=false) +
AppArmor=true|false (BETA - 默认值=true) +
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值=false) +
BoundServiceAccountTokenVolume=true|false (ALPHA - 默认值=false) +
CPUManager=true|false (BETA - 默认值=true) +
CRIContainerLogRotation=true|false (BETA - 默认值=true) +
CSIInlineVolume=true|false (BETA - 默认值=true) +
CSIMigration=true|false (BETA - 默认值=true) +
CSIMigrationAWS=true|false (BETA - 默认值=false) +
CSIMigrationAWSComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationAzureDisk=true|false (BETA - 默认值=false) +
CSIMigrationAzureDiskComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationAzureFile=true|false (ALPHA - 默认值=false) +
CSIMigrationAzureFileComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationGCE=true|false (BETA - 默认值=false) +
CSIMigrationGCEComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationOpenStack=true|false (BETA - 默认值=false) +
CSIMigrationOpenStackComplete=true|false (ALPHA - 默认值=false) +
CSIMigrationvSphere=true|false (BETA - 默认值=false) +
CSIMigrationvSphereComplete=true|false (BETA - 默认值=false) +
CSIStorageCapacity=true|false (ALPHA - 默认值=false) +
CSIVolumeFSGroupPolicy=true|false (ALPHA - 默认值=false) +
ConfigurableFSGroupPolicy=true|false (ALPHA - 默认值=false) +
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false) +
DefaultPodTopologySpread=true|false (ALPHA - 默认值=false) +
DevicePlugins=true|false (BETA - 默认值=true) +
DisableAcceleratorUsageMetrics=true|false (ALPHA - 默认值=false) +
DynamicKubeletConfig=true|false (BETA - 默认值=true) +
EndpointSlice=true|false (BETA - 默认值=true) +
EndpointSliceProxying=true|false (BETA - 默认值=true) +
EphemeralContainers=true|false (ALPHA - 默认值=false) +
ExpandCSIVolumes=true|false (BETA - 默认值=true) +
ExpandInUsePersistentVolumes=true|false (BETA - 默认值=true) +
ExpandPersistentVolumes=true|false (BETA - 默认值=true) +
ExperimentalHostUserNamespace默认值ing=true|false (BETA - 默认值=false) +
GenericEphemeralVolume=true|false (ALPHA - 默认值=false) +
HPAScaleToZero=true|false (ALPHA - 默认值=false) +
HugePageStorageMediumSize=true|false (BETA - 默认值=true) +
HyperVContainer=true|false (ALPHA - 默认值=false) +
IPv6DualStack=true|false (ALPHA - 默认值=false) +
ImmutableEphemeralVolumes=true|false (BETA - 默认值=true) +
KubeletPodResources=true|false (BETA - 默认值=true) +
LegacyNodeRoleBehavior=true|false (BETA - 默认值=true) +
LocalStorageCapacityIsolation=true|false (BETA - 默认值=true) +
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false) +
NodeDisruptionExclusion=true|false (BETA - 默认值=true) +
NonPreemptingPriority=true|false (BETA - 默认值=true) +
PodDisruptionBudget=true|false (BETA - 默认值=true) +
PodOverhead=true|false (BETA - 默认值=true) +
ProcMountType=true|false (ALPHA - 默认值=false) +
QOSReserved=true|false (ALPHA - 默认值=false) +
RemainingItemCount=true|false (BETA - 默认值=true) +
RemoveSelfLink=true|false (ALPHA - 默认值=false) +
RotateKubeletServerCertificate=true|false (BETA - 默认值=true) +
RunAsGroup=true|false (BETA - 默认值=true) +
RuntimeClass=true|false (BETA - 默认值=true) +
SCTPSupport=true|false (BETA - 默认值=true) +
SelectorIndex=true|false (BETA - 默认值=true) +
ServerSideApply=true|false (BETA - 默认值=true) +
ServiceAccountIssuerDiscovery=true|false (ALPHA - 默认值=false) +
ServiceAppProtocol=true|false (BETA - 默认值=true) +
ServiceNodeExclusion=true|false (BETA - 默认值=true) +
ServiceTopology=true|false (ALPHA - 默认值=false) +
SetHostnameAsFQDN=true|false (ALPHA - 默认值=false) +
StartupProbe=true|false (BETA - 默认值=true) +
StorageVersionHash=true|false (BETA - 默认值=true) +
SupportNodePidsLimit=true|false (BETA - 默认值=true) +
SupportPodPidsLimit=true|false (BETA - 默认值=true) +
Sysctls=true|false (BETA - 默认值=true) +
TTLAfterFinished=true|false (ALPHA - 默认值=false) +
TokenRequest=true|false (BETA - 默认值=true) +
TokenRequestProjection=true|false (BETA - 默认值=true) +
TopologyManager=true|false (BETA - 默认值=true) +
ValidateProxyRedirects=true|false (BETA - 默认值=true) +
VolumeSnapshotDataSource=true|false (BETA - 默认值=true) +
WarningHeaders=true|false (BETA - 默认值=true) +
WinDSR=true|false (ALPHA - 默认值=false) +
WinOverlay=true|false (ALPHA - 默认值=false) +
WindowsEndpointSliceProxying=true|false (ALPHA - 默认值=false) + + + + + + +--healthz-bind-address 0.0.0.0     默认值: 0.0.0.0:10256 + + + + + +服务健康检查的 IP 地址和端口(对于所有 IPv4 接口设置为 '0.0.0.0:10256',对于所有 IPv6 接口设置为 '[::]:10256') +设置为空则禁用。 @@ -234,24 +434,7 @@ A set of key=value pairs that describe feature gates for alpha/experimental feat -服务健康检查的 IP 地址和端口(对于所有 IPv4 接口设置为 0.0.0.0,对于所有 IPv6 接口设置为 ::) - - - - - - ---healthz-port int32     默认值: 10256 - - - - - -绑定健康检查服务的端口。使用 0 表示禁用。 +服务健康检查的 IP 地址和端口(设置为 0.0.0.0 表示使用所有 IPv4 接口,设置为 :: 表示使用所有 IPv6 接口) @@ -297,7 +480,12 @@ If using the pure iptables proxy, the bit of the fwmark space to mark packets re ---iptables-min-sync-period duration + + + --iptables-min-sync-period duration     默认值:1s + @@ -390,6 +578,43 @@ The maximum interval of how often ipvs rules are refreshed (e.g. '5s', '1m', '2h + + +--ipvs-tcp-timeout duration + + + + +空闲 IPVS TCP 连接的超时时间,0 保持连接(例如 '5s'、'1m'、'2h22m')。 + + + + +--ipvs-tcpfin-timeout duration + + + + +收到 FIN 数据包后,IPVS TCP 连接的超时,0 保持连接不变(例如 '5s'、'1m'、'2h22m')。 + + + + +--ipvs-udp-timeout duration + + + + +IPVS UDP 数据包的超时,0 保持连接不动(例如 '5s'、'1m'、'2h22m')。 + + + ---metrics-bind-address 0.0.0.0     默认值: 127.0.0.1:10249 +--metrics-bind-address ipport 0.0.0.0     默认值: 127.0.0.1:10249 -metrics 服务器要使用的 IP 地址(所有 IPv4 接口设置为 0.0.0.0,所有 IPv6 接口设置为 `::`) +metrics 服务器要使用的 IP 地址和端口 +(设置为 '0.0.0.0:10249' 则使用 IPv4 接口,设置为 '[::]:10249' 则使用所有 IPv6 接口) +设置为空则禁用。 @@ -593,6 +822,22 @@ Range of host ports (beginPort-endPort, single port or beginPort+offset, inclusi + +--show-hidden-metrics-for-version string + + + + +你要显示隐藏指标的先前版本。 +仅先前的次要版本有意义,不允许其他值。 +格式为 <major>.<minor> ,例如:'1.16'。 +这种格式的目的是确保你有机会注意到下一个发行版是否隐藏了其他指标, +而不是在之后将其永久删除时感到惊讶。 + + + -{{< toc >}} - -## Overview + +## 概述 + +kubelet 的 HTTPS 端点公开了 API, +这些 API 可以访问敏感度不同的数据, +并允许你在节点上和容器内以不同级别的权限执行操作。 + +本文档介绍了如何对 kubelet 的 HTTPS 端点的访问进行认证和鉴权。 -## Kubelet authentication + +## Kubelet 认证 + +默认情况下,未被已配置的其他身份认证方法拒绝的对 kubelet 的 HTTPS 端点的请求会被视为匿名请求, +并被赋予 `system:anonymous` 用户名和 `system:unauthenticated` 组。 + +要禁用匿名访问并向未经身份认证的请求发送 `401 Unauthorized` 响应,请执行以下操作: -* start the kubelet with the `--anonymous-auth=false` flag + +* 带 `--anonymous-auth=false` 标志启动 kubelet + +要对 kubelet 的 HTTPS 端点启用 X509 客户端证书认证: + +* 带 `--client-ca-file` 标志启动 kubelet,提供一个 CA 证书包以供验证客户端证书 +* 带 `--kubelet-client-certificate` 和 `--kubelet-client-key` 标志启动 apiserver +* 有关更多详细信息,请参见 [apiserver 身份验证文档](/zh/docs/admin/authentication/#x509-client-certs) + +要启用 API 持有者令牌(包括服务帐户令牌)以对 kubelet 的 HTTPS 端点进行身份验证,请执行以下操作: + +* 确保在 API 服务器中启用了 `authentication.k8s.io/v1beta1` API 组 +* 带 `--authentication-token-webhook` 和 `--kubeconfig` 标志启动 kubelet +* kubelet 调用已配置的 API 服务器上的 `TokenReview` API,以根据持有者令牌确定用户信息 -## Kubelet authorization + +## Kubelet 鉴权 + +任何成功通过身份验证的请求(包括匿名请求)之后都会被鉴权。 +默认的鉴权模式为 `AlwaysAllow`,它允许所有请求。 + +细分对 kubelet API 的访问权限可能有多种原因: + +* 启用了匿名身份验证,但是应限制匿名用户调用 kubelet API 的能力 +* 启用了持有者令牌认证,但应限制任意 API 用户(如服务帐户)调用 kubelet API 的能力 +* 启用了客户端证书身份验证,但仅应允许已配置的 CA 签名的某些客户端证书使用 kubelet API + +要细分对 kubelet API 的访问权限,请将鉴权委派给 API 服务器: + +* 确保在 API 服务器中启用了 `authorization.k8s.io/v1beta1` API 组 +* 带 `--authorization-mode=Webhook` 和 `--kubeconfig` 标志启动 kubelet +* kubelet 调用已配置的 API 服务器上的 `SubjectAccessReview` API,以确定每个请求是否得到鉴权 + +kubelet 使用与 apiserver 相同的[请求属性](/zh/docs/admin/authorization/#request-attributes)方法对 API 请求执行鉴权。 + +请求的动词根据传入请求的 HTTP 动词确定: + +HTTP 动词 | 请求动词 ----------|--------------- POST | create GET, HEAD | get @@ -63,24 +136,38 @@ PUT | update PATCH | patch DELETE | delete + +资源和子资源是根据传入请求的路径确定的: -Kubelet API | resource | subresource + +Kubelet API | 资源 | 子资源 -------------|----------|------------ /stats/\* | nodes | stats /metrics/\* | nodes | metrics /logs/\* | nodes | log /spec/\* | nodes | spec -*all others* | nodes | proxy +*其它所有* | nodes | proxy + +名字空间和 API 组属性始终是空字符串, +资源名称始终是 kubelet 的 `Node` API 对象的名称。 + +在此模式下运行时,请确保传递给 apiserver 的由 `--kubelet-client-certificate` 和 +`--kubelet-client-key` 标志标识的用户具有以下属性的鉴权: * verb=\*, resource=nodes, subresource=proxy * verb=\*, resource=nodes, subresource=stats * verb=\*, resource=nodes, subresource=log * verb=\*, resource=nodes, subresource=spec -* verb=\*, resource=nodes, subresource=metrics +* verb=\*, resource=nodes, subresource=metrics \ No newline at end of file