k8s增加普通用户User

普通用户并不是通过k8s来创建和维护,是通过创建证书和切换上下文环境的方式来创建和切换用户。
其实创建用户的步骤,就是手动部署k8s集群里的一个步骤。
创建过程见下:

1、创建用户证书

[root@k8s-master1]# cat  userkubectl-csr.json
{
  "CN": "userkubectl", #####userkubectl用户名字,可自行定义,与后面的名字要保持一致
  "key": {
    "algo": "rsa",
    "size": 2048
  },
  "names": [
    {
      "C": "CN",
      "ST": "SZ",
      "L": "SZ",
      "O": "k8s",
      "OU": "4Paradigm"
    }
  ]
}
2、在master节点上执行 生成user证书
[root@k8s-master1]#  cfssl gencert -ca=/etc/kubernetes/cert/ca.pem -ca-key=/etc/kubernetes/cert/ca-key.pem -config=/etc/kubernetes/cert/ca-config.json -profile=kubernetes userkubectl-csr.json | cfssljson -bare userkubectl
 -ca=/etc/kubernetes/cert/ca.pem                  为k8s apiserver证书
 -ca-key=/etc/kubernetes/cert/ca-key.pem          为k8s apiserver证书
 -config=/etc/kubernetes/cert/ca-config.json      为k8s apiserver证书

3、生成证书证书如下
[root@k8s-master1]# ls
userkubectl.csr 
userkubectl-csr.json userkubectl-key.pem userkubectl.pem
3、在master节点上执行设置集群参数
kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/cert/ca.pem --embed-certs=true --server=https://xxx.xxx.xxx.xxx:4443 --kubeconfig=kubectl.kubeconfig
               注释: --server=https://xxx.xxx.xxx.xxx:4443  根据自己master节点进行设置
4、在master节点上执行设置客户端认证参数
[root@k8s-master1]# kubectl config set-credentials userkubectl --client-certificate=userkubectl.pem --client-key=userkubectl-key.pem --embed-certs=true --kubeconfig=kubectl.kubeconfig
User "userkubectl" set.
5、在master节点
设置上下文参数 [root@k8s-master1]# kubectl config set-context kubernetes --cluster=kubernetes --user=userkubectl --kubeconfig=kubectl.kubeconfig
Context "kubernetes" created.
6、授予userkubectl cluster-admin权限  可根据不同授权给予创建role 或者cluserrole权限给用户
[root@k8s-master1]# kubectl create clusterrolebinding kubectl-bootstrap --clusterrole=cluster-admin --user=userkubectl
7、将生成的kubectl.kubeconfig文件复制至各节点的/root/.kube/下,并修改名字为config

注释:需要在各node节点上面查看是否设置了 $KUBECONFIG环境变量,如果设置了需要把kubectl.kubeconfig设置成环境变量下的文件
 


 


k8s 使用新增user配置kubectl在各个节点都可运行的更多相关文章

  1. Ubuntu环境Docker+K8s+Dashboard的安装配置(无坑亲测)

    安装之前的准备: 安装docker 使用国内 daocloud 一键安装命令: curl -sSL https://get.daocloud.io/docker | sh 直接从dockerhub下载 ...

  2. k8s技术--Kubernetes集群kubectl命令的常见使用方法

    简介:kubectl是一个命令行界面,用于运行针对Kubernetes群集的命令. 语法: kubectl [command] [TYPE] [NAME] [flags] command:指定您希望对 ...

  3. [转帖]在 k8s 中通过 Ingress 配置域名访问

    在 k8s 中通过 Ingress 配置域名访问 https://juejin.im/post/5db8da4b6fb9a0204520b310 在上篇文章中我们已经使用 k8s 部署了第一个应用,此 ...

  4. 4.2 K8S超级完整安装配置

    前言: 采坑 k8s有3种安装方式,如下所示: minikube:这是一个k8s集群模拟器,只有一个节点的集群,只为了测试使用,master和node都在一台机器上 直接使用带有容器功能的云平台安装: ...

  5. [Kubernetes]安装和配置kubectl

    安装kubectl 安装kubectl比较简单,几条命令即可(#后面为注释内容): #下载最新版本: curl -LO https://storage.googleapis.com/kubernete ...

  6. Fundebug 微信小程 BUG 监控插件更新至 1.2.1,优化错误上报次数的限制算法,新增 silentHttpHeader 配置选项

    摘要: 1.2.1优化错误上报次数的限制算法,新增silentHttpHeader配置选项,请大家及时更新哈! Fundebug提供专业的微信小程序 BUG 监控服务,可以第一时间为您捕获生存环境中小 ...

  7. K8s集群部署(二)------ Master节点部署

    Master节点要部署三个服务:API Server.Scheduler.Controller Manager. apiserver提供集群管理的REST API接口,包括认证授权.数据校验以 及集群 ...

  8. VMware workstation虚拟集群实践(1)—— 配置集群多节点互信

    一. 简述 节点互信,是集群管理的基本操作之一.节点互信是通过SSH协议的公钥密钥认证来代替密码认证来实现的.对于单点批量管理多个节点,多个节点之间相互通信来说,配置SSH单方向信任,或者互信十分必要 ...

  9. Nodejs的安装配置及如何在sublimetext2中运行js

    Nodejs的安装配置及如何在sublimetext2中运行js听语音 | 浏览:4554 | 更新:2015-06-16 11:29 Nodejs的安装配置及如何在sublimetext2中运行js ...

随机推荐

  1. java中数组输出的方式

    方式1:遍历输出 public class Main { public static void main(String[] args) { int[] ns = { 1, 4, 9, 16, 25 } ...

  2. SpringBoot-属性配置yaml自定义属性和值

    SpringBoot-属性配置yaml自定义属性和值 SpringBoot-属性配置yaml自定义属性和值 在SpringBoot中yml/yaml文件可以自定义一些属性,以供注入给自定义bean对象 ...

  3. restfulframework详解

    restfulframework详解 第一篇 RESTful规范

  4. Python基础week1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  5. 一个基于chrome扩展的自动答题器

    1.写在前面 首先感谢小茗同学的文章-[干货]Chrome插件(扩展)开发全攻略, 基于这篇入门教程和demo,我才能写出这款 基于chrome扩展的自动答题器. git地址: https://git ...

  6. 二十一、JavaScript之访问对象属性

    一.代码如下 二.执行效果如下 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" cont ...

  7. 165-PHP 文本替换函数str_replace(六)

    <?php $str='programming'; //定义一个字符串 $replacement='er'; //定义替换的字符串 $res=substr_replace($str,$repla ...

  8. Android Studio模拟器无法访问网络

    Android Studio3.5 模拟器无法访问网络的原因?

  9. php srand()和rand()

    1.rand()函数 作用:返回随机整数 用法:rand(min,max)  min和max规定随机数产生的范围,可以省略不写,不写时rand() 返回 0 到 RAND_MAX 之间的伪随机整数. ...

  10. Android 为控件添加点击涟漪效果

    Android在5.0版为Button默认添加了点击时的涟漪效果,而且在其他的控件上也可以轻松的实现这种炫酷的效果.涟漪效果可以分为两种,一种时有边界的涟漪,另一种时无边界的涟漪.所谓的有边界,即涟漪 ...