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
  • 相关阅读:
    logger日志工具类
    主机连不上虚拟机中的Redis的原因分析、以及虚拟机网络配置
    sudo密码错误的解决办法
    FileReader和FileInputStream的区别
    用DriverBackUp备份了文件 装好系统后怎么把备份的驱动文件还原
    surface pro系统按键+重装系统
    修复漏洞需要很多时间
    Mybatis一对多查询得不到多方结果
    推荐几个好的 Maven 常用仓库网址
    Math.round(),Math.ceil(),Math.floor()的区别
  • 原文地址:https://www.cnblogs.com/37yan/p/14781546.html
Copyright © 2011-2022 走看看