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
  • 相关阅读:
    教你如何剖析源码
    singleCall单来源调用解析及实现
    守护进程详细解读
    终端&作业控制&会话启动过程
    时间复杂度&空间复杂度
    linux环形buff模拟多线程信号量操作
    linux多线程-互斥&条件变量与同步
    linux线程控制&线程分离
    栈帧的不安全程序示例
    如何获取程序返回值,退出码,错误码
  • 原文地址:https://www.cnblogs.com/37yan/p/14781546.html
Copyright © 2011-2022 走看看