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

代码咸鱼梦 · · 2166 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

帮助文档

使用的变量

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

$ 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
  • 使用命令 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

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:代码咸鱼梦

查看原文:配置kubectl客户端通过token方式访问kube-apiserver

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2166 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传