《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.7环境中验证

文章目录

  • OpenShift的身份认证方式
  • 为客户端配置认证CA证书
  • 参考

OpenShift的身份认证方式

客户端在访问OpenShift的时候可以使用3种方式向OpenShift提供认证信息。

  • 用户名密码
  • Token
  • CA证书
    本文说明如何为客户端配置认证CA,并将其配置到kubeconfig中进行自动登录。

为客户端配置认证CA证书

  1. 先用clusteradmin角色的用户登录OpenShift。
  2. 设置变量
$ AUTH_NAME="auth2kube"
$ KUBECONFIG_FILE="~/mykubeconfig"
  1. 为“myuser”创建证书申请(csr文件)和对应秘钥。
$ openssl req -new -newkey rsa:4096 -nodes -keyout $AUTH_NAME.key -out $AUTH_NAME.csr -subj "/CN=myuser/O=system:masters"
Generating a RSA private key
.....................++++
..++++
writing new private key to 'auth2kube.key'
-----
  1. 为证书签名请求(csr)创建对应的K8s对象。
$ cat << EOF>> $AUTH_NAME-csr.yaml
apiVersion: certificates.k8s.io/v1beta1
kind: CertificateSigningRequest
metadata:name: $AUTH_NAME-access
spec:groups:- system:authenticatedrequest: $(cat $AUTH_NAME.csr | base64 | tr -d '\n')usages:- client auth
EOF$ oc create -f auth2kube-csr.yaml
W0610 07:38:10.053898     536 warnings.go:70] certificates.k8s.io/v1beta1 CertificateSigningRequest is deprecated in v1.19+, unavailable in v1.22+; use certificates.k8s.io/v1 CertificateSigningRequest
certificatesigningrequest.certificates.k8s.io/auth2kube-access created
  1. 查看csr 请求,并审批通过。
$ oc get csr auth2kube-access
NAME               AGE   SIGNERNAME                     REQUESTOR   CONDITION
auth2kube-access   16s   kubernetes.io/legacy-unknown   admin       Pending$ oc adm certificate approve auth2kube-access
certificatesigningrequest.certificates.k8s.io/auth2kube-access approved
  1. 从批准后的证书获取客户端证书(crt文件)。
$ oc get csr $AUTH_NAME-access -o jsonpath='{.status.certificate}' | base64 -d > $AUTH_NAME-access.crt
  1. 利用客户端证书和秘钥创建新的kubeconfig。
$ oc config set-credentials myuser --client-certificate=$AUTH_NAME-access.crt --client-key=$AUTH_NAME.key --embed-certs --kubeconfig=${KUBECONFIG_FILE}
User "myuser" set.
  1. 设置 myuser 登录后缺省使用default项目。
$ oc config set-context myuser --cluster=$(oc config view -o jsonpath='{.clusters[0].name}') --namespace=default --user=myuser --kubeconfig=${KUBECONFIG_FILE}
Context "myuser" created.
  1. 获得OpenShift的CA证书,并将其加入kubeconfig中。
$ oc -n openshift-authentication rsh `oc get pods -n openshift-authentication -o name | head -1` cat /run/secrets/kubernetes.io/serviceaccount/ca.crt > ingress-ca.crt$ oc config set-cluster $(oc config view -o jsonpath='{.clusters[0].name}') --server=$(oc config view -o jsonpath='{.clusters[0].cluster.server}') --certificate-authority=ingress-ca.crt --kubeconfig=${KUBECONFIG_FILE} --embed-certs
Cluster "local" set.
  1. 设置当前使用${KUBECONFIG_FILE}中的配置。
$ oc config use-context myuser --kubeconfig=${KUBECONFIG_FILE}
Switched to context "myuser".$ export KUBECONFIG=${KUBECONFIG_FILE}
  1. 直接用myuser登录验证,登录过程不需要密码,而是用kubeconfig中的证书进行登录。
$ oc login -u myuser
Logged into "https://openshift:6443" as "myuser" using existing credentials.You have access to 61 projects, the list has been suppressed. You can list all projects with 'oc projects'Using project "default".$ oc whoami
myuser

参考

https://rcarrata.com/openshift/regenerate-kubeconfig/

OpenShift 4 - 为客户端配置使用基于CA证书的kubeconfig实现无密码登录相关推荐

  1. The Things Network LoRaWAN Stack V3 学习笔记 2.1.2 客户端导入自签名 CA 证书

    前言 TTN 的开发环境使用了自签名证书,浏览器端在进行OAUTH登录时会弹出警告,当然我们可以无视警告强制跳转.但本地客户端 CLI 也需要进行 SSL 交互,因此本地也需要添加 CA 证书. 否则 ...

  2. Fiddler抓包解析https且配置安卓手机CA证书、抓取微信数据包

    准备工作 Fiddler v5.0.20173.50948 step1: 点击Tools->选择HTTPS 点击图中的4选择export Root Ceratificate to Desktop ...

  3. adsl服务器客户端配置cisco_基于ISE对Cisco网络设备部署AAA

    基于ISE对Cisco网络设备部署AAA 上期小武老师我教你们安装了ISE服务器,那么现在服务器安装好了,AAA如何部署实现呢?现在我就来教你们! 跟着小武我开始吧-- 一.ISE初始化配置 1.1. ...

  4. FJ集团企业级邮件服务器---iRedMail客户端配置

    FJ集团企业邮件服务器---iRedMail客户端配置 一.Roundcube Webmail设置: 1.登录:注:用户名:paul 密码:XXXX 2.发邮件: 如下图所示: 二.客户端outloo ...

  5. 04-Windows Server 2012 R2 会话远程桌面-标准部署-CA证书(RemoteApp)

    在之前的博客中,已经按照标准部署进行了配置,基本上标准的部署已经完成,但是在IT环境中,细节决定成败,在我们通过Web进行访问RemoteApp程序时候,总会有一些警告和阻拦,这些问题虽然不影响到用户 ...

  6. openssl私有CA证书签发与单双向认证

    什么是CA? CA是数字认证中心的简称.指的是发放.管理.废除数字证书的机构. CA的作用: 检查证书持有者身份的合法性.签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理. 建 ...

  7. CA证书理解?CA证书的作用?

    CA证书顾名思义就是由CA(Certification Authority)机构发布的数字证书.要对CA证书完全理解及其作用,首先要理解SSL.SSL(security sockets layer,安 ...

  8. Windows下OpenSSL创建CA证书以及客户端和服务器端证书

    打开命令行工具,转到安装目录bin文件夹, $ mkdir -p ./demoCA/{private,newcerts} $ touch ./demoCA/index.txt $ echo 01 &g ...

  9. Mysql开启ssl加密协议及Java客户端配置操作指南

    Mysql开启ssl加密协议及Java客户端配置操作指南 Mysql配置 验证Mysql开启SSL Java客户端操作 生成证书密码 配置数据库连接 工具配置 Mysql配置 Mysql需要配置对应的 ...

最新文章

  1. 适合初学者的数据结构_数据结构101:图-初学者的直观介绍
  2. 【转】mysql增量备份恢复实战企业案例
  3. html form通过ajax提交表单提交数据,Jquery通过Ajax方式来提交Form表单的具体实现
  4. Spark 1.0 开发环境构建:maven/sbt/idea
  5. 简述ospf的工作原理_物联网水表工作原理简述
  6. 特斯拉2021全年交付近百万辆,同比暴涨87%,马斯克:了不起!
  7. ajax csrf php,Laravel中Ajax调用时的CSRF对策
  8. linux上yum最简方法安装,yum轻松简单安装配置GCC等
  9. 里程碑 .Net7再更新,从此彻底碾压Java!
  10. tokumx经营报表
  11. Linux运维之道之ENGINEER1.3(配置SMB共享,配置NFS共享)
  12. 三星Galaxy A10s海报曝光:6.2寸水滴屏+4000mAh电池
  13. cropbox php,jQuery用户头像裁剪插件cropbox.js使用详解
  14. c语言编译器 mini,Mini C编译器的设计与实现.ppt
  15. python方法怎么调用_python函数怎么调用自身?
  16. babyheap_0ctf_2017 详解
  17. mysql 小数点多余0_mysql中如何去除小数点后面多余的0
  18. 10个提升效率的编程好习惯
  19. 读 Timothy Gowers 之 Mathematics: A Very Short Introduction
  20. 2. Spring早期类型转换,基于PropertyEditor实现

热门文章

  1. java打包拆包_关于java中JDK5的打包,拆包以及==和equals的问题
  2. maven 打包数据库加密_SpringBoot项目application.yml文件数据库配置密码加密的方法...
  3. mysql ip v4 v6_mysql IPv4 IPv6
  4. wsdl接口_DEBUG系列四:第三方接口debug
  5. 电脑录屏工具_一分钟教你学会两种电脑录屏的方法,以后别再说不知道了
  6. chord协议模拟实现_VB.NET和单片机串口通信实现监控单片机数字量输入继电器输出模拟量输入模拟量输出...
  7. reentrantlock原理_你必须要知道的热门 ReentrantLock 及 AQS 的实现原理
  8. 游戏玩家场景高清桌面壁纸都是什么样的?
  9. 不知道从哪里开始更新你的秋季海报设计?
  10. Photoshop画笔|设计师必备