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)

  • 相关阅读:
    C# memoryStream
    C# memoryStream
    C# HSSFWorkbook与XSSFWorkbook的区别和.xls和.xlsx的区别
    C# HSSFWorkbook与XSSFWorkbook的区别和.xls和.xlsx的区别
    C# winform 启动外部程序
    C# winform 启动外部程序
    NPOI2.2.0.0实例详解(九)—设置EXCEL单元格【时间格式】
    NPOI2.2.0.0实例详解(九)—设置EXCEL单元格【时间格式】
    FileStream 的FileShare一点小认识
    FileStream 的FileShare一点小认识
  • 原文地址:https://www.cnblogs.com/gavin11/p/13112293.html
Copyright © 2011-2022 走看看