From cae44201cacf97f2687741d516c92a9c02c3c0e4 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 22 May 2023 20:54:55 +0800 Subject: [PATCH] [zh] sync expose-external-ip-address.md, container-runtimes.md --- .../setup/production-environment/_index.md | 298 ++++++++++-------- 1 file changed, 161 insertions(+), 137 deletions(-) diff --git a/content/zh-cn/docs/setup/production-environment/_index.md b/content/zh-cn/docs/setup/production-environment/_index.md index 737c79445b..9db16d45b8 100644 --- a/content/zh-cn/docs/setup/production-environment/_index.md +++ b/content/zh-cn/docs/setup/production-environment/_index.md @@ -3,6 +3,12 @@ title: 生产环境 weight: 30 no_list: true --- + @@ -46,7 +52,7 @@ are influenced by the following issues: - **规模**:如果你预期你的生产用 Kubernetes 环境要承受固定量的请求, 你可能可以针对所需要的容量来一次性完成安装。 @@ -75,15 +81,15 @@ resources. - **安全性与访问管理**:在你自己的学习环境 Kubernetes 集群上,你拥有完全的管理员特权。 但是针对运行着重要工作负载的共享集群,用户账户不止一两个时, @@ -108,16 +114,16 @@ Options include: - **无服务**:仅是在第三方设备上运行负载,完全不必管理集群本身。 你需要为 CPU 用量、内存和磁盘请求等付费。 @@ -181,11 +187,11 @@ consider these steps: - **选择部署工具**:你可以使用类似 kubeadm、kops 和 kubespray 这类工具来部署控制面。 参阅[使用部署工具安装 Kubernetes](/zh-cn/docs/setup/production-environment/tools/) @@ -194,31 +200,31 @@ are available to use with your deployments. 可供你的部署采用。 - **管理证书**:控制面服务之间的安全通信是通过证书来完成的。 证书是在部署期间自动生成的,或者你也可以使用自己的证书机构来生成它们。 参阅 [PKI 证书和需求](/zh-cn/docs/setup/best-practices/certificates/)了解细节。 - **为 API 服务器配置负载均衡**:配置负载均衡器来将外部的 API 请求散布给运行在不同节点上的 API 服务实例。 参阅[创建外部负载均衡器](/zh-cn/docs/tasks/access-application-cluster/create-external-load-balancer/)了解细节。 - **分离并备份 etcd 服务**:etcd 服务可以运行于其他控制面服务所在的机器上, 也可以运行在不同的机器上以获得更好的安全性和可用性。 @@ -229,15 +235,15 @@ for details. 和[使用 kubeadm 配置高可用的 etcd 集群](/zh-cn/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/)。 - **创建多控制面系统**:为了实现高可用性,控制面不应被限制在一台机器上。 如果控制面服务是使用某 init 服务(例如 systemd)来运行的,每个服务应该至少运行在三台机器上。 @@ -247,12 +253,12 @@ primary goes away, another service elects itself and take over. 如果主节点消失,另一个服务会被选中并接手相应服务。 - **跨多个可用区**:如果保持你的集群一直可用这点非常重要,可以考虑创建一个跨多个数据中心的集群; 在云环境中,这些数据中心被视为可用区。若干个可用区在一起可构成地理区域。 @@ -260,12 +266,12 @@ See [Running in multiple zones](/docs/setup/best-practices/multiple-zones/) for 更多的细节可参阅[跨多个可用区运行](/zh-cn/docs/setup/best-practices/multiple-zones/)。 - **管理演进中的特性**:如果你计划长时间保留你的集群,就需要执行一些维护其健康和安全的任务。 例如,如果你采用 kubeadm 安装的集群, @@ -315,9 +321,9 @@ simply as *nodes*). - **配置节点**:节点可以是物理机或者虚拟机。如果你希望自行创建和管理节点, 你可以安装一个受支持的操作系统,之后添加并运行合适的[节点服务](/zh-cn/docs/concepts/overview/components/#node-components)。考虑: @@ -329,25 +335,25 @@ then add and run the appropriate - 是否通用的计算机系统即足够,还是你有负载需要使用 GPU 处理器、Windows 节点或者 VM 隔离。 - **验证节点**:参阅[验证节点配置](/zh-cn/docs/setup/best-practices/node-conformance/)以了解如何确保节点满足加入到 Kubernetes 集群的需求。 - **添加节点到集群中**:如果你自行管理你的集群,你可以通过安装配置你的机器, 之后或者手动加入集群,或者让它们自动注册到集群的 API 服务器。 参阅[节点](/zh-cn/docs/concepts/architecture/nodes/)节,了解如何配置 Kubernetes 以便以这些方式来添加节点。 - **扩缩节点**:制定一个扩充集群容量的规划,你的集群最终会需要这一能力。 参阅[大规模集群考察事项](/zh-cn/docs/setup/best-practices/cluster-large/) @@ -356,14 +362,14 @@ purchasing and installing your own physical equipment. 如果你自行管理集群节点,这可能意味着要购买和安装你自己的物理设备。 - **节点自动扩缩容**:大多数云供应商支持 [集群自动扩缩器(Cluster Autoscaler)](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler#readme) @@ -375,9 +381,9 @@ based on demand. 对于本地集群,有一些虚拟化平台可以通过脚本来控制按需启动新节点。 - **安装节点健康检查**:对于重要的工作负载,你会希望确保节点以及在节点上运行的 Pod 处于健康状态。 通过使用 [Node Problem Detector](/zh-cn/docs/tasks/debug/debug-cluster/monitor-node-health/), @@ -411,12 +417,12 @@ are asking (authorization): - **认证(Authentication)**:API 服务器可以使用客户端证书、持有者令牌、 身份认证代理或者 HTTP 基本认证机制来完成身份认证操作。 @@ -426,21 +432,33 @@ for a description of these different methods of authenticating Kubernetes users. 关于认证 Kubernetes 用户身份的不同方法的描述, 可参阅[身份认证](/zh-cn/docs/reference/access-authn-authz/authentication/)。 - **鉴权(Authorization)**:当你准备为一般用户执行权限判定时, 你可能会需要在 RBAC 和 ABAC 鉴权机制之间做出选择。 参阅[鉴权概述](/zh-cn/docs/reference/access-authn-authz/authorization/), 了解对用户账户(以及访问你的集群的服务账户)执行鉴权的不同模式。 - **基于角色的访问控制**([RBAC](/zh-cn/docs/reference/access-authn-authz/rbac/)): 让你通过为通过身份认证的用户授权特定的许可集合来控制集群访问。 访问许可可以针对某特定名字空间(Role)或者针对整个集群(ClusterRole)。 通过使用 RoleBinding 和 ClusterRoleBinding 对象,这些访问许可可以被关联到特定的用户身上。 - **基于属性的访问控制**([ABAC](/zh-cn/docs/reference/access-authn-authz/abac/)): 让你能够基于集群中资源的属性来创建访问控制策略,基于对应的属性来决定允许还是拒绝访问。 @@ -455,10 +473,10 @@ As someone setting up authentication and authorization on your production Kubern - **设置鉴权模式**:当 Kubernetes API 服务器([kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/))启动时, 所支持的鉴权模式必须使用 `--authorization-mode` 标志配置。 @@ -466,20 +484,20 @@ could be set to Node,RBAC. This would allow Node and RBAC authorization for auth 这样就会针对已完成身份认证的请求执行 Node 和 RBAC 鉴权。 - **创建用户证书和角色绑定(RBAC)**:如果你在使用 RBAC 鉴权,用户可以创建由集群 CA 签名的 CertificateSigningRequest(CSR)。接下来你就可以将 Role 和 ClusterRole 绑定到每个用户身上。 参阅[证书签名请求](/zh-cn/docs/reference/access-authn-authz/certificate-signing-requests/)了解细节。 - **创建组合属性的策略(ABAC)**:如果你在使用 ABAC 鉴权, 你可以设置属性组合以构造策略对所选用户或用户组执行鉴权, @@ -487,11 +505,11 @@ pod), namespace, or apiGroup. For more information, see 进一步的详细信息可参阅[示例](/zh-cn/docs/reference/access-authn-authz/abac/#examples)。 - **考虑准入控制器**:针对指向 API 服务器的请求的其他鉴权形式还包括 [Webhook 令牌认证](/zh-cn/docs/reference/access-authn-authz/authentication/#webhook-token-authentication)。 @@ -512,35 +530,39 @@ needs of your cluster's workloads: - **设置名字空间限制**:为每个名字空间的内存和 CPU 设置配额。 参阅[管理内存、CPU 和 API 资源](/zh-cn/docs/tasks/administer-cluster/manage-resources/)以了解细节。 你也可以设置[层次化名字空间](/blog/2020/08/14/introducing-hierarchical-namespaces/)来继承这类约束。 - **为 DNS 请求做准备**:如果你希望工作负载能够完成大规模扩展,你的 DNS 服务也必须能够扩大规模。 参阅[自动扩缩集群中 DNS 服务](/zh-cn/docs/tasks/administer-cluster/dns-horizontal-autoscaling/)。 - **创建额外的服务账户**:用户账户决定用户可以在集群上执行的操作,服务账号则定义的是在特定名字空间中 Pod 的访问权限。默认情况下,Pod 使用所在名字空间中的 default 服务账号。 参阅[管理服务账号](/zh-cn/docs/reference/access-authn-authz/service-accounts-admin/)以了解如何创建新的服务账号。 例如,你可能需要: - 为 Pod 添加 Secret,以便 Pod 能够从某特定的容器镜像仓库拉取镜像。 参阅[为 Pod 配置服务账号](/zh-cn/docs/tasks/configure-pod-container/configure-service-account/)以获得示例。 @@ -550,14 +572,14 @@ for information on creating a new service account. For example, you might want t - 决定你是想自行构造自己的生产用 Kubernetes, 还是从某可用的[云服务外包厂商](/zh-cn/docs/setup/production-environment/turnkey-solutions/)或 @@ -566,23 +588,25 @@ and the [etcd](/zh-cn/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/) 和 [API 服务器](/zh-cn/docs/setup/production-environment/tools/kubeadm/ha-topology/)这些功能组件配置高可用能力。 - 选择使用 [kubeadm](/zh-cn/docs/setup/production-environment/tools/kubeadm/)、 [kops](/zh-cn/docs/setup/production-environment/tools/kops/) 或 [Kubespray](/zh-cn/docs/setup/production-environment/tools/kubespray/) 作为部署方法。 - 通过决定[身份认证](/zh-cn/docs/reference/access-authn-authz/authentication/)和[鉴权](/zh-cn/docs/reference/access-authn-authz/authorization/)方法来配置用户管理。 - 通过配置[资源限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/)、 [DNS 自动扩缩](/zh-cn/docs/tasks/administer-cluster/dns-horizontal-autoscaling/)和[服务账号](/zh-cn/docs/reference/access-authn-authz/service-accounts-admin/)来为应用负载作准备。