K8S(kubeadm版)更新证书

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

        使用kubeadm方式安装的kubernetes集群各个组件所使用的证书期限为1年,CA 根证书是 10 年。到期后,证书失效,kubectl命令无法使用,在使用kubectl命令时,报错无法连接到localhost:8080,错误大概为:“certificate has expired or is not yet valid”。

重新生成证书kubelet-client,Kubernetes,kubernetes,容器,云原生

来自弟弟的忠告,尽量别过期,在有效期内更新,这样会省去很多不必要的麻烦!!! 

1.在master上查看各证书的过期时间(没过期的情况下,只需在主master上进行备份更新,会自动同步。如果已过期,则需主master备份,更新后手动复制/etc/kubernetes到其他master。)

可以通过下面两种方式是检查证书是否过期。

1. 使用adm命令
 kubeadm certs check-expiration

重新生成证书kubelet-client,Kubernetes,kubernetes,容器,云原生

               kubeadm 提供了自动更新的证书的命令,在证书还未过期,集群正常运行的情况下可以使用此命令,1.19之前的版本检查证书的功能还没正式发布,所以还在alpha的子命令里,使用 kubeadm alpha certs check-expiration。1.19版本及以后,则可去掉alpha,使用kubeadm certs check-expiration。

2. 使用openssl命令
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '

重新生成证书kubelet-client,Kubernetes,kubernetes,容器,云原生

2.证书备份

cp -rp /etc/kubernetes /etc/kubernetes.bak

3.删除旧的证书

sudo rm -rf /etc/kubernetes/pki/apiserver.key

4.重新生成证书

kubeadm alpha certs renew                                                                                         
Usage:
  kubeadm alpha certs renew [flags]
  kubeadm alpha certs renew [command]

Available Commands:
  all                      renew all available certificates
  apiserver                Generates the certificate for serving the Kubernetes API
  apiserver-etcd-client    Generates the client apiserver uses to access etcd
  apiserver-kubelet-client Generates the Client certificate for the API server to connect to kubelet
  etcd-healthcheck-client  Generates the client certificate for liveness probes to healtcheck etcd
  etcd-peer                Generates the credentials for etcd nodes to communicate with each other
  etcd-server              Generates the certificate for serving etcd
  front-proxy-client       Generates the client for the front proxy
kubeadm  certs renew all
  • renew:Renew certificates for a Kubernetes cluster(更新 Kubernetes 集群的证书,注:不涉及 CA 根证书)。

        更新完证书要重启一下apiserver、controller-manager 、 scheduler 和 etcd组件,重启方式其实就是到kubernetes 的静态pod目录下,将这几个yaml文件移出,然后过两分钟之后,在移入即可。

        此时所有证书都已重新生成,/etc/kubernetes下的admin.conf、controller-manager.conf、scheduler.conf 也已经更新了. 如果你运行了一个 HA 集群,这个命令需要在所有控制面板节点上执行,没有更新的文件就只有 /etc/kubernetes/kubelet.conf 了,因为 kubeadm 将 kubelet 配置为 自动更新证书。 轮换的证书位于目录 /var/lib/kubelet/pki,一般由bootstrap滚动更新。但是会存在关闭rotation证书轮换后,不能自动更新的情况,需要手动更新。

5.重新生成配置文件

        避免存在上述没有自动更新或者证书已过期进行证书续期的情况,我们统一做一步生成配置文件的操作

kubeadm init phase kubeconfig -h                                                                       
Usage:
  kubeadm init phase kubeconfig [flags]
  kubeadm init phase kubeconfig [command]

Available Commands:
  admin              Generates a kubeconfig file for the admin to use and for kubeadm itself
  all                Generates all kubeconfig files
  controller-manager Generates a kubeconfig file for the controller manager to use
  kubelet            Generates a kubeconfig file for the kubelet to use *only* for cluster bootstrapping purposes
  scheduler          Generates a kubeconfig file for the scheduler to use

        可以通过调用 all 子命令来创建所有必需的 kubeconfig 文件,或者分别调用它们。 需要先把 /etc/kubernetes/kubelet.conf 删掉,使用 kubeadm init phase kubeconfig kubelet 进行重新生成。之后在 systemctl restart kubelet 进行重启。

kubeadm init phase kubeconfig all

6.检查证书时间

# 再次检查一下证书有效期 ,可以看到有效期又更新成一年了
kubeadm certs check-expiration

重新生成证书kubelet-client,Kubernetes,kubernetes,容器,云原生

7.后续操作

完成证书和配置文件的更新后,需要进行一系列后续操作保证更新生效,主要包括重启 kubelet、更新管理配置。

7.1 重启kubelet
systemctl restart kubelet
7.2 更新admin配置

将新生成的 admin.conf 文件拷贝,替换 ~/.kube 目录下的 config 文件

cp /etc/kubernetes/admin.conf ~/.kube/config

        使用kubeadm 更新证书的前提是,集群的证书还未失效,集群在正常运行中,如果说等我们发现证书过期集群已经宕机了,这时候kubelet已经和master节点失联了,通过kubeadm是无法更新kubelet的证书,所有就需要手动生成证书,并替换上去。文章来源地址https://www.toymoban.com/news/detail-853834.html

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

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

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

相关文章

  • 【C站首发】全网最新Kubernetes(K8s)1.28版本探秘及部署 基于Containerd容器运行时(100年证书kubeadm)

    序号 操作系统及版本 备注 1 CentOS7u9 需求 CPU 内存 硬盘 角色 主机名 值 8C 8G 1024GB master k8s-master01 值 8C 16G 1024GB worker(node) k8s-worker01 值 8C 16G 1024GB worker(node) k8s-worker02 1.3.1 主机名配置 由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为wor

    2024年02月08日
    浏览(44)
  • k8s更新证书报multiple CRI endpoints错误

    当我需要扩展master节点时,在主节点执行kubeadm init phase upload-certs --upload-certs报错 当加上cri-socket参数仍旧行不通 kubeadm init phase upload-certs --upload-certs --help 查看,原因旧是没有这个–cri-socket选项 重新执行upload-certs并带上–config

    2024年01月22日
    浏览(34)
  • K8S:kubeadm搭建K8S+Harbor 私有仓库

    主机名及主机大小 主机ip 安装软件 master(2C/4G,cpu核心数要求大于2) 192.168.245.113 docker、kubeadm、kubelet、kubectl、flannel node01(2C/2G) 192.168.245.114 docker、kubeadm、kubelet、kubectl、flannel node02(2C/2G) 192.168.245.115 docker、kubeadm、kubelet、kubectl、flannel Harbor节点(hub.blue.com) 192.168.245

    2024年02月09日
    浏览(36)
  • kubeadm 安装k8s

    目录 安装k8s 环境准备 所有节点,关闭防火墙规则,关闭selinux,关闭swap交换(必须关闭swap分区)  //修改主机名  //所有节点修改hosts文件  //调整内核参数 所有节点安装docker  所有节点安装kubeadm,kubelet和kubectl 定义kubernetes源 开机自启kubelet 部署K8S集群 查看初始化需要的镜

    2024年02月09日
    浏览(40)
  • Kubeadm部署K8s

    集群规划: Master节点规划: Node节点规划: 安装要求 此实验机器规划如下: 在各节点执行—修改主机名 在各节点执行—修改hosts文件 在各节点执行—修改DNS 在各节点执行—设置个性主机名: 在各节点执行—关闭CentOS7自带的防火墙服务 在各节点执行—关闭selinux 在各节点执行—

    2024年03月11日
    浏览(32)
  • k8s、kubeadm安装

    环境准备 所有节点安装docker  所有节点安装kubeadm,kubelet和kubectl  部署K8S集群      部署 Dashboard  安装Harbor私有仓库(192.168.86.33)

    2024年02月06日
    浏览(33)
  • kubeadm搭建k8s集群

    二进制部署 部署难,管理方便,集群伸展性能好 更稳定,集群规模到达一定的规模(几百个节点、上万个Pod),二进制稳定性是要高于kubeadm部署 遇到故障,宿主机起来了,进程也会起来 kubeadm部署 部署简单,管理难 是以一种容器管理容器的方式允许的组件及服务,故障恢复时

    2024年02月04日
    浏览(32)
  • 02 kubeadm部署k8s

    1、集群类型 2、安装方式 官方地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/ K8S API: https://kubernetes.io/zh-cn/docs/reference/using-api/ 一、准备环境 1、部署软件、系统要求 软件 版本 Centos CentOS Linux release 7.5及以上 Docker 19.03.12 Kubernetes V0.13.0 Flannel V1.19.1 Kernel-lm kernel-lt-4.4.2

    2024年02月10日
    浏览(24)
  • Kubeadm安装K8s集群

    一、硬件环境 准备3台Linux服务器,此处用Vmware虚拟机。 主机名 CPU 内存 k8smaster 2核 4G k8snode1 2核 4G k8snode2 2核 4G 二、系统前置准备 配置三台主机的hosts文件 设置主机名 关闭selinux、禁用swap分区 ipv4流量转发 关闭防火墙 同步三台服务器的时间 三、环境安装 Docker 安装 Docker卸载

    2024年02月13日
    浏览(26)
  • kubeadm创建k8s集群

    kubeadm来快速的搭建一个k8s集群: 二进制搭建适合大集群,50台以上。 kubeadm更适合中下企业的业务集群。 master 192.168.10.10 dockerkubelet kubeadm kubectl flannel node1 192.168.10.20 dockerkubelet kubeadm kubectl flannel node2 192.168.10.30 dockerkubelet kubeadm kubectl flannel harbor 192.168.10.40 docker-compose hargordock

    2024年02月03日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包