自定义证书使用kubectl认证接入API Server
kubeconfig是API Server的客户端连入API Server时使用的认证格式的客户端配置文件。
使用kubectl config view查看其配置

 kubectl config view
apiVersion: v1
clusters: #集群列表
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.1.100:6443
name: kubernetes
contexts: #上下文列表(使用哪个账号访问哪个集群)
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes #当前使用的账号
kind: Config
preferences: {}
users: #用户列表
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED

创建、删除集群\用户\上下文列表
kubectl config (set-cluster\delete-cluster)\(set-credentials)\(set-context\delete-context)
创建账号前需要创建账号用于服务器端的认证的证书及密钥
切换用户:kubectl config use-context

使用kubeadm创建的集群,集群的证书及密钥在/etc/kubernetes/pki下。里面的证书和私钥都有各自的功能;
如:apiserver-kubectl-client.crt和apiserver-kubectl-client.key就可以用来给创建的账户所使用。

示例:
使用openssl创建用于自己创建账号所使用的证书及密钥(自签)
使用带有自签证书的用户在集群中创建用户,切换用户查看权限:
1.创建一个smbands的用户私钥:
  (umask 077; openssl genrsa -out smbands.key 2048)
  注意:证书持有者名称就是用户名,所以用户名必须与证书持有者名称一致;
  如:用户名为smbands,那么持有者也应该为smbands。创建完成后会生成一个smbands.key的文件。
2.基于刚生成的私钥去生成一个证书生成请求smbands.csr
   openssl req -new -key smbands.key -out smbands.csr -subj "/CN=smbands"
   会生成一个生成证书请求文件smbands.csr
3.使用ca.crt签署证书
   openssl x509 -req -in smbands.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out smbands.crt -days 365
   生成smbands的用户证书smbands.crt
使用:openssl x509 -in smbands.crt -text -noout查看生成的证书信息

使用创建的用户在集群中创建账户和上下文
1.在集群中创建用户:
  kubectl config set-credentials smbands --client-certficate=URL/smbands.crt --client-key=URL/smbands.key --embed-certs=true
2.在集群中为新建的用户定义上下文,使用户可以切换至创建的用户:
  kubectl config set-context smbands@kubernetes(用户名@集群名) --cluster=kubernetes --user=smbands
3.切换集群账户:
  kubectl config use-context smbands@kubernetes
此时集群账户就切换为smbands了,不过这样默认的用户是没有管理员权限的。下一篇将会写到如何使用RBAC将自定义用户绑定到自定义角色分配自定义权限。
此时的kubeconfig如下显示:

 kubectl config view
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: DATA+OMITTED
server: https://192.168.1.100:6443
name: kubernetes
contexts:
- context:
cluster: kubernetes
user: kubernetes-admin
name: kubernetes-admin@kubernetes
- context:
cluster: kubernetes
user: smbands
name: smbands@kubernetes
current-context: smbands@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
- name: smbands
user:
client-certificate-data: REDACTED
client-key-data: REDACTED

k8s使用自定义证书将客户端认证接入到API Server的更多相关文章

  1. 拿nodejs快速搭建简单Oauth认证和restful API server攻略

    拿nodejs快速搭建简单Oauth认证和restful API server攻略:http://blog.csdn.net/zhaoweitco/article/details/21708955 最 ...

  2. Identity Server 4客户端认证控制访问API

    项目源码: 链接:https://pan.baidu.com/s/1H3Y0ct8xgfVkgq4XsniqFA 提取码:nzl3 一.说明 我们将定义一个api和要访问它的客户端,客户端将在iden ...

  3. Identity Server 4资源拥有者密码认证控制访问API

    基于上一篇文章中的代码进行继续延伸,只需要小小的改动即可,不明白的地方可以先看看本人上一篇文章及源码: Identity Server 4客户端认证控制访问API 一.QuickStartIdenti ...

  4. CrtCtl (客户端认证的证书、私钥)的控制

    crt (证书文件) 编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 客户端认证的证书.私钥. 中文名 crt 性    质 证书文件 类    型 客户端认证的证书. ...

  5. 一文读懂Https的安全性原理、数字证书、单项认证、双项认证等

    本文引用了作者Smily(博客:blog.csdn.net/qq_20521573)的文章内容,感谢无私分享. 1.前言 目前苹果公司已经强制iOS应用必须使用HTTPS协议开发(详见<苹果即将 ...

  6. Docker Data Center系列(五)- 使用自定义的TLS安全认证

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 名词说明 CSR: Certificate Sig ...

  7. K8S集群证书已过期且etcd和apiserver已不能正常使用下的恢复方案

    在这种比较极端的情况下,要小心翼翼的规划和操作,才不会让集群彻底死翘翘.首先,几个ca根证书是10年期,应该还没有过期.我们可以基于这几个根证书,来重新生成一套可用的各组件认证证书. 前期,先制定以下 ...

  8. 轻松搭建CAS 5.x系列(4)-Java客户端程序接入CAS单点登录,Hello World版

    概述说明 按照本系列的前3篇文章描述的步骤,我们已经搭建好cas sso server.那应用程序怎么接入到实现sso呢? (如果您还没有搭建cas server,可以到<轻松搭建CAS 5.x ...

  9. k8s集群证书过期(kubeadm 1.10.2 )

    1.k8s 集群架构描述 kubeadm v1.10.2创建k8s集群. master节点高可用,三节点(10.18.60.3.10.18.60.4.10.18.60.5). LVS实现master三 ...

随机推荐

  1. word2010页脚页码的总页数修改方法

    3很多时候做WORD文档时,首页和尾页通常是做为封面与封底的是不做页码统计的. 这时候就需要总页面上减去首页和尾页的数量.以下为修改总页数方法 1.打开WORD文档设置页眉页脚,页脚设置页码, 2.设 ...

  2. Word中图片自动编号且与文中引用的编号对应

    当我们在进行大篇幅 word 文档的编写时, 为了节约修改文章中图片所花费的大量时间, 可以将图片自动编号,且让文中引用的顺序跟着图片顺序的变化而变化,具体操作如下: 1. 将鼠标定在欲加编号的下方, ...

  3. 转 基于MySQL MEB的备份恢复

    几种备份方式的介绍 mysqlbackup是一个热备份工具.也就是说它不像mysqldump那样给表上一个全局锁,由于mysqldump上了这个锁,所以就造成客户端只能对 数据库进行读操作不能写,这也 ...

  4. SQL判断经纬度在矩形内

    1,将城市地图拆分等距拆分为矩形 数据结构如图: 2.查看高德JS API (点是否在多边形内)核心代码: a=[114.069564,22.545774]; b=[ [114.067595,22.5 ...

  5. IIS断开连接之后internet信息服务里面不显示本地计算机的解决方法

    今天我断开了IIS的本地计算机连接之后,出现了无法连接的情况.具体如图: 解决方法: 右击->所有服务->重新启动iis即可.

  6. Oracle 搭建Node.js开发环境

      先决条件 安装oralce客户端驱动. 安装node.js.   创建项目 安装oracledb模块 $npm install oracledb 如果失败了,你可能要爬墙.   参考package ...

  7. Java 多线程的实现方法

    package com.jckb; /**多线程实现的两种方法 * * @author gx * */ public class Test2 { public static void main(Str ...

  8. 12.Visual Studio 2013中的默认快捷键

    这篇大致是IDE的使用技巧,常用的也就那么几个. 我自己用的最多的是注释.取消注释.格式调整.运行测试.开始调试.断开调试.重新开始调试.删除行ctrl+L.保存.全部保存.打开资源管理器.搜索等几个 ...

  9. String在方法中的传递方式(调用外部方法给String变量赋值时,未得到预期结果)

    示例: public class StringTraining { public static void changeStr(String str){ str = "137878" ...

  10. UPDATE SQL 不同环境执行结果不一样

    背景:1.前台:JQUERY 提交数据 2.后台:OWIN C#  处理接收数据 3.数据库: postgresql ========================================= ...