附025.kubeadm部署Kubernetes更新证书

一 查看证书

提示:由上可知,根证书有效期为10年,其他所有证书有效期为1年。

二 证书类别

由此集群根证书签发的证书有:

提示:kubelet的/var/lib/kubelet/config.yaml配置文件中一般不会明确指定服务端证书,而是只指定 ca 根证书, 让 kubelet 根据本地主机信息自动生成服务端证书并保存到配置的cert-dir文件夹中。

由此汇聚层根证书签发的证书有:

由此etcd根证书签发的证书有:

Serveice Account密钥对仅提供给 kube-controller-manager 使用. kube-controller-manager 通过 sa.key 对 token 进行签名, master 节点通过公钥 sa.pub 进行签名的验证。

延伸:API Server身份验证过程:

API Server的authenticating环节支持多种身份校验方式:client cert、bearer token、static password auth等,这些方式中只要有一种方式通过authenticating(Kubernetes API Server会逐个方式尝试),那么身份校验就会通过。

一旦API Server发现client发起的request使用的是service account token的方式,API Server就会自动采用signed bearer token方式进行身份校验。而request则使用携带的service account token参与验证。该token是API Server在创建service account时用API server启动参数:–service-account-key-file的值签署(sign)生成的。如果–service-account-key-file未传入任何值,那么将默认使用–tls-private-key-file的值,即API Server的私钥(server.key)。

通过authenticating后,API Server将根据Pod username所在的group:system:serviceaccounts和system:serviceaccounts:(NAMESPACE)的权限对其进行authority 和admission control两个环节的处理。在这两个环节中,cluster管理员可以对service account的权限进行细化设置。

kubeadm 创建的集群,kube-proxy、flannel、coreDNS是以 pod 形式运行的,在 pod 中,直接使用 service account 与 kube-apiserver 进行认证,此时就不需要再单独为 kube-proxy 创建证书。

三 更新证书方法一

提示:此方式采用kubeadm默认延期1年时间的策略,若要自定义更长时间,如100年,参考步骤四。

提示:由help可知,证书更新可针对单个证书更新。

提示:更新操作需要在所有master节点执行。

在三台Master上执行重启kube-apiserver、kube-controller、kube-scheduler、etcd这4个容器,以便使证书生效。

提示:启用操作需要在所有master节点执行。

四 更新证书方法二

提示:此方式采用编译kubeadm源码,源码中自定义证书时间,如100年。

提示:ca证书最大时间限定为100年,若要将最大时限也延长,可在cert.go中修改如下maxAge值:

maxAge := time.Hour * 24 * 365 * 10

提示:若要编译其他命令,可参考如下:

# 编译kubelet # make all WHAT=cmd/kubelet GOFLAGS=-v # 编译kubectl # make all WHAT=cmd/kubectl GOFLAGS=-v

#编译完命令在 _output/bin/kubeadm 目录下,

#其中bin是使用了软连接

#真实路径是_output/local/bin/linux/amd64/kubeadm

提示:更新操作需要在所有master节点执行。

所有根证书:ca、etcd-ca、front-proxy-ca只有在init初始化的时候才会更新时间,因此建议对于kubeadm部署Kubernetes,可以在初始化之前使用编译的方式将证书设置为更长时间,如100年。

在三台Master上执行重启kube-apiserver、kube-controller、kube-scheduler、etcd这4个容器,以便使证书生效。

参考3.3即可。

Original: https://www.cnblogs.com/itzgr/p/13370185.html
Author: 木二
Title: 附025.kubeadm部署Kubernetes更新证书

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/607231/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 方法的深度理解

    权限修饰符 返回值类型 类名(行参列表 )throws 异常的类型{ //方法体 约定俗称:子类中叫重写的方法,父类中叫被重写的方法。 ①子类重写的方法名和行参列表和父类被重写的方…

    Linux 2023年6月14日
    098
  • 解决USB在虚拟机不显示问题

    电脑重装了下系统,顺带重新装了vmware,发现虚拟机无法识别USB设备,居然连右下角图标和可识别设备都不显示了。 网上找了很多方法,大多是纷繁复杂,且行不行都无法保证。 我发现一…

    Linux 2023年5月27日
    0121
  • Shell:Shell基础

    Shell基础 一、shell定义 shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指…

    Linux 2023年5月28日
    096
  • 解决word插入新图片后原有图片题注的交叉引用错乱的问题

    引言 在日常工作和生活中,我们经常使用word来撰写文档、论文。为了更好地管理文档中的图片以及在正文中引用图片标题,需要借助题注来实现。通过题注,可以在正文中交叉引用图片,并为引用…

    Linux 2023年6月7日
    0144
  • 5.5 Vim移动光标命令汇总

    Vim 文本编辑器中,最简单的移动光标的方式是使用方向键,但这种方式的效率太低,更高效的方式使用快捷键。 Vim 移动光标常用的快捷键及其功能如下面各表所示,需要注意的是,表中所有…

    Linux 2023年6月7日
    0102
  • 虚拟机网络地址配置你不知道的事儿-服务器的种类

    想必大家在初学Linux过程中,应该都是跟我一样白嫖一台虚拟机进行使用把,但是在大家白嫖的同时知不知道我们公司内是使用的什么样的服务器呢?公司肯定不会跟我们一样在自己电脑进行安装虚…

    Linux 2023年5月27日
    091
  • 线程

    一、线程概念的引入 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区…

    Linux 2023年6月14日
    090
  • WPF 制作一个占用文件的测试工具

    我在开发软件进行测试时,需要测试拖入的文件被占用时软件的行为,于是就做了一个文件占用工具,此工具可以将某个文件进行占用,以及获取某个文件被哪个进程占用 先给大家看一下效果: 以上是…

    Linux 2023年6月6日
    0116
  • 分析redis key大小的几种方法

    当redis被用作缓存时,有时我们希望了解key的大小分布,或者想知道哪些key占的空间比较大。本文提供了几种方法。 一. bigKeys 这是redis-cli自带的一个命令。对…

    Linux 2023年5月28日
    0123
  • macos 文件系统 git仓库 大小写敏感设置; git config core.ignorecase

    macos 的文件系统不区分文件名的大小写,这样会导致在一个文件夹,当修改一个文件名为大写的时候,git不能感知到。这样使用过程中会出现很多不必要的麻烦。之前设置过,最近使用,发现…

    Linux 2023年6月14日
    0114
  • [ Skill ] 文件读写 & IO 句柄

    在 Skill 中使用一种叫做 ioport 类型的变量来操作文件。不过我一般更习惯称为 IO 句柄 (IO/File Handle)。 常用下面两个函数来获得这些 IO 句柄: …

    Linux 2023年6月7日
    094
  • 国产银河麒麟Kylin V10操作系统-如何配置Win+E快捷键打开“我的电脑”

    之前一直使用Windows操作系统,习惯了使用Win+E打开”我的电脑(资源管理器)”。 最近切换到使用国产银河麒麟Kylin V10操作系统,也想在麒麟操…

    Linux 2023年6月14日
    0204
  • c++的左值(lvalue),右值(rvalue),移动语义(move),完美转发(forward)

    c++的左值(lvalue),右值(rvalue),移动语义(move),完美转发(forward) c++的左值,右值 精辟总结 当一个对象被用作右值的时候,使用的是对象的值(内…

    Linux 2023年6月14日
    0121
  • 银河麒麟KYLIN安装wireshark进行抓包

    银河麒麟KYLIN安装wireshark进行抓包(前提是网络连通):sudo apt-get updatesudo apt-get install wireshark -y弹出框选…

    Linux 2023年6月13日
    0121
  • 基于CentOS系统安装OceanBase数据库

    一、OceanBase介绍 OceanBase是由蚂蚁集团完全自主研发的金融级分布式关系数据库,始创于2010年。OceanBase具有数据强一致、高可用、高性能、在线扩展、高度兼…

    Linux 2023年5月27日
    082
  • CentOS 7服务器安装Redis并配置集群(上)

    一、环境准备及规划 3台服务器都是CentOS 7.x,服务器IP如下: 10.223.201.141 ,10.223.201.142,10.223.201.143(这3台作为服务…

    Linux 2023年5月28日
    077
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球