学习
实践
活动
专区
工具
TVP
写文章
专栏首页乔边故事kubeadm集群修改证书时间到99年

kubeadm集群修改证书时间到99年

kubeadm修改证书时间

(1)、查看当前的证书时间

# kubeadm alpha certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Jun 20, 2021 11:21 UTC   364d                                    no      
apiserver                  Jun 20, 2021 11:21 UTC   364d            ca                      no      
apiserver-etcd-client      Jun 20, 2021 11:21 UTC   364d            etcd-ca                 no      
apiserver-kubelet-client   Jun 20, 2021 11:21 UTC   364d            ca                      no      
controller-manager.conf    Jun 20, 2021 11:21 UTC   364d                                    no      
etcd-healthcheck-client    Jun 20, 2021 11:21 UTC   364d            etcd-ca                 no      
etcd-peer                  Jun 20, 2021 11:21 UTC   364d            etcd-ca                 no      
etcd-server                Jun 20, 2021 11:21 UTC   364d            etcd-ca                 no      
front-proxy-client         Jun 20, 2021 11:21 UTC   364d            front-proxy-ca          no      
scheduler.conf             Jun 20, 2021 11:21 UTC   364d                                    no      

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Jun 18, 2030 11:21 UTC   9y              no      
etcd-ca                 Jun 18, 2030 11:21 UTC   9y              no      
front-proxy-ca          Jun 18, 2030 11:21 UTC   9y              no      

(2)、下载源码

git clone https://github.com/kubernetes/kubernetes.git

(3)、切换到自己的版本,修改源码,比如我的是v1.17.2版本

cd kubernetes
git checkout v1.17.2

vim cmd/kubeadm/app/constants/constants.go,找到CertificateValidity,修改如下

....
const (
        // KubernetesDir is the directory Kubernetes owns for storing various configuration files
        KubernetesDir = "/etc/kubernetes"
        // ManifestsSubDirName defines directory name to store manifests
        ManifestsSubDirName = "manifests"
        // TempDirForKubeadm defines temporary directory for kubeadm
        // should be joined with KubernetesDir.
        TempDirForKubeadm = "tmp"

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

(4)、编译kubeadm

make WHAT=cmd/kubeadm

编译完生成如下目录和二进制文件

# ll _output/bin/
total 76172
-rwxr-xr-x 1 root root  6799360 Jun 20 21:08 conversion-gen
-rwxr-xr-x 1 root root  6778880 Jun 20 21:08 deepcopy-gen
-rwxr-xr-x 1 root root  6750208 Jun 20 21:08 defaulter-gen
-rwxr-xr-x 1 root root  4883629 Jun 20 21:08 go2make
-rwxr-xr-x 1 root root  2109440 Jun 20 21:09 go-bindata
-rwxr-xr-x 1 root root 39256064 Jun 20 21:11 kubeadm
-rwxr-xr-x 1 root root 11419648 Jun 20 21:09 openapi-gen

(5)、备份原kubeadm和证书文件

cp /usr/bin/kubeadm{,.bak20200620}
cp -r /etc/kubernetes/pki{,.bak20200620}

(7)、将新生成的kubeadm进行替换

cp _output/bin/kubeadm /usr/bin/kubeadm

(8)、生成新的证书

cd /etc/kubernetes/pki
kubeadm alpha certs renew all

输出如下

[renew] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'

certificate embedded in the kubeconfig file for the admin to use and for kubeadm itself renewed
certificate for serving the Kubernetes API renewed
certificate the apiserver uses to access etcd renewed
certificate for the API server to connect to kubelet renewed
certificate embedded in the kubeconfig file for the controller manager to use renewed
certificate for liveness probes to healthcheck etcd renewed
certificate for etcd nodes to communicate with each other renewed
certificate for serving etcd renewed
certificate for the front proxy client renewed
certificate embedded in the kubeconfig file for the scheduler manager to use renewed

(9)、验证结果

kubeadm alpha certs check-expiration

输出如下

[root@k8s-master pki]#  kubeadm alpha certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 May 27, 2120 13:25 UTC   99y                                     no      
apiserver                  May 27, 2120 13:25 UTC   99y             ca                      no      
apiserver-etcd-client      May 27, 2120 13:25 UTC   99y             etcd-ca                 no      
apiserver-kubelet-client   May 27, 2120 13:25 UTC   99y             ca                      no      
controller-manager.conf    May 27, 2120 13:25 UTC   99y                                     no      
etcd-healthcheck-client    May 27, 2120 13:25 UTC   99y             etcd-ca                 no      
etcd-peer                  May 27, 2120 13:25 UTC   99y             etcd-ca                 no      
etcd-server                May 27, 2120 13:25 UTC   99y             etcd-ca                 no      
front-proxy-client         May 27, 2120 13:25 UTC   99y             front-proxy-ca          no      
scheduler.conf             May 27, 2120 13:25 UTC   99y                                     no      

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Jun 18, 2030 11:21 UTC   9y              no      
etcd-ca                 Jun 18, 2030 11:21 UTC   9y              no      
front-proxy-ca          Jun 18, 2030 11:21 UTC   9y              no      

查看集群状态是否OK。

[root@k8s-master pki]# kubectl get node
NAME         STATUS   ROLES    AGE    VERSION
k8s-master   Ready    master   127m   v1.17.2
k8s-node01   Ready    <none>   94m    v1.17.2
k8s-node02   Ready    <none>   95m    v1.17.2
[root@k8s-master pki]# kubectl get pod -n kube-system 
NAME                                       READY   STATUS    RESTARTS   AGE
calico-kube-controllers-589b5f594b-76vwr   1/1     Running   0          93m
calico-node-4qvfj                          1/1     Running   0          93m
calico-node-cn79s                          1/1     Running   0          93m
calico-node-sppn9                          1/1     Running   0          93m
coredns-7f9c544f75-hc5q5                   1/1     Running   0          127m
coredns-7f9c544f75-z77s8                   1/1     Running   0          127m
etcd-k8s-master                            1/1     Running   0          114m
kube-apiserver-k8s-master                  1/1     Running   0          115m
kube-controller-manager-k8s-master         1/1     Running   0          114m
kube-proxy-6kckk                           1/1     Running   0          94m
kube-proxy-r7mn2                           1/1     Running   0          127m
kube-proxy-zf48c                           1/1     Running   0          95m
kube-scheduler-k8s-master                  1/1     Running   0          114m

到此证书修改完成。

如果github上下载很慢的话可以到gitee上下载,地址:https://gitee.com/mirrors/Kubernetes/tree/master/

文章分享自微信公众号:
极客运维圈

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:乔克
原始发表时间:2020-06-23
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 修改kubeadm证书过期时间

    编译环境镜像我已经放到dockerhub上了:fanux/kubernetes-build:v1.0.0

    sealyun
  • kubernetes-29:kubeadm1.13.3解决集群证书过期问题

    1.执行kubeadm config view > kubeadm.yaml会在当前目录生成一个kubeadm.yaml文件。

    千里行走
  • 更新一个10年有效期的 Kubernetes 证书

    使用 kubeadm 安装 kubernetes 集群非常方便,但是也有一个比较烦人的问题就是默认的证书有效期只有一年时间,所以需要考虑证书升级的问题,本文的演...

    jwangkun
  • 更新一个10年有效期的 Kubernetes 证书

    使用 kubeadm 安装 kubernetes 集群非常方便,但是也有一个比较烦人的问题就是默认的证书有效期只有一年时间,所以需要考虑证书升级的问题,本文的演...

    我是阳明
  • Kubernetes集群证书过期解决办法

    K8S集群证书过期后,会导无法创建Pod,通过kubectl get nodes也无法获取信息,甚至dashboard也无法访问。

    jwangkun
  • kubeadm v1.15提供的自动高可用性

    kubeadm是一个工具,使Kubernetes管理员能够快速、轻松地引导最小可行的集群,这些集群完全符合经过认证的Kubernetes指南。自2016年以来,...

    CNCF
  • 如何优雅的通过 ApiServer 远程访问 Kubernetes 集群

    在研发时,需要直接连接远端 Kubernetes 集群。通常的做法是,将 /etc/kubernetes/admin.conf 拷贝到本地 ~/.kube/ku...

    iMike
  • 附025.kubeadm部署Kubernetes更新证书

    提示:kubelet的/var/lib/kubelet/config.yaml配置文件中一般不会明确指定服务端证书,而是只指定 ca 根证书, 让 kubele...

    木二
  • 生产环境使用kubeadm1.5版本证书到期解决方案

    生产环境使用k8s-1.5版本并且使用kubeadm直接安装后,出现证书一年到期,整个集群无法使用的情况。

    kubernetes中文社区
  • 12-Kubernetes进阶之开发环境部署与配置

    kubernetes 源码编译,分为本地二进制可执行文件编译和 docker 镜像编译两种, 之前演示的 minikube 方式或 kubeadm 方式安装,都...

    WeiyiGeek
  • k8s 内存泄露?证书过期?盘他!

    随着微服务的不断推进,使用 k8s 集群越来越多,越来越深入,随之而来会遇到一系列的问题,本文向大家介绍实际使用 k8s 遇到的一些问题以及解决方法。

    米开朗基杨
  • K8s使用手册(2)—— 软件配置

    “K8s在容器编排领域已经形成统治地位,不管是开发、运维和测试,掌握 kubernetes 都变得非常有必要。” —— 相信大家应该在各类技术论坛与博客中早已看...

    Austin_zhai
  • TKE相比于自建集群的优势

    对于kubeadm部署方式,部分证书时效只有一年,需要关注证书过期时间,及时更新,对于部分需求可能难以维护,当然也可以通过修改源码的方式修改kubeadm生成证...

    蒋经纬
  • kubeadm证书以及etcd证书过期处理

    在测试环境使用kubeadm部署的集群,在运行了一年之后今天,出现k8s api无法调取的现象,使用kubectl命令获取资源均返回如下报错:

    SY小站
  • k8s报错error: You must be logged in to the server (Unauthorized)

    但是在Kubernetes集群master节点上执行kubectl命令报如下错误:

    互联网-小阿宇
  • Kubernetes实战(二)- 一键部署神器kubeadm

    而要使用容器把后者运行起来,单通过Docker把一个Cassandra镜像run是没用的。

    JavaEdge
  • k8s重新编译kubeadm解决证书过期问题

    kubeadm 是 kubernetes 提供的一个初始化集群的工具,使用起来非常方便。但是它创建的apiserver、controller-manager等证...

    dogfei
  • 当 Kubernetes 集群证书被全部删除后,你该如何修复它?

    Kubernetes 是一个很牛很牛的平台,Kubernetes 的架构可以让你轻松应对各种故障,今天我们将来破坏我们的集群、删除证书,然后再想办法恢复我们的集...

    PHP开发工程师
  • 如何将单 master 升级为多 master 集群

    前面我们课程中的集群是单 master 的集群,对于生产环境风险太大了,非常有必要做一个高可用的集群(https://kubernetes.io/zh/docs...

    我是阳明

扫码关注腾讯云开发者

领取腾讯云代金券