[zh-cn]sync kubeadm-upgrade-phase topology-manager service-accounts

Signed-off-by: xin.li <xin.li@daocloud.io>
pull/49091/head
xin.li 2024-12-14 22:45:05 +08:00
parent c9a480c9a6
commit de7d373028
3 changed files with 70 additions and 32 deletions

View File

@ -381,9 +381,19 @@ You can also use TokenRequest to obtain short-lived tokens for your external app
{{< /note >}} {{< /note >}}
<!-- <!--
### Restricting access to Secrets {#enforce-mountable-secrets} ### Restricting access to Secrets (deprecated) {#enforce-mountable-secrets}
--> -->
### 限制对 Secret 的访问 {#enforce-mountable-secrets} ### 限制对 Secret 的访问(已弃用) {#enforce-mountable-secrets}
{{< feature-state for_k8s_version="v1.32" state="deprecated" >}}
{{< note >}}
<!--
`kubernetes.io/enforce-mountable-secrets` is deprecated since Kubernetes v1.32. Use separate namespaces to isolate access to mounted secrets.
-->
`kubernetes.io/enforce-mountable-secrets` 自 Kubernetes v1.32 起已弃用。
你可以使用单独的命名空间来隔离对挂载 Secret 的访问。
{{< /note >}}
<!-- <!--
Kubernetes provides an annotation called `kubernetes.io/enforce-mountable-secrets` Kubernetes provides an annotation called `kubernetes.io/enforce-mountable-secrets`
@ -425,7 +435,8 @@ the Secrets from this ServiceAccount are subject to certain mounting restriction
1. The name of each Secret referenced using `envFrom` in a Pod must also appear in the `secrets` 1. The name of each Secret referenced using `envFrom` in a Pod must also appear in the `secrets`
field of the Pod's ServiceAccount. field of the Pod's ServiceAccount.
--> -->
2. 在 Pod 中使用 `envFrom` 引用的每个 Secret 的名称也必须列在该 Pod 中 ServiceAccount 的 `secrets` 字段中。 2. 在 Pod 中使用 `envFrom` 引用的每个 Secret 的名称也必须列在该 Pod 中
ServiceAccount 的 `secrets` 字段中。
<!-- <!--
1. The name of each Secret referenced using `imagePullSecrets` in a Pod must also appear in the `secrets` 1. The name of each Secret referenced using `imagePullSecrets` in a Pod must also appear in the `secrets`
@ -456,7 +467,7 @@ acting as a ServiceAccount tries to communicate with the Kubernetes API server,
the client includes an `Authorization: Bearer <token>` header with the HTTP the client includes an `Authorization: Bearer <token>` header with the HTTP
request. The API server checks the validity of that bearer token as follows: request. The API server checks the validity of that bearer token as follows:
--> -->
ServiceAccount 使用签名的 JSON Web Token (JWT) 来向 Kubernetes API ServiceAccount 使用签名的 JSON Web TokenJWT来向 Kubernetes API
服务器以及任何其他存在信任关系的系统进行身份认证。根据令牌的签发方式 服务器以及任何其他存在信任关系的系统进行身份认证。根据令牌的签发方式
(使用 `TokenRequest` 限制时间或使用传统的 Secret 机制ServiceAccount (使用 `TokenRequest` 限制时间或使用传统的 Secret 机制ServiceAccount
令牌也可能有到期时间、受众和令牌**开始**生效的时间点。 令牌也可能有到期时间、受众和令牌**开始**生效的时间点。
@ -577,8 +588,8 @@ used in your application and nowhere else.
* [Use the CertificateSigningRequest API with client certificates](/docs/tasks/tls/managing-tls-in-a-cluster/). * [Use the CertificateSigningRequest API with client certificates](/docs/tasks/tls/managing-tls-in-a-cluster/).
--> -->
* 从集群外部向 API 服务器进行身份认证,而不使用服务账号令牌: * 从集群外部向 API 服务器进行身份认证,而不使用服务账号令牌:
* [配置 API 服务器接受来自你自己的身份驱动的 OpenID Connect (OIDC) 令牌](/zh-cn/docs/reference/access-authn-authz/authentication/#openid-connect-tokens)。 * [配置 API 服务器接受来自你自己的身份驱动的 OpenID ConnectOIDC令牌](/zh-cn/docs/reference/access-authn-authz/authentication/#openid-connect-tokens)。
* 使用来自云提供商等外部身份和访问管理 (IAM) 服务创建的服务账号或用户账号向集群进行身份认证。 * 使用来自云提供商等外部身份和访问管理IAM服务创建的服务账号或用户账号向集群进行身份认证。
* [使用 CertificateSigningRequest API 和客户端证书](/zh-cn/docs/tasks/tls/managing-tls-in-a-cluster/)。 * [使用 CertificateSigningRequest API 和客户端证书](/zh-cn/docs/tasks/tls/managing-tls-in-a-cluster/)。
<!-- <!--
@ -587,7 +598,7 @@ used in your application and nowhere else.
then allows authentication using a private key. then allows authentication using a private key.
--> -->
* [配置 kubelet 从镜像仓库中获取凭据](/zh-cn/docs/tasks/administer-cluster/kubelet-credential-provider/)。 * [配置 kubelet 从镜像仓库中获取凭据](/zh-cn/docs/tasks/administer-cluster/kubelet-credential-provider/)。
* 使用设备插件访问虚拟的可信平台模块 (TPM),进而可以使用私钥进行身份认证。 * 使用设备插件访问虚拟的可信平台模块TPM,进而可以使用私钥进行身份认证。
## {{% heading "whatsnext" %}} ## {{% heading "whatsnext" %}}

View File

@ -1,16 +1,30 @@
--- ---
title: kubeadm upgrade phase title: kubeadm upgrade phases
weight: 90 weight: 40
content_type: concept content_type: concept
--- ---
<!-- <!--
In v1.15.0, kubeadm introduced preliminary support for `kubeadm upgrade node` phases. ## kubeadm upgrade apply phase {#cmd-apply-phase}
Phases for other `kubeadm upgrade` sub-commands such as `apply`, could be added in the
following releases. Using the phases of `kubeadm upgrade apply`, you can choose to execute the separate steps of the initial upgrade
of a control plane node.
--> -->
在 Kubernetes v1.15.0 版本中kubeadm 引入了对 `kubeadm upgrade node` 阶段的初步支持。 ## kubeadm upgrade apply 阶段 {#cmd-apply-phase}
其他 `kubeadm upgrade` 子命令如 `apply` 等阶段将在未来发行版中添加。
使用 `kubeadm upgrade apply` 的各个阶段,
你可以选择执行控制平面节点初始升级的单独步骤。
{{< tabs name="tab-phase" >}}
{{< tab name="phase" include="generated/kubeadm_upgrade/kubeadm_upgrade_apply_phase.md" />}}
{{< tab name="preflight" include="generated/kubeadm_upgrade/kubeadm_upgrade_apply_phase_preflight.md" />}}
{{< tab name="control-plane" include="generated/kubeadm_upgrade/kubeadm_upgrade_apply_phase_control-plane.md" />}}
{{< tab name="upload-config" include="generated/kubeadm_upgrade/kubeadm_upgrade_apply_phase_upload-config.md" />}}
{{< tab name="kubelet-config" include="generated/kubeadm_upgrade/kubeadm_upgrade_apply_phase_kubelet-config.md" />}}
{{< tab name="bootstrap-token" include="generated/kubeadm_upgrade/kubeadm_upgrade_apply_phase_bootstrap-token.md" />}}
{{< tab name="addon" include="generated/kubeadm_upgrade/kubeadm_upgrade_apply_phase_addon.md" />}}
{{< tab name="post-upgrade" include="generated/kubeadm_upgrade/kubeadm_upgrade_apply_phase_post-upgrade.md" />}}
{{< /tabs >}}
<!-- <!--
## kubeadm upgrade node phase {#cmd-node-phase} ## kubeadm upgrade node phase {#cmd-node-phase}
@ -18,18 +32,18 @@ following releases.
## kubeadm upgrade node 阶段 {#cmd-node-phase} ## kubeadm upgrade node 阶段 {#cmd-node-phase}
<!-- <!--
Using this phase you can choose to execute the separate steps of the upgrade of Using the phases of `kubeadm upgrade node` you can choose to execute the separate steps of the upgrade of
secondary control-plane or worker nodes. Please note that `kubeadm upgrade apply` still has to secondary control-plane or worker nodes.
be called on a primary control-plane node.
--> -->
使用此阶段,你可以选择执行辅助控制平面或工作节点升级的单独步骤。 使用 `kubeadm upgrade node` 的各个阶段,你可以选择执行次要控制平面节点或工作节点升级的单独步骤。
请注意,`kubeadm upgrade apply` 命令仍然必须在主控制平面节点上调用。
{{< tabs name="tab-phase" >}} {{< tabs name="tab-phase" >}}
{{< tab name="phase" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase.md" />}} {{< tab name="phase" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase.md" />}}
{{< tab name="preflight" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase_preflight.md" />}} {{< tab name="preflight" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase_preflight.md" />}}
{{< tab name="control-plane" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase_control-plane.md" />}} {{< tab name="control-plane" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase_control-plane.md" />}}
{{< tab name="kubelet-config" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase_kubelet-config.md" />}} {{< tab name="kubelet-config" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase_kubelet-config.md" />}}
{{< tab name="addon" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase_addon.md" />}}
{{< tab name="post-upgrade" include="generated/kubeadm_upgrade/kubeadm_upgrade_node_phase_post-upgrade.md" />}}
{{< /tabs >}} {{< /tabs >}}
## {{% heading "whatsnext" %}} ## {{% heading "whatsnext" %}}

View File

@ -92,13 +92,27 @@ the pod can be accepted or rejected from the node based on the selected hint.
The hint is then stored in the Topology Manager for use by the *Hint Providers* when making the The hint is then stored in the Topology Manager for use by the *Hint Providers* when making the
resource allocation decisions. resource allocation decisions.
--> -->
拓扑管理器从 **建议提供者** 接收拓扑信息,作为表示可用的 NUMA 节点和首选分配指示的位掩码。 拓扑管理器从**建议提供者**接收拓扑信息,作为表示可用的 NUMA 节点和首选分配指示的位掩码。
拓扑管理器策略对所提供的建议执行一组操作,并根据策略对提示进行约减以得到最优解。 拓扑管理器策略对所提供的建议执行一组操作,并根据策略对提示进行约减以得到最优解。
如果存储了与预期不符的建议,则该建议的优选字段将被设置为 false。 如果存储了与预期不符的建议,则该建议的优选字段将被设置为 false。
在当前策略中,首选是最窄的优选掩码。 在当前策略中,首选是最窄的优选掩码。
所选建议将被存储为拓扑管理器的一部分。 所选建议将被存储为拓扑管理器的一部分。
取决于所配置的策略,所选建议可用来决定节点接受或拒绝 Pod。 取决于所配置的策略,所选建议可用来决定节点接受或拒绝 Pod。
之后,建议会被存储在拓扑管理器中,供 **建议提供者** 在作资源分配决策时使用。 之后,建议会被存储在拓扑管理器中,供**建议提供者**在作资源分配决策时使用。
<!--
## Windows Support
-->
## Windows 支持
{{< feature-state feature_gate_name="WindowsCPUAndMemoryAffinity" >}}
<!--
The Topology Manager support can be enabled on Windows by using the `WindowsCPUAndMemoryAffinity` feature gate and
it requires support in the container runtime.
-->
拓扑管理器支持可以通过使用 `WindowsCPUAndMemoryAffinity` 特性门控在 Windows 上启用,
并且需要容器运行时的支持。
<!-- <!--
## Topology manager scopes and policies ## Topology manager scopes and policies
@ -321,7 +335,7 @@ will result with **the same** topology alignment decision.
--> -->
如果拓扑管理器配置使用 **pod** 作用域, 如果拓扑管理器配置使用 **pod** 作用域,
那么在策略评估一个容器时,该容器反映的是整个 Pod 的要求, 那么在策略评估一个容器时,该容器反映的是整个 Pod 的要求,
所以该 Pod 里的每个容器都会应用 **相同的** 拓扑对齐决策。 所以该 Pod 里的每个容器都会应用**相同的**拓扑对齐决策。
{{< /note >}} {{< /note >}}
<!-- <!--
@ -403,7 +417,7 @@ admission failure.
对于 Pod 中的每个容器,配置了 `single-numa-node` 拓扑管理策略的 对于 Pod 中的每个容器,配置了 `single-numa-node` 拓扑管理策略的
kubelet 调用每个建议提供者以确定其资源可用性。 kubelet 调用每个建议提供者以确定其资源可用性。
使用此信息,拓扑管理器确定是否支持单 NUMA 节点亲和性。 使用此信息,拓扑管理器确定是否支持单 NUMA 节点亲和性。
如果支持,则拓扑管理器将存储此信息,然后 **建议提供者** 可以在做出资源分配决定时使用此信息。 如果支持,则拓扑管理器将存储此信息,然后**建议提供者**可以在做出资源分配决定时使用此信息。
如果不支持,则拓扑管理器将拒绝 Pod 运行于该节点。 如果不支持,则拓扑管理器将拒绝 Pod 运行于该节点。
这将导致 Pod 处于 `Terminated` 状态,且 Pod 无法被节点接受。 这将导致 Pod 处于 `Terminated` 状态,且 Pod 无法被节点接受。
@ -446,19 +460,18 @@ You will still have to enable each option using the `TopologyManagerPolicyOption
你仍然需要使用 `TopologyManagerPolicyOptions` kubelet 选项来启用每个选项。 你仍然需要使用 `TopologyManagerPolicyOptions` kubelet 选项来启用每个选项。
<!-- <!--
### `prefer-closest-numa-nodes` (beta) {#policy-option-prefer-closest-numa-nodes} ### `prefer-closest-numa-nodes` {#policy-option-prefer-closest-numa-nodes}
The `prefer-closest-numa-nodes` option is beta since Kubernetes 1.28. In Kubernetes {{< skew currentVersion >}} The `prefer-closest-numa-nodes` option is GA since Kubernetes 1.32. In Kubernetes {{< skew currentVersion >}}
this policy option is visible by default provided that the `TopologyManagerPolicyOptions` and this policy option is visible by default provided that the `TopologyManagerPolicyOptions`
`TopologyManagerPolicyBetaOptions` [feature gates](/docs/reference/command-line-tools-reference/feature-gates/) [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) is enabled.
are enabled.
--> -->
### `prefer-closest-numa-nodes`Beta {#policy-option-prefer-closest-numa-nodes} ### `prefer-closest-numa-nodes` {#policy-option-prefer-closest-numa-nodes}
自 Kubernetes 1.28 起,`prefer-closest-numa-nodes` 选项进入 Beta 阶段。 自 Kubernetes 1.32 起,`prefer-closest-numa-nodes` 选项进入 GA 阶段。
在 Kubernetes {{< skew currentVersion >}} 中,只要启用了 在 Kubernetes {{< skew currentVersion >}} 中,只要启用了
`TopologyManagerPolicyOptions` `TopologyManagerPolicyBetaOptions` `TopologyManagerPolicyOptions` [特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)
[特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)此策略选项默认可见。 此策略选项默认可见。
<!-- <!--
The Topology Manager is not aware by default of NUMA distances, and does not take them into account when making The Topology Manager is not aware by default of NUMA distances, and does not take them into account when making