• 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)

  • 相关阅读:
    HDU 1004 Let the Balloon Rise【STL<map>】
    UVA 1030
    UVA 10881
    POJ 3154 Graveyard【多解,数论,贪心】
    浅谈Notepad++选中行操作+快捷键+使用技巧【超详解】
    COGS 68. [NOIP2005] 采药【01背包复习】
    [phomeflashpic]怎样调用帝国CMS图片幻灯效果
    微信认证新增公对公账户银行卡转账支付审核费用 缩减认证审核时长
    微信公众平台回复过了怎么不能再次回复?亲们要注意查看"公众平台回复用户消息时限变更通知"的公告啊
    新版微信终于支持消息撤回了 微信零钱也能转账了[微信5.3.1.16更新]
  • 原文地址:https://www.cnblogs.com/gavin11/p/13112293.html
Copyright © 2020-2023  润新知