@@ -4,7 +4,6 @@ content_type: concept
4
4
weight : 90
5
5
---
6
6
<!--
7
- ---
8
7
reviewers:
9
8
- timstclair
10
9
- deads2k
@@ -13,193 +12,215 @@ reviewers:
13
12
title: Using Node Authorization
14
13
content_type: concept
15
14
weight: 90
16
- ---
17
15
-->
18
16
19
17
<!-- overview -->
20
- 节点鉴权是一种特殊用途的鉴权模式,专门对 kubelet 发出的 API 请求进行鉴权。
18
+
21
19
<!--
22
20
Node authorization is a special-purpose authorization mode that specifically authorizes API requests made by kubelets.
23
21
-->
22
+ 节点鉴权是一种特殊用途的鉴权模式,专门对 kubelet 发出的 API 请求进行授权。
24
23
25
24
26
25
<!-- body -->
27
- ## 概述
26
+
28
27
<!--
29
28
## Overview
30
29
-->
30
+ ## 概述 {#overview}
31
31
32
- 节点鉴权器允许 kubelet 执行 API 操作。包括:
33
32
<!--
34
33
The Node authorizer allows a kubelet to perform API operations. This includes:
35
34
-->
35
+ 节点鉴权器允许 kubelet 执行 API 操作。包括:
36
36
37
- 读取操作:
38
37
<!--
39
38
Read operations:
40
39
-->
40
+ 读取操作:
41
41
42
+ <!--
42
43
* services
43
44
* endpoints
44
45
* nodes
45
46
* pods
46
- * secrets、configmaps、pvcs 以及绑定到 kubelet 节点的与 pod 相关的持久卷
47
-
48
- <!--
47
+ * secrets, configmaps, persistent volume claims and persistent volumes related to pods bound to the kubelet's node
48
+ -->
49
49
* services
50
50
* endpoints
51
51
* nodes
52
52
* pods
53
- * secrets, configmaps, persistent volume claims and persistent volumes related to pods bound to the kubelet's node
54
- -->
53
+ * 与绑定到 kubelet 节点的 Pod 相关的 Secret、ConfigMap、PersistentVolumeClaim 和持久卷
55
54
56
- 写入操作:
57
55
<!--
58
56
Write operations:
59
57
-->
60
-
61
- * 节点和节点状态(启用 ` NodeRestriction ` 准入插件以限制 kubelet 只能修改自己的节点)
62
- * Pod 和 Pod 状态 (启用 ` NodeRestriction ` 准入插件以限制 kubelet 只能修改绑定到自身的 Pod)
63
- * 事件
58
+ 写入操作:
64
59
65
60
<!--
66
61
* nodes and node status (enable the `NodeRestriction` admission plugin to limit a kubelet to modify its own node)
67
62
* pods and pod status (enable the `NodeRestriction` admission plugin to limit a kubelet to modify pods bound to itself)
68
63
* events
69
64
-->
65
+ * 节点和节点状态(启用 ` NodeRestriction ` 准入插件以限制 kubelet 只能修改自己的节点)
66
+ * Pod 和 Pod 状态 (启用 ` NodeRestriction ` 准入插件以限制 kubelet 只能修改绑定到自身的 Pod)
67
+ * 事件
70
68
71
- 鉴权相关操作:
72
69
<!--
73
70
Auth-related operations:
74
71
-->
75
-
76
- * 对于基于 TLS 的启动引导过程时使用的
77
- [ certificationsigningrequests API] ( /zh/docs/reference/access-authn-authz/certificate-signing-requests/ )
78
- 的读/写权限
79
- * 为委派的身份验证/授权检查创建 TokenReview 和 SubjectAccessReview 的能力
72
+ 身份认证与鉴权相关的操作:
80
73
81
74
<!--
82
75
* read/write access to the [CertificateSigningRequests API](/docs/reference/access-authn-authz/certificate-signing-requests/) for TLS bootstrapping
83
76
* the ability to create TokenReviews and SubjectAccessReviews for delegated authentication/authorization checks
84
77
-->
78
+ * 对于基于 TLS 的启动引导过程时使用的
79
+ [ certificationsigningrequests API] ( /zh-cn/docs/reference/access-authn-authz/certificate-signing-requests/ )
80
+ 的读/写权限
81
+ * 为委派的身份验证/鉴权检查创建 TokenReview 和 SubjectAccessReview 的能力
85
82
86
- 在将来的版本中,节点鉴权器可能会添加或删除权限,以确保 kubelet 具有正确操作所需的最小权限集。
87
83
<!--
88
84
In future releases, the node authorizer may add or remove permissions to ensure kubelets
89
85
have the minimal set of permissions required to operate correctly.
90
86
-->
87
+ 在将来的版本中,节点鉴权器可能会添加或删除权限,以确保 kubelet 具有正确操作所需的最小权限集。
91
88
92
- 为了获得节点鉴权器的授权,kubelet 必须使用一个凭证以表示它在 ` system:nodes ` 组中,用户名为 ` system:node:<nodeName> ` 。
93
- 上述的组名和用户名格式要与 [ kubelet TLS 启动引导] ( /zh/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/ ) 过程中为每个 kubelet 创建的标识相匹配。
94
89
<!--
95
90
In order to be authorized by the Node authorizer, kubelets must use a credential that identifies them as
96
91
being in the `system:nodes` group, with a username of `system:node:<nodeName>`.
97
92
This group and user name format match the identity created for each kubelet as part of
98
93
[kubelet TLS bootstrapping](/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/).
99
94
-->
95
+ 为了获得节点鉴权器的授权,kubelet 必须使用一个凭证以表示它在 ` system:nodes `
96
+ 组中,用户名为 ` system:node:<nodeName> ` 。上述的组名和用户名格式要与
97
+ [ kubelet TLS 启动引导] ( /zh-cn/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/ )
98
+ 过程中为每个 kubelet 创建的标识相匹配。
99
+
100
+ <!--
101
+ The value of `<nodeName>` **must** match precisely the name of the node as registered by the kubelet. By default, this is the host name as provided by `hostname`, or overridden via the [kubelet option](/docs/reference/command-line-tools-reference/kubelet/) `--hostname-override`. However, when using the `--cloud-provider` kubelet option, the specific hostname may be determined by the cloud provider, ignoring the local `hostname` and the `--hostname-override` option.
102
+ For specifics about how the kubelet determines the hostname, see the [kubelet options reference](/docs/reference/command-line-tools-reference/kubelet/).
103
+ -->
104
+ ` <nodeName> ` 的值** 必须** 与 kubelet 注册的节点名称精确匹配。默认情况下,节点名称是由
105
+ ` hostname ` 提供的主机名,或者通过 kubelet ` --hostname-override `
106
+ [ 选项] ( /zh-cn/docs/reference/command-line-tools-reference/kubelet/ ) 覆盖。
107
+ 但是,当使用 ` --cloud-provider ` kubelet 选项时,具体的主机名可能由云提供商确定,
108
+ 忽略本地的 ` hostname ` 和 ` --hostname-override ` 选项。有关
109
+ kubelet 如何确定主机名的详细信息,请参阅
110
+ [ kubelet 选项参考] ( /zh-cn/docs/reference/command-line-tools-reference/kubelet/ ) 。
100
111
101
- 要启用节点授权器,请使用 ` --authorization-mode = Node ` 启动 apiserver。
102
112
<!--
103
113
To enable the Node authorizer, start the apiserver with `--authorization-mode=Node`.
104
114
-->
115
+ 要启用节点鉴权器,请使用 ` --authorization-mode=Node ` 启动 API 服务器。
105
116
106
- 要限制 kubelet 具有写入权限的 API 对象,请使用 ` --enable-admission-plugins=...,NodeRestriction,... ` 启动 apiserver,从而启用 [ NodeRestriction] ( /zh/docs/reference/access-authn-authz/admission-controllers#NodeRestriction ) 准入插件。
107
117
<!--
108
118
To limit the API objects kubelets are able to write, enable the [NodeRestriction](/docs/reference/access-authn-authz/admission-controllers#NodeRestriction) admission plugin by starting the apiserver with `--enable-admission-plugins=...,NodeRestriction,...`
109
- -->
119
+ -->
120
+ 要限制 kubelet 可以写入的 API 对象,请使用
121
+ ` --enable-admission-plugins=...,NodeRestriction,... ` 启动 API 服务器,从而启用
122
+ [ NodeRestriction] ( /zh-cn/docs/reference/access-authn-authz/admission-controllers#NodeRestriction )
123
+ 准入插件。
110
124
111
- ## 迁移考虑因素
112
125
<!--
113
126
## Migration considerations
114
127
-->
128
+ ## 迁移考虑因素 {#migration-considerations}
115
129
116
- ### 在 ` system:nodes ` 组之外的 Kubelet
117
130
<!--
118
131
### Kubelets outside the `system:nodes` group
119
132
-->
133
+ ### 在 ` system:nodes ` 组之外的 kubelet {#kubelets-outside-the-system-nodes-group}
120
134
121
- ` system:nodes ` 组之外的 kubelet 不会被 ` Node ` 鉴权模式授权,并且需要继续通过当前授权它们的机制来授权。
122
- 节点准入插件不会限制来自这些 kubelet 的请求。
123
135
<!--
124
136
Kubelets outside the `system:nodes` group would not be authorized by the `Node` authorization mode,
125
137
and would need to continue to be authorized via whatever mechanism currently authorizes them.
126
138
The node admission plugin would not restrict requests from these kubelets.
127
139
-->
140
+ ` system:nodes ` 组之外的 kubelet 不会被 ` Node ` 鉴权模式授权,并且需要继续通过当前授权它们的机制来授权。
141
+ 节点准入插件不会限制来自这些 kubelet 的请求。
128
142
129
- ### 具有无差别用户名的 Kubelet
130
143
<!--
131
144
### Kubelets with undifferentiated usernames
132
145
-->
146
+ ### 具有无差别用户名的 kubelet {#kubelets-with-undifferentiated-usernames}
133
147
134
- 在一些部署中,kubelet 具有 ` system:nodes ` 组的凭证,但是无法给出它们所关联的节点的标识,因为它们没有 ` system:node:... ` 格式的用户名。
135
- 这些 kubelet 不会被 ` Node ` 授权模式授权,并且需要继续通过当前授权它们的任何机制来授权。
136
148
<!--
137
149
In some deployments, kubelets have credentials that place them in the `system:nodes` group,
138
150
but do not identify the particular node they are associated with,
139
151
because they do not have a username in the `system:node:...` format.
140
152
These kubelets would not be authorized by the `Node` authorization mode,
141
153
and would need to continue to be authorized via whatever mechanism currently authorizes them.
142
154
-->
155
+ 在一些部署中,kubelet 具有 ` system:nodes ` 组的凭证,
156
+ 但是无法给出它们所关联的节点的标识,因为它们没有 ` system:node:... ` 格式的用户名。
157
+ 这些 kubelet 不会被 ` Node ` 鉴权模式授权,并且需要继续通过当前授权它们的任何机制来授权。
143
158
144
- 因为默认的节点标识符实现不会把它当作节点身份标识,` NodeRestriction ` 准入插件会忽略来自这些 kubelet 的请求。
145
159
<!--
146
160
The `NodeRestriction` admission plugin would ignore requests from these kubelets,
147
161
since the default node identifier implementation would not consider that a node identity.
148
162
-->
163
+ 因为默认的节点标识符实现不会把它当作节点身份标识,` NodeRestriction `
164
+ 准入插件会忽略来自这些 kubelet 的请求。
149
165
150
- ### 相对于以前使用 RBAC 的版本的更新
151
166
<!--
152
167
### Upgrades from previous versions using RBAC
153
168
-->
169
+ ### 相对于以前使用 RBAC 的版本的更新 {#upgrades-from-previous-versions-using-rbac}
154
170
155
- 升级的 1.7 之前的使用 [ RBAC] ( /zh/docs/reference/access-authn-authz/rbac/ ) 的集群将继续按原样运行,因为 ` system:nodes ` 组绑定已经存在。
156
171
<!--
157
172
Upgraded pre-1.7 clusters using [RBAC](/docs/reference/access-authn-authz/rbac/) will continue functioning as-is because the `system:nodes` group binding will already exist.
158
173
-->
174
+ 升级的 1.7 之前的使用 [ RBAC] ( /zh-cn/docs/reference/access-authn-authz/rbac/ )
175
+ 的集群将继续按原样运行,因为 ` system:nodes ` 组绑定已经存在。
159
176
160
- 如果集群管理员希望开始使用 ` Node ` 鉴权器和 ` NodeRestriction ` 准入插件来限制节点对 API 的访问,这一需求可以通过下列操作来完成且不会影响已部署的应用:
161
177
<!--
162
178
If a cluster admin wishes to start using the `Node` authorizer and `NodeRestriction` admission plugin
163
179
to limit node access to the API, that can be done non-disruptively:
164
- -->
180
+ -->
181
+ 如果集群管理员希望开始使用 ` Node ` 鉴权器和 ` NodeRestriction ` 准入插件来限制节点对
182
+ API 的访问,这一需求可以通过下列操作来完成且不会影响已部署的应用:
165
183
166
- 1 . 启用 ` Node ` 鉴权模式 (` --authorization-mode=Node,RBAC ` ) 和 ` NodeRestriction ` 准入插件
167
- 2 . 确保所有 kubelet 的凭据符合组/用户名要求
168
- 3 . 审核 apiserver 日志以确保 ` Node ` 鉴权器不会拒绝来自 kubelet 的请求(日志中没有持续的 ` NODE DENY ` 消息)
169
- 4 . 删除 ` system:node ` 集群角色绑定
170
184
<!--
171
185
1. Enable the `Node` authorization mode (`--authorization-mode=Node,RBAC`) and the `NodeRestriction` admission plugin
172
186
2. Ensure all kubelets' credentials conform to the group/username requirements
173
187
3. Audit apiserver logs to ensure the `Node` authorizer is not rejecting requests from kubelets (no persistent `NODE DENY` messages logged)
174
188
4. Delete the `system:node` cluster role binding
175
189
-->
190
+ 1 . 启用 ` Node ` 鉴权模式 (` --authorization-mode=Node,RBAC ` ) 和 ` NodeRestriction ` 准入插件
191
+ 2 . 确保所有 kubelet 的凭据符合组/用户名要求
192
+ 3 . 审核 API 服务器日志以确保 ` Node ` 鉴权器不会拒绝来自 kubelet 的请求(日志中没有持续的 ` NODE DENY ` 消息)
193
+ 4 . 删除 ` system:node ` 集群角色绑定
176
194
177
- ### RBAC 节点权限
178
195
<!--
179
196
### RBAC Node Permissions
180
197
-->
198
+ ### RBAC 节点权限 {#rbac-node-permissions}
181
199
182
- 在 1.6 版本中,当使用 [ RBAC 鉴权模式] ( /zh/docs/reference/access-authn-authz/rbac/ ) 时,` system:nodes ` 集群角色会被自动绑定到 ` system:node ` 组。
183
200
<!--
184
201
In 1.6, the `system:node` cluster role was automatically bound to the `system:nodes` group when using the [RBAC Authorization mode](/docs/reference/access-authn-authz/rbac/).
185
202
-->
203
+ 在 1.6 版本中,当使用 [ RBAC 鉴权模式] ( /zh-cn/docs/reference/access-authn-authz/rbac/ )
204
+ 时,` system:nodes ` 集群角色会被自动绑定到 ` system:node ` 组。
186
205
187
- 在 1.7 版本中,不再推荐将 ` system:nodes ` 组自动绑定到 ` system:node ` 角色,因为节点鉴权器通过对 secret 和 configmap 访问的额外限制完成了相同的任务。
188
- 如果同时启用了 ` Node ` 和 ` RBAC ` 授权模式,1.7 版本则不会创建 ` system:nodes ` 组到 ` system:node ` 角色的自动绑定。
189
206
<!--
190
207
In 1.7, the automatic binding of the `system:nodes` group to the `system:node` role is deprecated
191
208
because the node authorizer accomplishes the same purpose with the benefit of additional restrictions
192
209
on secret and configmap access. If the `Node` and `RBAC` authorization modes are both enabled,
193
210
the automatic binding of the `system:nodes` group to the `system:node` role is not created in 1.7.
194
211
-->
212
+ 在 1.7 版本中,不再推荐将 ` system:nodes ` 组自动绑定到 ` system:node `
213
+ 角色,因为节点鉴权器通过对 Secret 和 ConfigMap 访问的额外限制完成了相同的任务。
214
+ 如果同时启用了 ` Node ` 和 ` RBAC ` 鉴权模式,1.7 版本则不会创建 ` system:nodes `
215
+ 组到 ` system:node ` 角色的自动绑定。
195
216
196
- 在 1.8 版本中,绑定将根本不会被创建。
197
217
<!--
198
218
In 1.8, the binding will not be created at all.
199
219
-->
220
+ 在 1.8 版本中,绑定将根本不会被创建。
200
221
201
- 使用 RBAC 时,将继续创建 ` system:node ` 集群角色,以便与将其他用户或组绑定到该角色的部署方法兼容。
202
222
<!--
203
223
When using RBAC, the `system:node` cluster role will continue to be created,
204
224
for compatibility with deployment methods that bind other users or groups to that role.
205
225
-->
226
+ 使用 RBAC 时,将继续创建 ` system:node ` 集群角色,以便与将其他用户或组绑定到该角色的部署方法兼容。
0 commit comments