kubernetes_01_kubeadm方式安装_02_apiserver证书默认有效期修改_kubeadm重新编译_20191023
api server证书默认有效期只有一年,这是kubeadm方式安装集群需要解决的一个问题
思路:修改kubeadm源码api server证书有效期变量为10年,重新编译生成kubeadm,替换默认kubeadm。
1.查看kubeadm版本
[root@k8s-ha-master03 ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:15:32Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}
2.编译kubeadm源码
编译机:
- 系统版本:linux/amd64
- 硬件环境:2核cpu,4GB内存以上(最好6GB以上)
2.1 下载go语言环境(建议选择go中文社区下载)
# wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz
# tar -C /usr/local -xzf go1.12.5.linux-amd64.tar.gz
# vim /etc/profile
export PATH=$PATH:/usr/local/go/bin
# source /etc/profile
# go version
2.2 下载kubeadm源码
# git clone https://github.com/kubernetes/kubernetes.git
# cd kubernetes
# git checkout -b remotes/origin/release-1.15.1 v1.15.1
2.3 修改kubeadm源码
1.14版本以前
# vim staging/src/k8s.io/client-go/util/cert/cert.go
kubeadm 1.14至今
# vim cmd/kubeadm/app/util/pkiutil/pki_helpers.go
在函数中新增一个常量:duration3650d
func NewSignedCert(){
const duration3650d = time.Hour * 24 * 365 * 10
NotAfter: time.Now().Add(duration3650d).UTC(),
}
2.4 编译
# make WHAT=cmd/kubeadm GOFLAGS=-v
# chmod a+x _output/bin/kubeadm
3. 替换默认kubeadm
# cp /usr/bin/kubeadm{,.bakup}
From 编译机:
# scp _output/bin/kubeadm root@k8s-ha-master01:/usr/bin/
4. 集群安装完成后,查看apiserver证书有效期:
# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text -noout
Validity
Not Before: Mar 11 07:37:53 2020 GMT
Not After : Mar 23 11:56:50 2030 GMT
- 点赞
- 收藏
- 分享
- 文章举报
- kubernetes 1.9.0 kubeadm方式安装
- Kubernetes的几种主流部署方式02-kubeadm部署1.14版本高可用集群
- Kubernetes 1.4 基础篇:kubeadm方式安装
- k8s 1.13 kubeadm部署(带dashboard)并修改默认证书期限
- kubeadm安装kubernetes
- 实例学习Ansible系列:安装kube-apiserver
- 修改mmm的编译后安装目录默认generic的方法
- nagios3.5.1 server端源码编译安装方式
- 修改Eclipse默认工作空间与导入原有配置方案和设置JDK编译方式
- [经验交流] kubeadm 安装 kubernetes 一年过期的解决办法
- Fedora 15 安装 fusion 以及修改默认打开方式
- kubeadm 安装 kubernetes1.9.1
- RedHat Linux下以yum方式安装Mysql5.6,修改默认的安装路径,以及完全卸载Mysql
- Kubernetes安装系列之Master-Apiserver安装
- Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)
- kubernetes集群安装指南:Apiserver高可用
- centos7 、kubeadm 安装kubernetes 1.9
- 使用ps为exchange 2007重新分配证书,以解决默认安装时证书与服务器fqdn不匹配问题。
- 如何使用 kubeadm 安装 Kubernetes?
- kubernetes的kube-apiserver组件源码分析