百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

升级K8S证书有效期为100年操作说明

ninehua 2024-12-05 15:12 32 浏览

K8S集群有证书的概念,之前一直是使用默认的,默认都是1年和10年的,1年有效期这显然对于生产环境是不合适的,于是调整K8S证书,升级K8S证书有效期为100年。

kubernetes提供了多种安全认证机制,其中对于集群通讯间可采用TLS(https) 双向认证机制,也可采用基于Token或用户名密码的单向tls认证。K8S一般在内网部署,采用私有 IP 地址进行通讯,权威CA只能签署域名证书,我们这里采用自建CA

基础介绍

想要安全就必须复杂起来,证书是少不了的。在Kubernetes中提供了非常丰富的证书类型,满足各种不同场景的需求。

1.证书类型

根据认证对象可以将证书分成三类:服务器证书 server cert,客户端证书 client cert,对等证书 peer cert(表示既是 server cert 又是 client cert):

1.client certificate:用于服务端认证客户端,例如 etcdctl、etcd proxy、fleetctl、docker 客户端;

2.server certificate:服务端使用,客户端以此验证服务端身份,例如 docker 服务端、kube-apiserver;

3.peer certificate:双向证书,用于 etcd 集群成员间通信。

2.证书分类

在说证书之前,先想想作为集群的入口apiserver需要提供那些服务,与那些组件通信,通信的两方可能需要配置证书。与apiserver通信的组件大体可以分为以下几类:

1.client(kubectl,restapi等):普通用户与apiserver之间的通信,对各类资源进行操作;

2.kubelet,kubeproxy:master与node之间的通信;

3.etcd:K8S的存储库;

4.webhook:这里指apiserver提供的admission-webhook,在数据持久化前调用webhook;

5.aggregation layer:扩展apiserver, 需要将自定义的api注册到K8S中,相比CRD性能更新;

6.pod: 在pod中调用apiserver(一般调用为10.254.0.1:433);

7.除了在pod中通过serviceacount认证(当然pod需要认证apiserver的证书),其他几种都需要配置证书

其他集群内组件与apiserver通信的,kubelet/etcd/kube-proxy对应的也可以配置证书。

3.go语言

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。改写K8S证书有效期就是通过Go语言编译而成

思路框架

上面已经将K8S证书介绍一遍了,下面来说说本次升级证书需要的思路和操作步骤,方便大家有个整体感。

1.整体思路

1.安装go环境,下载go1.12.5.linux-amd64.tar.gz并解压;

2.配置go环境变量;

3.重新编译kubernetes,下载并解压kubernetes-1.14.0.zip;

4.编辑cert.go和pki_helpers.go文件,修改为100年;

5.编译生成新的kubernetes;

6.备份原有的配置文件;

7.替换原有的kubeadm;

8.生成新的证书kubeadm alpha certs renew all;

9.验证结果,查看各个证书过期时间。

2.证书概览

修改之前的所有证书有效时间如下:

注意:3个ca证书默认是10年,目前只有初始化K8S集群之前修改才会生效。

3.调整文件

kubernetes中:

1.staging/src/K8S.io/client-go/util/cert/cert.go

2.cmd/kubeadm/app/util/pkiutil/pki_helpers.go

更新许可

上面是生成K8S许可的过程,下面开始正式说明更新证书操作步骤,下面先介绍K8S集群已经搭建后,不重置更新许可的方法。

1.主master

1.检查当前K8S证书有效期,After是证书到期时间

2.备份原有的配置文件,备份时间自行修改

3.到/usr/bin目录,上传替换kubeadm

4.更新证书

5.再次检查当前K8S证书有效期,查看After时间

2.其他master

1.备份原有的配置文件,备份时间自行修改

2.到/usr/bin目录,上传替换kubeadm

3.更新证书

4.检查当前K8S证书有效期,查看After时间

3.全部worker

不用操作,了解即可

worker节点只有一个ca证书/etc/kubernetes/pki/ca.crt

1.如果是初始化集群,证书会直接100年

2.如果是已运行的集群,证书是10年

初始配置

下面开始介绍在搭建K8S集群时就升级证书的方法步骤,这里直接使用已经调整100后的kubeadm文件。

1.替换kubeadm

1.备份原有的配置文件

2.替换原有的kubeadm

2.初始化集群

使用init初始化K8S集群:

3.检查K8S证书

查询所有K8S证书到期时间:

总结反思

在最初搭建K8S过程中,网上的资料都没有提到K8S还有证书到期的情况,这就导致最开始部署的环境都是1年到期。从这点上说明网上的知识也是不那么权威的,需要我们在其基础上,多思考,多总结,想全面一点。

1.知识收获

通过本次升级K8S证书有效期,让我对K8S安全部分的理解又深了一层,包括证书的类型,证书的分类,K8S集群一共有多少证书:

先从Etcd算起

1、Etcd对外提供服务,要有一套etcd server证书;

2、Etcd各节点之间进行通信,要有一套etcd peer证书;

3、Kube-APIserver访问Etcd,要有一套etcd client证书;

再算kubernetes

4、Kube-APIserver对外提供服务,要有一套kube-apiserver server证书;

5、kube-scheduler、kube-controller-manager、kube-proxy、kubelet和其他可能用到的组件,需要访问kube-APIserver,要有一套kube-APIserver client证书;

6、kube-controller-manager要生成服务的service account,要有一对用来签署service account的证书(CA证书);

7、kubelet对外提供服务,要有一套kubelet server证书;

8、kube-APIserver需要访问kubelet,要有一套kubelet client证书。

2.能力提升

上网查一些自己不清楚的知识也是学习的过程,一方面可以对未知事物进行更深入的了解,另一方面还要考虑网上的资料是否全面,通过多思考、多联想,以一个闭环的思路考虑网上信息的可行度。最后在结合自己的知识快速转化融合,这也是快速学习的一个重要方法。

3.未来规划

首先要先把先前部署的K8S环境都整理处理,一个个进行升级,确保项目的正常运行。其次以后部署的K8S集群都要在初始化时就直接部署证书是100年的,从最开始确保K8S集群运行的稳定性。

后续再有技术预研的工作时,多注意网上查到的资料有多少是可用的,有多少是不完善的,还要从原理上思考,网上资料的是否全面,会不会有遗漏的地方。只有提升了自己的思考格局,才能真正做到能力的提升,否则只会不断的遇到问题,反复调整,被动学习知识和技术。

本文由@数通畅联原创,欢迎转发,仅供学习交流使用,引用请注明出处!谢谢~

相关推荐

Mac常用App推荐:免费思维导图工具MindNode

思维导图是一种很便捷的梳理信息的方式,Xmind在部分用户眼中可能已经成为思维导图的代名词,但其实还有很多其它思维导图软件也各有千秋,对于Mac用户(以及比较依赖苹果生态的用户)来说,MindNode...

适用于macOS的免费开源好用的纯文本编辑器CotEditor

介绍CotEditor是一个轻巧,整洁但功能强大的文本编辑器。CotEditor完全是针对macOS制作的。它的外观和行为与macOS应用程序的外观和行为相同。CotEditor启动如此之快,您可以在...

香哭了|免费做饭游戏神仙网站无需下载Mac可玩

本期直接给宝子们一个网站~里面全是烹饪做饭游戏,想玩啥就玩啥。全部免费主题丰富无需下载不用登陆不占内存有小广,但时间不长,几秒就可skip掉,可以接受。亲测Mac系统也能玩!!真香cookingga...

推荐 Mac 平台上常用的 5 款 PDF 阅读编辑软件

随着PDF在日常学习工作中的使用越来越广泛,越来越多的政府部门、企业以及教育机构使用PDF来简化文档管理流程、提高效率并减少对纸张的依赖,各式各样的PDF软件也如雨后春笋般的出现。本期Ma...

balenaEtcher for mac(U盘启动盘制作工具)

balenaEtcherformac分享给大家,balenaEtcher是一个mac电脑上U盘启动盘制作工具,可以用来制作macOS、Linux、CentOS、Windows等系统的u盘启动盘。...

Mac 系统情况一目了然,而且还免费:Instastats

Mac上的PowerUser想必都听说过iStatMenus,这是一款可以监控硬件实时状态的小工具,优雅适配Yosemite、实时统计各App状态、丰富个性的配色方案……只有一个问题...

Karabiner Elements for Mac(键盘改键神器)v13.5.9中文免费版

KarabinerElementsforMac一款非常不错的键盘改建神器,KarabinerElementsmac能将普通键映射到任意键功能,支持创建用户可以在其间切换的多个配置文件。测试环...

限时免费!可激活的Mac版微软office 2024!请低调获取

MicrosoftOffice2024forMac是一款专为苹果Mac操作系统设计的办公软件套件,旨在提供一系列强大的工具来满足个人和企业的日常办公需求。以下是关于Office2024f...

强得很!这几款软件,让你的Mac电脑更好用,建议收藏~

1.Vox-Mac上最好用的免费全能音乐播放器VoxMac版这是一款简洁Mac音乐播放器,支持Mp3、OGG、FLAC(无损格式)等多种音频格式,可将听歌记录同步到Last.fm。Vo...

Nik Collection 5 for Mac(PS滤镜插件套装)中文版

NikCollection中文版是一款ps滤镜插件套装,其包含了七款ps插件,功能涵盖修图、调色、降噪、胶片滤镜等方面。NikCollection作为很多摄影师和摄影爱好者所熟悉的一大照片后期...

gSwitch for mac(GPU显卡切换工具)v1.9.7免费版

想要更简便的管理显卡问题推荐使用gSwitchMac版,该软件主要是为了解决一些在不需要使用独立显卡的情况下系统会自动切换到独立显卡从而增加mac的发热量。gSwitch软件介绍一款mac显...

7种适用于Mac的免费杀毒软件(适合mac的杀毒软件)

多年来,由于Mac被感染恶意病毒的可能性普遍低于其他操作系统,因此关于Mac是否确实需要防病毒软件,一直存在着争议。如果您趋向于在Mac上安装防病毒程序,以加固安全的话,那么我建议您多考虑那些免费选项...

在 M1/M2 Mac 上,让 Windows 11 免费“跑”起来

自从苹果在产品中逐步使用自研的M系列芯片淘汰掉英特尔芯片之后,很多事情都发生了改变。作者|KirkMcElhearn和JoshuaLong译者|弯月出品|CSDN(ID:CS...

苹果Mac OS X 10.10公测版明日免费下载

IT之家(www.ithome.com):苹果MacOSX10.10公测版明日免费下载不久前,苹果公司在WWDC2014宣布了新一代OSX10.10桌面平台,同时也表示很快向公众免费提供Be...

卡普空《生化危机7》iOS/iPad/Mac版现已发售:游戏免费试玩

IT之家7月2日消息,在今早举行的CAPCOMNEXT-Summer2024节目上,官方公布了《生化危机7》iPhone/iPad/Mac版发售预告,号称拥有令人印象深刻的视...