Skip to content

Commit 23b4b6e

Browse files
authored
Merge pull request #41346 from my-git9/path-6810
[zh-cn] sync kubelet-credential-provider securing-a-cluster
2 parents 9e0e303 + f1e9613 commit 23b4b6e

File tree

2 files changed

+32
-25
lines changed

2 files changed

+32
-25
lines changed

content/zh-cn/docs/tasks/administer-cluster/kubelet-credential-provider.md

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,8 @@ as opposed to storing static credentials on disk. For example, the plugin may ta
2929
short-lived credentials for an image that is being pulled by the kubelet.
3030
-->
3131
从 Kubernetes v1.20 开始,kubelet 可以使用 exec 插件动态获得针对某容器镜像库的凭据。
32-
kubelet 使用 Kubernetes 版本化 API 通过标准输入输出(标准输入、标准输出和标准错误)
33-
和 exec 插件通信。
34-
这些插件允许 kubelet 动态请求容器仓库的凭据,而不是将静态凭据存储在磁盘上。
32+
kubelet 使用 Kubernetes 版本化 API 通过标准输入输出(标准输入、标准输出和标准错误)和
33+
exec 插件通信。这些插件允许 kubelet 动态请求容器仓库的凭据,而不是将静态凭据存储在磁盘上。
3534
例如,插件可能会与本地元数据服务器通信,以获得 kubelet 正在拉取的镜像的短期凭据。
3635

3736
<!--
@@ -49,7 +48,7 @@ This guide demonstrates how to configure the kubelet's image credential provider
4948
* 凭据的到期时间很短,需要频繁请求新凭据。
5049
* 将镜像库凭据存储在磁盘或者 imagePullSecret 是不可接受的。
5150

52-
本指南演示如何配置 kubelet 的镜像凭证提供程序插件机制
51+
本指南演示如何配置 kubelet 的镜像凭据提供程序插件机制
5352

5453
## {{% heading "prerequisites" %}}
5554

@@ -59,7 +58,7 @@ This guide demonstrates how to configure the kubelet's image credential provider
5958
Kubernetes v1.24 and v1.25 included this as a beta feature, enabled by default.
6059
* A working implementation of a credential provider exec plugin. You can build your own plugin or use one provided by cloud providers.
6160
-->
62-
* 你需要一个 Kubernetes 集群,其节点支持 kubelet 凭证提供程序插件
61+
* 你需要一个 Kubernetes 集群,其节点支持 kubelet 凭据提供程序插件
6362
这种支持在 Kubernetes {{< skew currentVersion >}} 中可用;
6463
Kubernetes v1.24 和 v1.25 将此作为 Beta 特性包含在内,默认启用。
6564
* 凭据提供程序 exec 插件的一种可用的实现。你可以构建自己的插件或使用云提供商提供的插件。
@@ -100,19 +99,19 @@ In order to use this feature, the kubelet expects two flags to be set:
10099
101100
The configuration file passed into `--image-credential-provider-config` is read by the kubelet to determine which exec plugins
102101
should be invoked for which container images. Here's an example configuration file you may end up using if you are using the
103-
[ECR](https://aws.amazon.com/ecr/)-based plugin:
102+
[ECR-based plugin](https://github.com/kubernetes/cloud-provider-aws/tree/master/cmd/ecr-credential-provider):
104103
-->
105104
### 配置 kubelet 凭据提供程序 {#configure-a-kubelet-credential-provider}
106105

107106
kubelet 会读取通过 `--image-credential-provider-config` 设定的配置文件,
108107
以确定应该为哪些容器镜像调用哪些 exec 插件。
109-
如果你正在使用基于 [ECR](https://aws.amazon.com/ecr/) 的插件
108+
如果你正在使用基于 [ECR-based 插件](https://github.com/kubernetes/cloud-provider-aws/tree/master/cmd/ecr-credential-provider)
110109
这里有个样例配置文件你可能最终会使用到:
111110

112111
```yaml
113112
apiVersion: kubelet.config.k8s.io/v1
114113
kind: CredentialProviderConfig
115-
# providers 是将由 kubelet 启用的凭证提供程序帮助插件列表
114+
# providers 是将由 kubelet 启用的凭据提供程序帮助插件列表
116115
# 多个提供程序可能与单个镜像匹配,在这种情况下,来自所有提供程序的凭据将返回到 kubelet。
117116
# 如果为单个镜像调用了多个提供程序,则返回结果会被合并。
118117
# 如果提供程序返回重叠的身份验证密钥,则使用提供程序列表中较早的值。
@@ -121,7 +120,7 @@ providers:
121120
# 它必须与 kubelet 看到的提供程序可执行文件的名称相匹配。
122121
# 可执行文件必须在 kubelet 的 bin 目录中
123122
# (由 --image-credential-provider-bin-dir 标志设置)。
124-
- name: ecr
123+
- name: ecr-credential-provider
125124
# matchImages 是一个必需的字符串列表,用于匹配镜像以确定是否应调用此提供程序。
126125
# 如果其中一个字符串与 kubelet 请求的镜像相匹配,则该插件将被调用并有机会提供凭据。
127126
# 镜像应包含注册域和 URL 路径。
@@ -147,7 +146,7 @@ providers:
147146
# - registry.io:8080/path
148147
matchImages:
149148
- "*.dkr.ecr.*.amazonaws.com"
150-
- "*.dkr.ecr.*.amazonaws.cn"
149+
- "*.dkr.ecr.*.amazonaws.com.cn"
151150
- "*.dkr.ecr-fips.*.amazonaws.com"
152151
- "*.dkr.ecr.us-iso-east-1.c2s.ic.gov"
153152
- "*.dkr.ecr.us-isob-east-1.sc2s.sgov.gov"
@@ -160,8 +159,8 @@ providers:
160159
apiVersion: credentialprovider.kubelet.k8s.io/v1
161160
# 执行命令时传递给命令的参数。
162161
# 可选
163-
args:
164-
- get-credentials
162+
# args:
163+
# - --example-argument
165164
# env 定义了额外的环境变量以暴露给进程。
166165
# 这些与主机环境以及 client-go 用于将参数传递给插件的变量结合在一起。
167166
# 可选
@@ -186,14 +185,14 @@ Consult the plugin implementors to determine what set of arguments and environme
186185
-->
187186
`providers` 字段是 kubelet 所使用的已启用插件列表。每个条目都有几个必填字段:
188187

189-
* `name`:插件的名称,必须与传入`--image-credential-provider-bin-dir`
188+
* `name`:插件的名称,必须与传入 `--image-credential-provider-bin-dir`
190189
的目录中存在的可执行二进制文件的名称相匹配。
191190
* `matchImages`:字符串列表,用于匹配镜像以确定是否应调用此提供程序。
192191
更多相关信息参见后文。
193192
* `defaultCacheDuration`:如果插件未指定缓存时长,kubelet 将在内存中缓存凭据的默认时长。
194193
* `apiVersion`:kubelet 和 exec 插件在通信时将使用的 API 版本。
195194

196-
每个凭证提供程序也可以被赋予可选的参数和环境变量
195+
每个凭据提供程序也可以被赋予可选的参数和环境变量
197196
你可以咨询插件实现者以确定给定插件需要哪些参数和环境变量集。
198197

199198
<!--
@@ -207,7 +206,7 @@ a single subdomain segment, so `*.io` does NOT match `*.k8s.io`.
207206
-->
208207
#### 配置镜像匹配 {#configure-image-matching}
209208

210-
kubelet 使用每个凭证提供程序的 `matchImages` 字段来确定是否应该为 Pod
209+
kubelet 使用每个凭据提供程序的 `matchImages` 字段来确定是否应该为 Pod
211210
正在使用的给定镜像调用插件。
212211
`matchImages` 中的每个条目都是一个镜像模式字符串,可以选择包含端口和路径。
213212
可以在域中使用通配符,但不能在端口或路径中使用。
@@ -224,7 +223,7 @@ A match exists between an image name and a `matchImage` entry when all of the be
224223

225224
Some example values of `matchImages` patterns are:
226225
-->
227-
当以下所有条件都为真时,镜像名称和 `matchImage` 条目之间存在匹配:
226+
当以下条件全部满足时,镜像名称和 `matchImage` 条目之间存在匹配:
228227

229228
* 两者都包含相同数量的域部分并且每个部分都匹配。
230229
* 匹配图片的 URL 路径必须是目标图片 URL 路径的前缀。
@@ -245,7 +244,6 @@ Some example values of `matchImages` patterns are:
245244
[kubelet configuration API (v1) reference](/docs/reference/config-api/kubelet-config.v1/).
246245
* Read the [kubelet credential provider API reference (v1)](/docs/reference/config-api/kubelet-credentialprovider.v1/).
247246
-->
248-
* 阅读 [kubelet 配置 API (v1) 参考](/docs/reference/config-api/kubelet-config.v1/)中有关
247+
* 阅读 [kubelet 配置 API (v1) 参考](/zh-cn/docs/reference/config-api/kubelet-config.v1/)中有关
249248
`CredentialProviderConfig` 的详细信息。
250-
* 阅读 [kubelet 凭据提供程序 API 参考 (v1)](/docs/reference/config-api/kubelet-credentialprovider.v1/)。
251-
249+
* 阅读 [kubelet 凭据提供程序 API 参考 (v1)](/zh-cn/docs/reference/config-api/kubelet-credentialprovider.v1/)。

content/zh-cn/docs/tasks/administer-cluster/securing-a-cluster.md

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ the cluster components. Note that some components and installation methods may e
4747
HTTP and administrators should familiarize themselves with the settings of each component to identify
4848
potentially unsecured traffic.
4949
-->
50-
### 为所有 API 交互使用传输层安全 (TLS)
50+
### 为所有 API 交互使用传输层安全(TLS)
5151

5252
Kubernetes 期望集群中所有的 API 通信在默认情况下都使用 TLS 加密,
5353
大多数安装方法也允许创建所需的证书并且分发到集群组件中。
@@ -274,7 +274,6 @@ kernel on behalf of some more-privileged process.)
274274
来彻底拒绝容器的 `module_request` 权限,从而防止在任何情况下系统为容器加载内核模块。
275275
(Pod 仍然可以使用手动加载的模块,或者使用由内核代表某些特权进程所加载的模块。)
276276

277-
278277
<!--
279278
### Restricting network access
280279
@@ -414,10 +413,10 @@ that result in security vulnerabilities. Always assess the value an alpha or bet
414413
provide against the possible risk to your security posture. When in doubt, disable features you
415414
do not use.
416415
-->
417-
### 限制使用 alphabeta 特性
416+
### 限制使用 AlphaBeta 特性
418417

419-
Kubernetes 的 alphabeta 特性还在努力开发中,可能存在导致安全漏洞的缺陷或错误。
420-
要始终评估 alphabeta 特性可能给你的安全态势带来的风险。
418+
Kubernetes 的 AlphaBeta 特性还在努力开发中,可能存在导致安全漏洞的缺陷或错误。
419+
要始终评估 AlphaBeta 特性可能给你的安全态势带来的风险。
421420
当你怀疑存在风险时,可以禁用那些不需要使用的特性。
422421

423422
<!--
@@ -492,7 +491,7 @@ and may grant an attacker significant visibility into the state of your cluster.
492491
your backups using a well reviewed backup and encryption solution, and consider using full disk
493492
encryption where possible.
494493
495-
Kubernetes supports optional [encryption at rest](/docs/tasks/administer-cluster/encrypt-data/) for information in the Kubernetes API.
494+
Kubernetes supports optional [encryption at rest](/docs/tasks/administer-cluster/encrypt-data/) for information in the Kubernetes API.
496495
This lets you ensure that when Kubernetes stores data for objects (for example, `Secret` or
497496
`ConfigMap` objects), the API server writes an encrypted representation of the object.
498497
That encryption means that even someone who has access to etcd backup data is unable
@@ -529,3 +528,13 @@ page for more on how to report vulnerabilities.
529528
组,这样你就能够收到有关安全公告的邮件。有关如何报告漏洞的更多信息,
530529
请参见[安全报告](/zh-cn/docs/reference/issues-security/security/)页面。
531530

531+
<!--
532+
## What's next
533+
534+
- [Security Checklist](/docs/concepts/security/security-checklist/) for additional information on Kubernetes security guidance.
535+
-->
536+
## {{% heading "whatsnext" %}}
537+
538+
- 阅读[安全检查清单](/zh-cn/docs/concepts/security/security-checklist/)了解有关
539+
Kubernetes 安全指南的更多信息。
540+

0 commit comments

Comments
 (0)