• K8S之认证、鉴权、准入控制


    前言:

    Kubernetes作为分布式的集群管理工具,API Server是集群内部各个组件通信的中介,也是外部控制的入口。需要进行安全机制的设置。Kubernetes使用了认证(Authenrtication)鉴权(Authorization)、准入控制(Admission Control)三步来保证API Server的安全

    一、认证:

    两种类型:

    1、 Kubernetes组件对API Server的访问:kubectl、Controller Manager、Scheduler、Kubelet、Kube-proxy

    2、Kubernetes管理的Pod对容器的访问:Pod(dashboard也是以pod形式运行)

    安全性说明:

    ·  Controller Manager、scheduler与API Server在同一机器,所以直接使用API Server的非安全端口访问,--insecure-bind-address=127.0.0.1

    ·  kubectl、kubelet、kube-proxy访问API Server都需要证书进行HTTPS双向认证

    证书颁发

    - 手动签发:通过k8s集群的跟ca进行签发HTTPS证书

    - 自动签发:kubelet首次访问API Server时,使用token做认证,通过后,Controller Manager会为kubelet生成一个证书,以后的访问都是使用证书做认证

    3、kubeconfig

    kubeconfig文件包含集群参数(CA证书,API Server地址),客户端参数(上面生成的证书和私钥),集群conetxt信息(集群名称、用户名)。kubernetes组件通过启动时指定不同的kubeconfig文件可以切换到不同的集群

    kubeconfig文件详解:

    1、client-key-data:客户端私钥

    2、client-certificate-data:证书

    3、kubernetes-admin:当前用户名

    4、current-context: 设置kubelet执行当前上下文,当前集群

    5、server:server服务器的地址信息

    6、contexts: 设置kubelet执行上下文

    认证流程图:

    :Kubectl config命令

    Kubeconfig文件可以手动进行编辑,也可以通过kubectl config命令进行查询和设置。
    1、kubectl config view:查看Kubeconfig文件
    2、kubectl config set-cluster: 设置kubeconfig的clusters

    kubectl config set-cluster kubernetes \
    --certificate-authority=/etc/kubernetes/ssl/ca.pem \
    --embed-certs=true \
    --server=${KUBE_APISERVER}
    

    3、kubectl config set-credentials : 设置kubeconfig的users

    kubectl config set-credentials admin \
    --client-certificate=/etc/kubernetes/ssl/admin.pem \
    --embed-certs=true \
    --client-key=/etc/kubernetes/ssl/admin-key.pem
    

    4、kubectl config set-context: 设置Kubeconfig的contexts

    kubectl config set-context kubernetes \
    --cluster=kubernetes \
    --user=admin
    

    5、kubectl config use-context: 设置Kubeconfig的current-context

    kubectl config use-context kubernetes
  • 相关阅读:
    AppWidget应用(四)---PendingIntent 之 getService
    AppWidget应用(三)---PendingIntent 之 getBroadcast
    AppWidget应用(二)---PendingIntent 之 getActivity
    JZOJ 3231. 海明距离
    JZOJ 1422. 猴子摘桃
    JZOJ 1421. 二叉树
    SSLOJ 1318.地铁重组
    SSLOJ 1319.埃雷萨拉斯寻宝
    SSLOJ 1317.灵魂分流药剂
    SSLOJ 1316.血色先锋军
  • 原文地址:https://www.cnblogs.com/wuchangblog/p/16716012.html
Copyright © 2020-2023  润新知