• 配置kubectl客户端通过token方式访问kube-apiserver


    使用的变量

    本文档用到的变量定义如下:

    $ export MASTER_IP=XX.XX.XX.XX # 替换为 kubernetes master VIP
    $ export KUBE_APISERVER="https://${MASTER_IP}:6443"
    $

    创建 kubectl config 文件

    $ # 设置集群参数
    $ kubectl config set-cluster kubernetes 
      --insecure-skip-tls-verify=true 
      --server=${KUBE_APISERVER} 
    $ # 设置客户端认证参数
    $ kubectl config set-credentials crd-admin 
     --token=7176d48e4e66ddb3557a82f2dd316a93 
    $ # 设置上下文参数
    $ kubectl config set-context kubernetes 
      --cluster=kubernetes 
      --user=crd-admin  
      --namespace=crd 
    $ # 设置默认上下文
    $ kubectl config use-context kubernetes
    • 使用命令www.97yingyuan.org head -c 16 /dev/urandom | od -An -t x | tr -d ' ' 生成token

    kube-apiserver设置

    添加kube-apiserver端token证书

    $ cat > /etc/kubernetes/pki/token_auth_file<<EOF
    7176d48e4e66ddb3557a82f2dd316a93,crd-admin,1
     EOF
    • 第一列为刚刚生成的token,要与config里的token一致

    • 第二列为user, 要与config里的use一致

    • 编号或是序列号

    添加kube-spiserver启动参数 --token-auth-file=/etc/kubernetes/pki/token_auth_file

    • 注意地址

    • 需要重启kube-apiserver

    • 证书验证和token和同时启用的,但是token和用户名密码,不可同时启用

    配置客户端RBAC相关

    限制 crd-admin 用户的行为,需要使用 RBAC 将该用户的行为限制在crd namespace 空间范围内

    kubectl create -f crd-rbac.yaml

    这样 crd-admin 用户对 crd namespace 具有完全访问权限。

    crd-rbac.yaml具体内容:

     
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: crdadmin-admin-binding
      namespace: crd
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: admin
    subjects:
    - apiGroup: rbac.authorization.k8s.io
      kind: User
      name: crd-admin
  • 相关阅读:
    day-14 模块的使用,循环导入,模块导入路径优先级,项目的目录结构
    day13-三元表达式,生成式,递归函数,匿名函数
    day12-无参装饰器,迭代器和生成器
    day11-函数对象,函数嵌套,名称空间与作用域,闭包函数,以及装饰器的前言
    一周总结(4)
    大道至简读后感
    一周总结(3)
    一周总结(2)
    一周总结(1)
    关于教室派app的使用体验与建议
  • 原文地址:https://www.cnblogs.com/tianshifu/p/7841007.html
Copyright © 2020-2023  润新知