Bota5ky

Kubernetes学习笔记(二十五):Certificates API

用户创建key:

openssl genrsa -out jane.key 2048

用户把key发给admin,admin用这个key创建certificate signing request对象:

openssl req -new -key jane.key -subj "/CN=jane" -out jane.csr

Jane-csr.yaml kubectl create -f Jane-csr.yaml

apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:
  name: jane
spec:
  groups:
  - system:authenticated
  usages:
  - digital signature
  - key encipherment
  - server auth
  request:
    ## 请求内容用base64 encode
    ## cat jane.csr | base64 | tr -d "\n" 或 base64 -w 0 禁用换行

创建对象后,admin可以通过 kubectl get csr 查看所有证书请求,通过 kubectl certificate approve jane,拒绝则用 deny,删除则用 kubectl delete csr jane

通过以yaml格式查看证书 kubectl get csr jane -o yaml,用base64解码 echo "...=" | base64 --decode

所有与证书相关的操作都由Controller Manage执行:其中包含CSR-APPROVING、CSR-SIGNING等控制器

其中的key和根证书在 /etc/kubernetes/manifests/kube-controller-manager.yaml 中的

spec:
  containers:
  - command:
    - --cluster-signing-cert-file=/etc/kubernetes/pki/ca.crt
    - --cluster-signing-key-file=/etc/kubernetes/pki/ca.key
posted @ 2022-09-05 09:52  Bota5ky  阅读(41)  评论(0)    收藏  举报