zoukankan      html  css  js  c++  java
  • kubernetes api 的两种身份认证 以及kubectl生成kubeconfig

    token方式

    • 配置服务账户及授权

    创建服务账户

    kubectl create sa api-admin

    获取TOKEN

    kubectl get secrets $(kubectl get sa api-admin -ojsonpath='{.secrets[0].name}') -ojsonpath='{.data.token}' |base64 -d

    集群管理员授权

    kubectl create clusterrolebinding cluster-api-admin --clusterrole=cluster-admin --serviceaccount=default:api-admin
    • 设置kubeconfig文件

    设置集群配置

    kubectl config set-cluster k8s-test --server=$APISERVER --certificate-authority=/home/admin/kubernetes.ca.crt

    设置客户端配置

    kubectl config set-credentials api-admin --token=$TOKEN

    设置上下文配置

     kubectl config set-context k8s-test --cluster=k8s-test --user=api-admin

    设置默认上下文

    kubectl config use-context k8s-test

     

     X.509 客户端证书方式

    • 申请客户端证书

    生成证书请求文件,注意证书的OU和CN字段会作为apiserver鉴权的用户或组实体

    openssl genrsa -out sanmu.key 2048
    openssl req -new -key john.key -out sanmu.csr

    Organizational Unit Name (eg, section) []:group
    Common Name (eg, your name or your server's hostname) []:sanmu

    申请签名证书

    cat <<EOF | kubectl apply -f -
    apiVersion: certificates.k8s.io/v1
    kind: CertificateSigningRequest
    metadata:
      name: sanmu
    spec:
      groups:
      - system:authenticated
      request: `cat sanmu.csr |base64 | tr -d "
    "`
      signerName: kubernetes.io/kube-apiserver-client
      usages:
      - client auth
    EOF

    批准签名证书

    kubectl certificate approve sanmu

    获取证书

    kubectl get csr sanmu -ojsonpath='{.items[0].status.certificate}' |base64 -d >sanmu.crt

    集群管理员授权

    kubectl create clusterrolebinding cluster-sanmu-admin --clusterrole=cluster-admin --user sanmu
    • 设置kubeconfig文件

    设置集群配置

     kubectl config set-cluster k8s-test --server=$APISERVER --certificate-authority=/home/admin/kubernetes.ca.crt

    设置客户端配置

    kubectl config set-credentials sanmu --client-key=/home/admin/mutou.key --client-certificate=/home/admin/mutou.crt --embed-certs=true

    设置上下文配置

     kubectl config set-context k8s-test --cluster=k8s-test --user=sanmu

    设置默认上下文

    kubectl config use-context k8s-test
  • 相关阅读:
    php中的list()用法中要注意的地方
    怎么让小白理解intel处理器(CPU)的分类
    CPU的历史
    【主板上各种接口和附属部件科普】
    NVMe SSD是什么?
    带你认识SATA、mSATA 、PCIe和M.2四种接口
    那些长短不一的PCI-E插槽都有什么不一样?
    ceph 指定OSD创建pool
    ceph cache pool配置
    搭建ceph集群(单节点)
  • 原文地址:https://www.cnblogs.com/37yan/p/14781546.html
Copyright © 2011-2022 走看看