k8s创建用户账号——User Account
用户账户和用户组
Kubernetes 并不会存储由认证插件从客户端请求中提取出的用户及所属组的信息,它们仅仅用于检验用户是否有权限执行其所请求的操作。客户端访问API服务的途径通常有三种:kubectl、客户端库或者直接使用 REST接口进行请求。而可以执行此类请求的主体也被 Kubernetes 分为两类:现实中的“人”和 Pod 对象, 它们的用户身份分别对应于常规用户 (User Account )和服务账号 ( Service Account) 。
Use Account(用户账号):一般是指由独立于Kubernetes之外的其他服务管理的用 户账号,例如由管理员分发的密钥、Keystone一类的用户存储(账号库)、甚至是包 含有用户名和密码列表的文件等。Kubernetes中不存在表示此类用户账号的对象, 因此不能被直接添加进 Kubernetes 系统中 。
Service Account(服务账号):是指由Kubernetes API 管理的账号,用于为Pod 之中的服务进程在访问Kubernetes API时提供身份标识( identity ) 。Service Account通常要绑定于特定的命名空间,它们由 API Server 创建,或者通过 API 调用于动创建 ,附带着一组存储为Secret的用于访问API Server的凭据。

Kubernetes 有着以下几个内建的用于特殊目的的组 。
system:unauthenticated:未能通过任何一个授权插件检验的账号,即未通过认证测 试的用户所属的组 。system :authenticated:认证成功后的用户自动加入的一个组,用于快捷引用所有正常通过认证的用户账号。system : serviceaccounts:当前系统上的所有 Service Account 对象。system :serviceaccounts :<namespace>:特定命名空间内所有的 Service Account 对象。
下面我们来创建一个User Account,测试访问某些我们授权的资源:
创建k8s User Account
一、创建证书
1、创建user私钥
#yum install openssl -y
root@k8s-master:/etc/kubernetes/pki# (umask 077;openssl genrsa -out cbmljs.key 2048)
Generating RSA private key, 2048 bit long modulus
.......................+++
...........................................+++
e is 65537 (0x10001)
root@k8s-master:/etc/kubernetes/pki#
2、创建证书签署请求
O=组织信息,CN=用户名
root@k8s-master:/etc/kubernetes/pki# openssl req -new -key cbmljs.key -out cbmljs.csr -subj "/O=k8s/CN=cbmljs"
root@k8s-master:/etc/kubernetes/pki#
3、签署证书
root@k8s-master:/etc/kubernetes/pki# openssl x509 -req -in cbmljs.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out cbmljs.crt -days 365
Signature ok
subject=/O=k8s/CN=cbmljs
Getting CA Private Key
root@k8s-master:/etc/kubernetes/pki#
二、创建配置文件
1、创建配置文件主要有以下几个步骤:
kubectl config set-cluster --kubeconfig=/PATH/TO/SOMEFILE #集群配置
kubectl config set-credentials NAME --kubeconfig=/PATH/TO/SOMEFILE #用户配置
kubectl config set-context #context配置
kubectl config use-context #切换context
* --embed-certs=true的作用是不在配置文件中显示证书信息。
* --kubeconfig=/root/cbmljs.conf用于创建新的配置文件,如果不加此选项,则内容会添加到家目录下.kube/config文件中,可以使用use-context来切换不同的用户管理k8s集群。
* context简单的理解就是用什么用户来管理哪个集群,即用户和集群的结合。
2、创建集群配置
root@k8s-master:/etc/kubernetes/pki# kubectl config set-cluster k8s --server=https://192.168.253.136:6443 --certificate-authority=ca.crt --embed-certs=true --kubeconfig&#
本文介绍了如何在Kubernetes中创建User Account,包括创建证书、配置文件、Role和Rolebinding等步骤,详细讲解了权限设置和验证过程,以实现对Kubernetes资源的访问控制。
最低0.47元/天 解锁文章

1226

被折叠的 条评论
为什么被折叠?



