# 设置 CA 并生成 TLS 证书 在这个实验室中,你将使用 Cloudflare 的 PKI 工具包 [PKI 基础设施](https://en.wikipedia.org/wiki/Public_key_infrastructure) 提供 [PKI 基础设施](https://en.wikipedia.org/wiki/Public_key_infrastructure),然后使用它引导证书颁发机构,并为以下组件生成 TLS 证书:ETCD、Kube-Apiserver、Kube-Controller-Manager、Kube-Scheduler、Kubelet 和 Kube-Proxy。 ## 证书颁发机构 在本节中,你将提供一个证书授权机构,该机构可用于生成额外的 TLS 证书。 生成 CA 配置文件、证书和私钥: ``` { cat > ca-config.json < ca-csr.json < admin-csr.json <`。在本节中,你将为每个 Kubernetes 工作节点创建一个满足节点授权人要求的证书。 为每个 Kubernetes 工作者节点生成一个证书和私钥: ``` for instance in worker-0 worker-1 worker-2; do cat > ${instance}-csr.json < kube-controller-manager-csr.json < kube-proxy-csr.json < kube-scheduler-csr.json < kubernetes-csr.json < Kubernetes API 服务器将自动分配 `kubernetes` 内部 DNS 名称,该名称将从 [控制平面引导](08-bootstrapping-kubernetes-controllers.md#configure-the-kubernetes-api-server) 实验室期间为内部集群服务保留的地址范围(`10.32.0.0`)链接到第一个 IP 地址(`10.32.0.1`)。 结果: ``` kubernetes-key.pem kubernetes.pem ``` ## 服务帐户密钥对 Kubernetes Controller Manager 利用一个密钥对来生成和签名服务帐户令牌,如 [管理服务账户](https://kubernetes.io/docs/admin/service-accounts-admin/)文档中所述。 生成 `service-account` 证书和私钥: ``` { cat > service-account-csr.json < `kube-proxy`、`kube-controller-manager`、`kube-scheduler` 和 `kubelet` 客户端证书将用于在下一个实验室中生成客户端身份验证配置文件。 下一条:[生成 Kubernetes 配置文件以进行身份验证](05-kubernetes-configuration-files.md)