k8s 证书过期解决

下载kubernetest 源码

apt -get install git 

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

切换分支

cd kubernetes && git checkout -b remotes/origin/release-1.13 v1.13.0

下载docker编译环境

https://hub.docker.com/r/gcrcontainer/kube-cross/tags?page=2  在dockerhub 下载相应的版本

docker pull gcrcontainer/kube-cross:v1.9.1-1 
docker run --rm -v /root/kubernetes/:/go/src/k8s.io/kubernetes -it gcrcontainer/kube-cross:v1.9.1-1 bash

修改源码

vim  /kubernetes/staging/src/k8s.io/client-go/util/cert/cert.go

maxAge := time.Hour * 24 * 365   #修改前       

NotAfter:     time.Now().Add(duration365d).UTC()

 maxAge := time.Hour * 24 * 365 * 50  #修改后   给证书期限为50年

NotAfter:     time.Now().Add(duration365d * 50).UTC()

编译

cd /go/src/k8s.io/kubernetes

# 编译kubeadm, 这里主要编译kubeadm 即可
make all WHAT=cmd/kubeadm GOFLAGS=-v
拷贝编译的文件
cp ./_output/local/bin/linux/amd64/kubeadm

master

备份证书和配置文件

#!/usr/bin/env bash
set -e
sudo mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
sudo mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
sudo mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
sudo mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
sudo mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old
sudo mv /etc/kubernetes/pki/front-proxy-ca.crt /etc/kubernetes/pki/front-proxy-ca.crt.old
sudo mv /etc/kubernetes/pki/front-proxy-ca.key /etc/kubernetes/pki/front-proxy-ca.key.old
sudo mv /etc/kubernetes/admin.conf /etc/kubernetes/admin.conf.old
sudo mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubelet.conf.old
sudo mv /etc/kubernetes/controller-manager.conf /etc/kubernetes/controller-manager.conf.old
sudo mv /etc/kubernetes/scheduler.conf /etc/kubernetes/scheduler.conf.old

拷贝编译后的kubeadm

\cp kubeadm /usr/bin/

创建kubeadm-conf.yaml 文件

cat > /tmp/kubeadm-conf.yaml <<EOF
apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
networking:
  podSubnet: 192.169.0.0/16
  serviceSubnet: 10.96.0.0/12
#apiServerCertSANs:
#- master01
#- master02
#- master03
#- 172.16.2.1
#- 172.16.2.2
#- 172.16.2.3
#- 172.16.2.100
#etcd:
#  endpoints:
#     - http://192.168.188.160:2379
#     - http://192.168.188.161:2379
#     - http://192.168.188.162:2379
#token: 2wt8ap.ev8cvrpuzt81zwm7
#tokenTTL: "0"
kubernetesVersion: v1.11.5
#imageRepository:
api:
  advertiseAddress: 192.168.188.160
kubeletConfiguration:
  baseConfig:
    evictionHard:
      imagefs.available: 6Gi
      memory.available: 512Mi
      nodefs.available: 3Gi
EOF

sudo kubeadm alpha phase certs apiserver --config /tmp/kubeadm-conf.yaml
sudo kubeadm alpha phase certs front-proxy-ca --config /tmp/kubeadm-conf.yaml
sudo kubeadm alpha phase certs apiserver-kubelet-client --config /tmp/kubeadm-conf.yaml
sudo kubeadm alpha phase certs front-proxy-client --config /tmp/kubeadm-conf.yaml
sudo kubeadm alpha phase kubeconfig all --config /tmp/kubeadm-conf.yaml

sudo rm -rf $HOME/.kube
mkdir -p mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

查看证书时间

openssl x509 -in /etc/kubernetes/pki/front-proxy-client.crt -noout -dates

追加部分:

为了不要每年都更新客户端证书可以在/etc/kubernetes/manifests/kube-controller-manager.yaml的26行左右添加下面内容(主要空格对其):

- --experimental-cluster-signing-duration=876000h0m0s

修改完成后,需要删除/var/lib/kubelet/pki/下的文件,重新启动kubelet服务就可以了

注意:如果为生成证书,请查看时间是否同步

创建永久token

kubeadm token create --ttl 0

rm -rf /var/lib/kubelet/pki/*

sudo sed -i "s/56d5fi.18j8g4fgca4lf1a1/06cymx.d1vcolksn9uwthqz/g" /etc/kubernetes/bootstrap-kubelet.conf

systemctl restart kubelet

node

删除/var/lib/kubelet/pki/下的所有文件

rm -rf /var/lib/kubelet/pki/*

替换/etc/kubernetes/bootstrap-kubelet.conf中的token(红色框的部分)为上面创建的token值

sudo sed -i "s/56d5fi.18j8g4fgca4lf1a1/06cymx.d1vcolksn9uwthqz/g" /etc/kubernetes/bootstrap-kubelet.conf

重启kubelet 服务,systemctl restart kubelet

检测是否成功,ls /var/lib/kubelet/pki/

docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-cross:v1.7.5-2

https://www.cnblogs.com/skymyyang/p/11093686.html
https://www.cnblogs.com/kuku0223/p/10509637.html
https://hub.docker.com/r/gcrcontainer/kube-cross/tags?page=2

原文地址:https://www.cnblogs.com/hanwei666/p/12058978.html

时间: 2024-11-05 21:34:20

k8s 证书过期解决的相关文章

k3s 证书过期解决方法

测试发现k3s使用一年后出现https tls hand error的问题,重新生成证书也不行,只能通过源码编译修重新安装k3s环境: ubuntu 16.04 docker 18.06.3 一.安装git(默认应该已经安装如果没有请执行下面的命令)sudo apt install -y git 二.clone源码,并切换分支(我这里用的是v1.0.1的版本)git clone https://github.com/rancher/k3s.gitcd k3sgit checkout -b v1.

k8s 证书过期时间调整

检查证书有限期 kubeadm 部署集群默认证书有效期为一年 cd /etc/kubernetes/pki openssl x509 -in apiserver.crt -text -noout Validity Not Before: Jun 12 04:41:18 2019 GMT Not After : Jun 12 04:41:18 2020 GMT go 环境部署 wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz tar

MSXML2.ServerXMLHTTP &amp; HTTPS &amp; 证书过期 — msxml3.dll &#39;80072f05&#39;

昨天测试一个几天前写的一个应用,时不时的报错: msxml3.dll  '80072f05' The date in the certificate is invalid or has expired 经过上午3个小时的努力,终于找到原因和解决办法. 原因: 证书过期 解决办法: Dim xmlhttp Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")        xmlhttp.setOption(2) = 1305

关于 ICTCLAS 2015 / NLPIR 出现的证书过期以及Cannot open Configure file 问题

今天使用的时候出现了证书过期,修改了过后出现的是Cannot open Configure file 之类的问题,但是如果项目里存在Data文件夹,这个错误是不应该存在的 搞了一个晚上,目前就找到了一个解决方案 就是调整本机的时间,这个问题是我在8月1号出现的,我调回了7月30,但是还是用不了,原来是一旦执行过后显示了证书过期Data文件就会进行相应的修改并且保存 所以解决方案就是下个新的NLPIR/ICTCLAS 2015 ,在运行程序之前把本机时间修改了 已经发邮件给张教授,不知道多久才能解

一场由于ssl证书过期造成的扯蛋加班

昨天中午,突然有反映app客户端无法登录,注册.由于监控还不到位,所以没有第一时间知道,发现问题后,首先检查日志,发现有大量的'peer closed connection in SSL handshake while SSL handshaking,''client closed connection while waiting for request,' 以前没有解决过此类报错,百度和google也没查到解决的办法,只是说ssl握手不成功,但由于大量的用户无法登录,同时在出现问题的前一天又做

zabbix企业应用之监控域名过期时间与ssl证书过期时间

如果各位维护过n多个域名,可能会对备案与续费有所了解,备案是十分麻烦,各种流程,而续费的话,虽然比较简单,但如果你没有提前续费,可能导致域名不可用,甚至被他人给恶意注册,为了解决这样的问他,我今天给各位分享一下,如何使用zabbix监控域名过期时间与ssl证书过期时间,默认的触发器是在域名或ssl证书要过期前60天通知. 下面是监控域名过期时间的效果图 下面是监控ssl证书过期时间效果图 如何实现: 一.客户端 1.修改zabbix_agentd.conf文件 在zabbix_agentd.co

C#提示:“在证书存储区中找不到清单签名证书”的解决方法

本文实例讲述了C#提示:"在证书存储区中找不到清单签名证书"的解决方法.分享给大家供大家参考.具体分析如下: 一.问题: 程序重新生成,提示错误:在证书存储区中找不到清单签名证书. 二.解决方法: 可能是之前部署的程序证书被我删掉了或是证书过期了,结果出现这个问题.解决方案如下: 方案1:右击项目属性―>签名―>为ClickOnce清单签名,将勾掉的选项去掉. 方案2:在签名中创建一个新的签名. 方案3:记事本打开相应的csproj文件,调整节点值.<SignMani

修改kubeadm证书过期时间

kubernetes集群三步安装 修改kubeadm证书过期时间 本文通过修改kubeadm源码让kubeadm默认的一年证书过期时间修改为99年 我已经编译好了一个放在了github上,有需要的可以直接下 代码编译 编译环境镜像我已经放到dockerhub上了:fanux/kubernetes-build:v1.0.0 首先clone k8s 代码: git clone https://github.com/kubernetes/kubernetes 挂载到镜像中编译 docker run -

网站https安全证书过期怎么办?https安全证书过期什么原因?

一.网站https安全证书过期原因分析: 1.当前电脑系统时间错误,所有的http安全证书都有颁发日期和截止日期,电脑系统时间在证书有效时间区间之外有可能导致浏览器提示网站https安全证书已过期或还未生效. 2.网站的https安全证书确实已经过期,根据https安全证书签发国际标准,https安全证书颁发不能超过39个月. 3.站点引用其它部署了https安全证书的外链,如果这个外链的证书过期了也会提示相应的错误. 能检测出外链有证书错误的终端设备有:手机浏览器.PC端IE6 (IE6以上的