1 - 自定义证书


自v0.2.0起可用

默认情况下,Kubernetes集群配置ssl证书来通信认证,RKE会自动为所有集群组件生成证书,部署Kubernetes集群后,您可以管理这些自动生成的证书,您也可以使用自定义证书

选项描述
—custom-certs使用证书目录中的自定义证书,默认目录:/cluster_certs
—cert-dir value指定证书目录路径

一、使用自定义证书进行安装

  1. #使用位于默认目录`/cluster_certs`中的证书
  2. rke up --custom-certs --config cluster.yml
  3. #使用位于您自己目录中的证书
  4. rke up --custom-certs --cert-dir ~/my/own/certs --config cluster.yml

二、证书文件名称

证书目录中必须存在以下证书文件

NameCertificateKeyRequired
Master CAkube-ca.pem-
Kube APIkube-apiserver.pemkube-apiserver-key.pem
Kube Controller Managerkube-controller-manager.pemkube-controller-manager-key.pem
Kube Schedulerkube-scheduler.pemkube-scheduler-key.pem
Kube Proxykube-proxy.pemkube-proxy-key.pem
Kube Adminkube-admin.pemkube-admin-key.pem
Apiserver Proxy Clientkube-apiserver-proxy-client.pemkube-apiserver-proxy-client-key.pem
Etcd Nodeskube-etcd-x-x-x-x.pemkube-etcd-x-x-x-x-key.pem
Kube Api Request Header CAkube-apiserver-requestheader-ca.pemkube-apiserver-requestheader-ca-key.pem
Service Account Token-kube-service-account-token-key.pem

三、生成证书签名请求(CSR)和密钥

如果要通过真实证书颁发机构(CA)创建和签署证书,可以使用RKE生成一组证书签名请求(CSR)和密钥。使用该rke cert generate-csr命令,您可以生成CSR和密钥。

  • 在rke配置文件cluster.yml中设置节点信息

  • 运行rke cert generate-csr以生成cluster.yml中的节点证书。默认情况下,CSR和密钥将保存在./cluster_certs。要将它们保存在不同的目录中,使用—cert-dir自定义保存目录。

  1. rke cert generate-csr
  2. INFO[0000] Generating Kubernetes cluster CSR certificates
  3. INFO[0000] [certificates] Generating Kubernetes API server csr
  4. INFO[0000] [certificates] Generating Kube Controller csr
  5. INFO[0000] [certificates] Generating Kube Scheduler csr
  6. INFO[0000] [certificates] Generating Kube Proxy csr
  7. INFO[0001] [certificates] Generating Node csr and key
  8. INFO[0001] [certificates] Generating admin csr and kubeconfig
  9. INFO[0001] [certificates] Generating Kubernetes API server proxy client csr
  10. INFO[0001] [certificates] Generating etcd-x.x.x.x csr and key
  11. INFO[0001] Successfully Deployed certificates at [./cluster_certs]

结果:假设您通过—cert-dir未指定目录,则CSRs将在./cluster_certs目录生成。CSR文件文件将包含证书的正确替代DNS和IP名称,您可以使用它们通过真实CA签名机构进行证书签署。证书签名后,RKE可以将这些证书用作自定义证书。

  1. tree cluster_certs
  2. cluster_certs
  3. ├── kube-admin-csr.pem
  4. ├── kube-admin-key.pem
  5. ├── kube-apiserver-csr.pem
  6. ├── kube-apiserver-key.pem
  7. ├── kube-apiserver-proxy-client-csr.pem
  8. ├── kube-apiserver-proxy-client-key.pem
  9. ├── kube-controller-manager-csr.pem
  10. ├── kube-controller-manager-key.pem
  11. ├── kube-etcd-x-x-x-x-csr.pem
  12. ├── kube-etcd-x-x-x-x-key.pem
  13. ├── kube-node-csr.pem
  14. ├── kube-node-key.pem
  15. ├── kube-proxy-csr.pem
  16. ├── kube-proxy-key.pem
  17. ├── kube-scheduler-csr.pem
  18. └── kube-scheduler-key.pem
  19. 0 directories, 16 files