k8s证书到期实际操作

这篇具有很好参考价值的文章主要介绍了k8s证书到期实际操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 百年的kubeadm

1.1 源码修改

  • 源码下载
cd /usr/local/src/
git clone -b release-1.15 https://github.com/kubernetes/kubernetes.git
  • 再次确认分支
cd  kubernetes
git branch -a
  • 修改cert.go
vim ./staging/src/k8s.io/client-go/util/cert/cert.go
                NotBefore:             now.UTC(),
                #修改下边的10为100
                NotAfter:              now.Add(duration365d * 10).UTC(),
                KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
                BasicConstraintsValid: true,
                IsCA:  
  • 修改constants.go
vim ./cmd/kubeadm/app/constants/constants.go
        // CertificateValidity defines the validity for all the signed certificates generated by kubeadm
        #将下边time.Hour * 100
        CertificateValidity = time.Hour * 24 * 365

修改后如下:

vim ./cmd/kubeadm/app/constants/constants.go
        // CertificateValidity defines the validity for all the signed certificates generated by kubeadm
        CertificateValidity = time.Hour * 24 * 365 * 100

1.2 准备镜像

docker pull mirrorgooglecontainers/kube-cross:v1.12.10-1

官方提供的编译镜像,无论如何弄到服务器上就行了

1.3 编译

docker run --rm -it -v /usr/local/src/k8s.io/kubernetes:/go/src/k8s.io/kubernetes \
mirrorgooglecontainers/kube-cross:v1.12.10-1 bash

cd /go/src/k8s.io/kubernetes
make all WHAT=cmd/kubeadm GOFLAGS=-v
exit

1.4 成品备份

  • 成品位置
    编译好的成品在: _output/local/bin/linux/amd64/kubeadm

  • 成品测试

cp _output/local/bin/linux/amd64/kubeadm /usr/bin/
chmod a+x /usr/bin/kubeadm
kubeadm version
  • 成本保存
    已上传至ftp服务器,ftp://10.252.97.213/soft/kubeadm

2. 生成证书

2.1 master主节点

  • 将前边准备的kubeadm 拷贝到服务器
cd /usr/local/src
wget  ftp://10.252.97.213/soft/kubeadm
  • 替换原来kubeadm文件
cp /usr/bin/kubeadm /usr/bin/kubeadm_back
cp /usr/local/src/kubeadm /usr/bin/kubeadm
chmod 755 /usr/bin/kubeadm
  • 备份配置文件和证书
cp -ra /etc/kubernetes /etc/kubernetes_back
  • 查看证书到期时间
kubeadm alpha certs check-expiration
  • 更新证书和配置文件
 kubeadm alpha certs renew all
  • 确认证书到期时间
[root@AiK8sM2 ~]# kubeadm alpha certs check-expiration
CERTIFICATE                EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
admin.conf                 Apr 03, 2120 06:46 UTC   99y             no
apiserver                  Apr 03, 2120 09:36 UTC   99y             no
apiserver-etcd-client      Apr 03, 2120 09:36 UTC   99y             no
apiserver-kubelet-client   Apr 03, 2120 09:36 UTC   99y             no
controller-manager.conf    Apr 03, 2120 09:36 UTC   99y             no
etcd-healthcheck-client    Apr 03, 2120 09:36 UTC   99y             no
etcd-peer                  Apr 03, 2120 09:36 UTC   99y             no
etcd-server                Apr 03, 2120 09:36 UTC   99y             no
front-proxy-client         Apr 03, 2120 06:47 UTC   99y             no
scheduler.conf             Apr 03, 2120 09:36 UTC   99y             no

  • 重启docker

说明:主要为了重启proxy和etcd

service docker restart
  • 重启kubelet
service kubelet restart

2.2 其他master节点

  • 拷贝100年的kubeadmin 文件
  • 将前边准备的kubeadm 拷贝到服务器
cd /usr/local/src
wget  ftp://10.252.97.213/soft/kubeadm
  • 替换原来kubeadm文件
cp /usr/bin/kubeadm /usr/bin/kubeadm_back
cp /usr/local/src/kubeadm /usr/bin/kubeadm
chmod 755 /usr/bin/kubeadm
  • 备份配置文件和证书
cp -ra /etc/kubernetes /etc/kubernetes_back
  • 查看证书到期时间
kubeadm alpha certs check-expiration
  • 更新证书和配置文件
 kubeadm alpha certs renew all
  • 确认证书到期时间
[root@AiK8sM2 ~]# kubeadm alpha certs check-expiration
CERTIFICATE                EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
admin.conf                 Apr 03, 2120 06:46 UTC   99y             no
apiserver                  Apr 03, 2120 09:36 UTC   99y             no
apiserver-etcd-client      Apr 03, 2120 09:36 UTC   99y             no
apiserver-kubelet-client   Apr 03, 2120 09:36 UTC   99y             no
controller-manager.conf    Apr 03, 2120 09:36 UTC   99y             no
etcd-healthcheck-client    Apr 03, 2120 09:36 UTC   99y             no
etcd-peer                  Apr 03, 2120 09:36 UTC   99y             no
etcd-server                Apr 03, 2120 09:36 UTC   99y             no
front-proxy-client         Apr 03, 2120 06:47 UTC   99y             no
scheduler.conf             Apr 03, 2120 09:36 UTC   99y             no

  • 从master-01 上拷贝证书文件
    从master01 上拷贝证书
ssh 10.251.137.187 "mkdir -p /etc/kubernetes/pki/etcd"
ssh 10.251.137.188 "mkdir -p /etc/kubernetes/pki/etcd"

scp -r /etc/kubernetes/admin.conf 10.251.137.187:/etc/kubernetes/admin.conf
scp -r /etc/kubernetes/admin.conf 10.251.137.188:/etc/kubernetes/admin.conf

scp -r /etc/kubernetes/pki/{ca.*,sa.*,front*}  10.251.137.187:/etc/kubernetes/pki/
scp -r /etc/kubernetes/pki/{ca.*,sa.*,front*}  10.251.137.188:/etc/kubernetes/pki/

scp -r /etc/kubernetes/pki/etcd/ca.*  10.251.137.187:/etc/kubernetes/pki/etcd/ 
scp -r /etc/kubernetes/pki/etcd/ca.*  10.251.137.188:/etc/kubernetes/pki/etcd/

  • 重启docker

说明:主要为了重启proxy和etcd文章来源地址https://www.toymoban.com/news/detail-582189.html

service docker restart
  • 重启kubelet
service kubelet restart

到了这里,关于k8s证书到期实际操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s集群证书过期解决

    问题现象 K8S集群证书过期后,会导无法创建Pod,通过kubectl get nodes也无法获取信息,甚至dashboard也无法访问。 执行命令发现报错: Unable to connect to the server: x509: certificate has expired or is not yet valid 查看K8S的日志: Part of the existing bootstrap client certificate is expired: 2023-08-29 02:29:04 +0

    2024年02月11日
    浏览(47)
  • k8s集群证书有效期修改

    kubeadm方式部署的k8s集群证书有效期是一年,之所以是这种机制,是因为官方版本更新比较快,官方希望使用者能跟上官方的版本。换句话说,每次k8s集群版本更新,证书有效期继续延期一年,但是每年更新一次k8s集群频率太频繁。个人认为手工更新证书可取,至于集群版本更

    2023年04月25日
    浏览(38)
  • Kubernetes技术--使用kubeadm搭建高可用的K8s集群(贴近实际环境)

    1.高可用k8s集群架构(多master) 2.安装硬件要求 一台或多台机器,操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 注: 这里属于教学环境,所以使用三台虚拟机模拟实现。 3.部署规划 4.部署前准备 (1).关闭防火墙 (2).关闭selinux (3).关闭swap (4).根据规

    2024年02月10日
    浏览(44)
  • K8s集群Harbor私有仓库部署+ssl证书申请

    首先打开ssl证书服务控制台 然后点击SSL证书—免费证书—立即购买 注意此证书只支持单域名,最多可免费申请20个,而且一个账号只有一次免费机会,证书有效期为一年 购买完免费证书后,然后创建自己域名的证书即可 下载(下载类型选择其他)我们申请的证书 上传到harbor所

    2024年01月15日
    浏览(40)
  • 通过curl访问k8s集群获取证书或token的方式

    K8S安全控制框架主要由下面3个阶段进行控制,每一个阶段都支持插件方式,通过API Server配置来启用插件。 1. Authentication(认证) 2. Authorization(授权) 3. Admission Control(准入控制) 客户端(kubectl或curl等)要想访问K8s集群API Server,一般需要证书、Token或者用户名+密码。如果

    2024年01月24日
    浏览(49)
  • Ubuntu22.04部署K8s集群

    你好! 本文实验在 Windows11 安装的 VMware Workstation Pro 17.0 上,建立3台带 Ubuntu22.04 操作系统的虚拟机( master-100, k8s_worker1, k8s_worker2 )为环境。 官网下载: https://www.vmware.com/cn/products/workstation-pro.html 有30天免费试用、度娘或者 一键三连+评论 我给你发许可证 https://ubuntu.com/down

    2024年02月15日
    浏览(40)
  • 【云原生】搭建k8s高可用集群—更新于2023.04

    假设现在有3个node节点和3个master节点,node1到底是连到master1还是连到master2还是master3,需要有人来分配,这个中间人就是load balancer,load balancer起到两个作用,一是负载。二是检查master状态,如果master1异常,就会使node连到master2上,如果master1正常,则正常提供服务。由于节点

    2023年04月16日
    浏览(39)
  • Ubuntu22.04部署K8S1.27.2版本集群

    一、设置主机名并在 hosts 文件中添加条目 1、登录节点使用 hostnamectl 命令设置 hostname #在master中:      172.18.10.11 $ sudo hostnamectl set-hostname \\\"k8s-master\\\" #在work1节点中:  172.18.10.12 $ sudo hostnamectl set-hostname \\\"k8s-worker1\\\" #在work2节点中:  172.18.10.13 $ sudo hostnamectl set-hostname \\\"k8s-worke

    2024年02月09日
    浏览(54)
  • 一些k8s集群操作命令

    参考: 【K8S系列】Pod重启策略及重启可能原因_k8s查看pod重启原因-CSDN博客 #查看加入集群命令 kubeadm token create --print-join-command #kubeadm重置k8s kubeadm reset -f ipvsadm --clear systemctl stop kubelet rm -rf /etc/kubernetes/* reboot #删除节点 kubectl drain --delete-local-data --force --ignore-daemonsets 节点name 节

    2024年02月08日
    浏览(42)
  • Ubuntu22.04搭建k8s集群,看这一篇就够啦!

    系统 CPU RAM IP 网卡 主机名 Ubuntu22.04 2 4G 192.168.247.100 NAT k8s-master Ubuntu22.04 2 4G 192.168.247.101 NAT k8s-slave1 Ubuntu22.04 2 4G 192.168.247.102 NAT k8s-slave2 修改主机名 配置hosts映射 关闭防火墙 关闭selinux 关闭交换分区(为了保证 kubelet 正常工作,必须禁用交换分区) 转发 IPv4 并让 iptables 看到桥接

    2024年02月16日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包