zoukankan      html  css  js  c++  java
  • k8s中的PKI证书

    Kubernetes需要PKI证书才能进行基于TLS的身份验证,如果使用kubeadm安装的kubernetes,则会自动生成集群所需要的证书。

    集群中是如何使用证书:

    • kubelet的客户端证书,用于访问API服务器身份验证
    • API服务器端点证书
    • 集群管理员的客户端证书,用于API服务器身份认证
    • API服务器的客户端证书,用于和kubelet的会话
    • API服务器的客户端证书,用于和etcd的会话
    • 控制器管理器(controller-manager)的客户端证书/kubeconfig,用于和API server的会话
    • 调度器(scheduler)的客户端证书/kubeconfig,用于和API server的会话
    • 前端代理(proxy) 的客户端及服务端证书

    etcd 还实现了双向 TLS 来对客户端和对其他对等节点进行身份验证。

    单根CA

    可以创建一个单根CA,有管理员控制它,该CA可以创建多个中间CA,并将所有进一步的创建委托给Kubernetes。

    需要的以下CA

    路径 默认CN 描述
    ca.crt,key kubernetes-ca kubernetes通用CA
    etcd/ca.crt,key etcd-ca 与etcd相关的所有功能
    front-proxy/ca.crt,key kubernetes-front-proxy-ca 用于前端代理

    所需的所有证书

    默认CN 父级CA O(位于Subject中) 类型 主机(SAN)
    kube-etcd etcd-ca   server,client localhost,127,0.0.1
    kube-etcd-peer etcd-ca   server,client localhost,127.0.0.1,对等节点IP
    kube-etcd-healthcheck-client etcd-ca   client  
    kube-apiserver-etcd-client etcd-ca system:masters client  
    kube-apiserver  kubernetes-ca   server 如下【1】
    kube-apiserver-kubelet-client kubernetes-ca system:masters client  
    front-proxy-client   kubernetes-front-proxy-ca   client  

    【1】用来连接到集群中的不同IP或者DNS域名(就像kubeadm为负载均衡所使用的固定IP或DNS域名,kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster、kubernetes.default.svc.cluster.local)

    证书使用方式及路径

    默认 CN建议的密钥路径建议的证书路径命令密钥参数证书参数
    etcd-ca etcd/ca.key etcd/ca.crt kube-apiserver   --etcd-cafile
    kube-apiserver-etcd-client apiserver-etcd-client.key apiserver-etcd-client.crt kube-apiserver --etcd-keyfile --etcd-certfile
    kubernetes-ca ca.key ca.crt kube-apiserver   --client-ca-file
    kubernetes-ca ca.key ca.crt kube-controller-manager --cluster-signing-key-file --client-ca-file, --root-ca-file, --cluster-signing-cert-file
    kube-apiserver apiserver.key apiserver.crt kube-apiserver --tls-private-key-file --tls-cert-file
    kube-apiserver-kubelet-client apiserver-kubelet-client.key apiserver-kubelet-client.crt kube-apiserver --kubelet-client-key --kubelet-client-certificate
    front-proxy-ca front-proxy-ca.key front-proxy-ca.crt kube-apiserver   --requestheader-client-ca-file
    front-proxy-ca front-proxy-ca.key front-proxy-ca.crt kube-controller-manager   --requestheader-client-ca-file
    front-proxy-client front-proxy-client.key front-proxy-client.crt kube-apiserver --proxy-client-key-file --proxy-client-cert-file
    etcd-ca etcd/ca.key etcd/ca.crt etcd   --trusted-ca-file, --peer-trusted-ca-file
    kube-etcd etcd/server.key etcd/server.crt etcd --key-file --cert-file
    kube-etcd-peer etcd/peer.key etcd/peer.crt etcd --peer-key-file --peer-cert-file
    etcd-ca   etcd/ca.crt etcdctl   --cacert
    kube-etcd-healthcheck-client etcd/healthcheck-client.key etcd/healthcheck-client.crt etcdctl --key --cert

     

    k8s使用x509证书中CN(Common Name)以及O(Organization)字段对应k8s中的user和group,将Authentication和RBAC Authorization[15]结合到了一起,巧妙地将Control Plane中的各个核心User和Group、与操作权限(ClusterRole)进行了绑定(ClusterRoleBinding)

  • 相关阅读:
    在TreeView控件节点中显示图片
    PAT 甲级 1146 Topological Order (25 分)
    PAT 甲级 1146 Topological Order (25 分)
    PAT 甲级 1145 Hashing
    PAT 甲级 1145 Hashing
    PAT 甲级 1144 The Missing Number (20 分)
    PAT 甲级 1144 The Missing Number (20 分)
    PAT 甲级 1151 LCA in a Binary Tree (30 分)
    PAT 甲级 1151 LCA in a Binary Tree (30 分)
    PAT 甲级 1149 Dangerous Goods Packaging
  • 原文地址:https://www.cnblogs.com/gavin11/p/13112293.html
Copyright © 2011-2022 走看看