k8s通过系统配置文件kubeconfig文件实现权限的精细化分配

文章目录

通过系统配置文件kubeconfig文件实现权限的精细化分配

一.获取k8s apiserver 地址

cat /etc/kubernetes/manifests/kube-apiserver.yaml
kubectl -n planck describe secret $(kubectl get secret -n planck | grep lishanbin | awk '{print $1}')

k8s的apiserver地址为:https://xxx:6443

token="xxx"

二.集群的ca证书生成

cfssl 安装

[root@localhost etcd]# wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
[root@localhost etcd]# mv cfssl_linux-amd64 /usr/bin/cfssl

cfssljson 安装

[root@localhost etcd]# wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
[root@localhost etcd]# mv cfssljson_linux-amd64 /usr/bin/cfssljson

生产证书

[root@localhost etcd]# chmod +x /usr/bin/{cfssl,cfssljson}
cfssl gencert -initca ca-csr.json | cfssljson  -bare ca

三.创建kubeconfig文件

1.设置集群参数

config文件引入集群ca证书,这里的set-cluster 可以任意设置,想叫什么集群名字都可以,我这里定义为mykubernetes,kubeconfig文件名称也随意定义,我这里定义为test.kubeconfig,此命令执行后会在当前目录生成test.kubeconfig这个文件:

KUBE_APISERVER="https://kube-apiserver.allenjol.cn"
SECRET_TOKEN="xxxxxx"
 
kubectl config set-cluster mykubernetes \
--certificate-authority=/mnt/ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=test.kubeconfig

定义的用户名称是test,当然,用户名称可以随意定义。里面的token就已经带了前面建立的sa的权限---查看dev这个namespace下的pod的权限:

kubectl config set-credentials "test" \
--token=${SECRET_TOKEN} \
--kubeconfig=test.kubeconfig

定义上下文名称

kubectl config set-context quanxianfenpei \
  --cluster=mykubernetes \
  --user=test \
  --kubeconfig=test.kubeconfig

查看(发现没有)

kubectl config get-contexts

切换上下文,其实这一步就是将ca证书和token关联起来并写在了这个新定义的kubeconfig文件内。

验证:

kubectl  create deploy nginx --image=nginx -n saas
kubectl --kubeconfig=/root/cert/test.kubeconfig  delete  pod nginx-6799fc88d8-xp76x   -n planck --insecure-skip-tls-verify
相关推荐
cxr8283 分钟前
Docker Desktop 解决从开发到部署的高效容器化工作流问题
运维·docker·容器
翻滚吧键盘8 小时前
记录一个连不上docker中的mysql的问题
mysql·docker·容器
元气满满的热码式9 小时前
K8S中数据存储之配置存储
云原生·容器·kubernetes
龙胖不下锅9 小时前
k8s服务StatefulSet部署模板
云原生·容器·kubernetes
忘忧人生9 小时前
docker 部署 java 项目详解
java·docker·容器
律二萌萌哒10 小时前
K8S极简教程(4小时快速学会)
云原生·容器·kubernetes
前端 贾公子11 小时前
速通Docker === Docker Compose
云原生·eureka
ks胤墨13 小时前
Docker快速部署高效照片管理系统LibrePhotos搭建私有云相册
运维·docker·容器
忘忧人生15 小时前
docker 安装 redis 详解
redis·docker·容器
jimiStephen15 小时前
ZooKeeper 数据模型
分布式·zookeeper·云原生