[经验交流] kubeadm 安装 kubernetes 一年过期的解决办法

转载注明原作者地址:http://www.cnblogs.com/hahp

kubeadm 是 kubernetes 提供的一个初始化集群的工具,使用起来非常方便。但是它创建的集群证书默认只有一年的有效期,一年之后随着证书失效,各个节点以及 apiserver 都将停止服务。官方推荐一年之内至少用 kubeadm upgrade 更新一次 kubernetes 系统,更新时也会自动更新证书。不过,在产线环境或者无法连接外网的环境频繁更新 kubernetes 不太现实。可以修改 kubeadm 创建证书的组件,让它初始化集群时创建10年或其它有效期的证书,重新编译后使用。

下面是我的源代码补丁,请给所需要的 kubernetes 版本打上,然后重新编译 kubeadm,用新编译的 kubeadm 初始化集群:

diff -Nur kubernetes.orig/vendor/k8s.io/client-go/util/cert/cert.go kubernetes/vendor/k8s.io/client-go/util/cert/cert.go
--- kubernetes.orig/vendor/k8s.io/client-go/util/cert/cert.go    2018-02-07 17:14:40.553612448 +0800
+++ kubernetes/vendor/k8s.io/client-go/util/cert/cert.go    2018-02-10 17:20:48.301330560 +0800
@@ -104,7 +104,7 @@
         IPAddresses:  cfg.AltNames.IPs,
         SerialNumber: serial,
         NotBefore:    caCert.NotBefore,
-        NotAfter:     time.Now().Add(duration365d).UTC(),
+        NotAfter:     time.Now().Add(duration365d * 10).UTC(),
         KeyUsage:     x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature,
         ExtKeyUsage:  cfg.Usages,
     }
@@ -149,7 +149,7 @@
             CommonName: fmt.Sprintf("%[email protected]%d", host, time.Now().Unix()),
         },
         NotBefore: time.Now(),
-        NotAfter:  time.Now().Add(time.Hour * 24 * 365),
+        NotAfter:  time.Now().Add(time.Hour * 24 * 3650),

         KeyUsage:              x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature | x509.KeyUsageCertSign,
         ExtKeyUsage:           []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth},

原文地址:https://www.cnblogs.com/hahp/p/8440743.html

时间: 2024-10-05 23:32:07

[经验交流] kubeadm 安装 kubernetes 一年过期的解决办法的相关文章

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. PS: 篇幅有点长,但是比较详细.比较全面 一.Centos7 配置说明 1.1   Firewalld(防火墙) CentOS Linux 7 默认开起来防火墙服务(firewalld),而Kubernetes的Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置Kbernetes各组件(api-server.kubelet等等)需要相互通信的端口

centos7使用kubeadm安装kubernetes 1.11版本多主高可用

centos7使用kubeadm安装kubernetes 1.11版本多主高可用 [TOC] kubernetes介绍要学习一个新的东西,先了解它是什么,熟悉基本概念会有很大帮助.以下是我学习时看过的一篇核心概念介绍.http://dockone.io/article/932 搭建Kubernetes集群环境有以下3种方式: minikubeMinikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境.官方地址:ht

使用kubeadm安装Kubernetes 1.12

使用kubeadm安装Kubernetes 1.12 https://blog.frognew.com/2018/10/kubeadm-install-kubernetes-1.12.html 测试环境,aws us daas ,test0001,test00002 two Centos7.5 原文地址:https://www.cnblogs.com/oskb/p/10179019.html

使用kubeadm安装kubernetes v1.14.1

使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ? ? 一台或多台运?行行着下列列系统的机器?: ? Ubuntu 16.04+ ? Debian 9 ? CentOS 7 ? RHEL 7 ? Fedora 25/26 (尽?力力服务) ? HypriotOS v1.0.1+ ? Container Linux (针对1800.6.0 版本测试) ? 每台机器? 2 GB 或更更多的 RAM (如果少于这个数字将会影响您应?用的运?行行

使用kubeadm 安装 kubernetes 1.15.1

简介: Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿.kubernetes1.5版本以及之前,安装还是相对比较方便的,官方就有通过yum源在centos7安装kubernetes.但是在kubernetes1.6之后,安装就比较繁琐了,需要证书各种认证,对于刚接触kubernetes的人来说很不友好. Copy docker : kubernetes依赖的容器运行时 kubelet: kuber

Hybris license过期的解决办法

license过期编译是可以通过的,但是启动服务会报错: LICENSE VERIFICATION HAS FAILED! Your demo/develop license has expired, it is valid only for 30 days. If you're using develop licence you need to reinitialize database to continue your work. 会出现上面这样的信息,具体可以参考链接:http://www

python安装markupsafe模块时卡死的解决办法

起因: 升级OS X从10.8到10.9,会发现在安装python的markupsafe模块时一直卡住. 当时的机器环境是: OSX 10.9, XCode 4.6.2, Python 2.7.6, Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn) 界面一直停留在下面的情况 mbp:MarkupSafe-0.23 $ python setup.py install running install running bdis

使用vMware workstation 10安装操作系统显示内部错误的解决办法

在打开vMware workstation 10以后,准备安装Solaris 10操作系统,但是当点击"创建新的虚拟机"的时候,弹出一个对话框,显示"内部错误". 百度了一下,说去程序和功能里面找到vMware workstation 10的安装程序,里面有个修复,修复它既可.可是我试了几遍,都未能成功. 后来才发现,服务项里的vMware有启动状态,有停止状态,把停止状态启动它就OK了. 重新启动vMware workstation 10,正常运行. 使用vMwa

编译安装PHP使用session_start()时报错&解决办法

系统上的PHP是编译安装的,在session_start()的时候报错! A 错误信息: Warning: session_start(): open(/var/lib/php/session/sess_qavhhacl7lrdbggauasf1qdlo5, O_RDWR) failed: No such file or directory (2) in /www/tool/classes/service/User.php on line 75 1Warning: Unknown: open(/