• master单节点添加master节点
  • apiServer添加域名更新证书
  • 更新kubenertes证书有效期

环境

kubernetes v1.22.12

使用kubeadm安装的集群

#添加节点

#生成节点添加token(在master运行)

#创建join token.  Create join token
kubeadm token create --print-join-command
#kubeadm join IP:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx
#创建用于添加master节点的证书.  Create certificate-key for add master node
kubeadm init phase upload-certs --upload-certs

#添加节点(在添加节点运行)

#安装kubelet
export Ver=1.22.12 #与master版本一致
curl -s http://elvin.vip/ks/k8s/kubelet.sh |bash #查看往期快速创建k8s文章 https://www.cnblogs.com/elvi/p/8976305.html
#添加node节点
#添加node节点,运行上面生成的
kubeadm join IP:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx
#添加master节点
#添加master节点,添加上面创建的certificate-key
kubeadm join IP:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx \
--control-plane --certificate-key xxx #master节点配置kubectl凭证
mkdir -p $HOME/.kube
ln -fs /etc/kubernetes/admin.conf $HOME/.kube/config #node lable
kubectl label node $(hostname) node-role.kubernetes.io/master=
#view nodes
kubectl get nodes
#添加Endpoint

若添加master节点报错且有如下提示,则需要添加Endpoint

Please ensure that:
* The cluster has a stable controlPlaneEndpoint address.
* The certificates that must be shared among control plane instances are provided.

master单节点添加master节点报错提示没controlPlaneEndpoint

Endpoint地址需要添加到apiServer证书认证地址里

为保证Endpoint能被新节点能访问,可使用7层代理DNS轮询或添加到hosts解析

单节点添加master节点后保证Endpoint高可用, 即达到master节点高可用

#echo "masterIP  myk8s.api.io" >>/etc/hosts

#查看kubeadm-config
kubectl -n kube-system get cm kubeadm-config -o yaml #修改kubeadm-config,添加如 controlPlaneEndpoint: myk8s.api.io:6443
kubectl edit cm kubeadm-config -n kube-system #添加位置,与版本号缩进一致
controlPlaneEndpoint: myk8s.api.io:6443
kubernetesVersion: v1.22.12

#添加域名更新apiServer证书

添加Endpoint使用域名或IP后,需要更新证书

域名或IP添加到certSANs部分,如下

apiVersion: v1
data:
ClusterConfiguration: |
apiServer:
certSANs:
- myk8s.api.io
certificatesDir: /etc/kubernetes/pki
controlPlaneEndpoint: myk8s.api.io:6443
kubernetesVersion: v1.22.12
#导出kubeadm配置
kubectl -n kube-system get configmap kubeadm-config \
-o jsonpath='{.data.ClusterConfiguration}' > kubeadm-init.yaml #查看配置
cat kubeadm-init.yaml
#创建新的apiServer证书
#移除apiserver证书
mv /etc/kubernetes/pki/apiserver.{crt,key} /tmp/ #创建新的apiserver证书
kubeadm init phase certs apiserver --config kubeadm-init.yaml #查看证书包含的域名和IP
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -text |grep DNS #重启apiserver生效
docker ps |awk '/kube-apiserver/{print $1}' |xargs docker restart

#更新kubenertes证书有效期

#查看有效期
kubeadm certs check-expiration #更新有效期
kubeadm certs renew all #重启服务生效
docker ps |awk '/k8s_kube-|etcd/{print $1}' |xargs docker restart

k8s单节点改为高可用和更新证书的更多相关文章

  1. ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建

    当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定 ...

  2. 013.Kubernetes二进制部署worker节点Nginx实现高可用

    一 Nginx代理实现kube-apiserver高可用 1.1 Nginx实现高可用 基于 nginx 代理的 kube-apiserver 高可用方案. 控制节点的 kube-controller ...

  3. 纯手工搭建K8s(单节点)

    准备说明: 因为为纯手动搭建,所以针对安装时需要的一些安装包需提前下载好 cfssl_linux-amd64. cfssljson_linux-amd64. cfssl-certinfo_linux- ...

  4. springcloud微服务多节点高性能、高可用、高并发部署

    1. 共有三个服务 discovery服务,domain服务,gateway服务. discovery服务是用来注册其他服务的,作为服务治理用. domain服务是主业务服务. gateway服务是所 ...

  5. ubuntu18.04使用kubeadm部署k8s单节点

    实验目的: 体验kubeadm部署k8s服务,全流程体验! 实验环境: ubuntu18.04 联网在线部署 kubeadm 01.系统检查 节点主机名唯一,建议写入/etc/hosts 禁止swap ...

  6. Pod在多可用区worker节点上的高可用部署

    一. 需求分析 当前kubernetes集群中的worker节点可以支持添加多可用区中的ECS,这种部署方式的目的是可以让一个应用的多个pod(至少两个)能够分布在不同的可用区,起码不能分布在同一个可 ...

  7. 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群二 搭建高可用集群

    1. 部署keepalived - apiserver高可用(任选两个master节点) 1.1 安装keepalived # 在两个主节点上安装keepalived(一主一备) $ yum inst ...

  8. k8s单节点集群部署应用

    之所以用k8s来部署应用,就是因为k8s可以灵活的控制集群规模,进行扩充或者收缩.生产上我们要配置的参数较多,命令行的方式显然不能满足需求,我们应该使用基于配置文件的方式.接下来做一个部署的demo: ...

  9. Kubernetes全栈架构师(二进制高可用安装k8s集群扩展篇)--学习笔记

    目录 二进制Metrics&Dashboard安装 二进制高可用集群可用性验证 生产环境k8s集群关键性配置 Bootstrapping: Kubelet启动过程 Bootstrapping: ...

  10. centos7使用kubeadm配置高可用k8s集群

    CountingStars_ 关注 2018.08.12 09:06* 字数 464 阅读 88评论 0喜欢 0 简介 使用kubeadm配置多master节点,实现高可用. 安装 实验环境说明 实验 ...

随机推荐

  1. 树莓派2 CentOS7.9 环境下编译 ZLMediaKit 备忘录

    查询系统架构 getconf LONG_BIT 查看是32 或 64位 arch uname -m 输出"x86_64"则为64位,输出"i686"或" ...

  2. 数据库运维实操优质文章分享(含Oracle、MySQL等) | 2023年6月刊

    本文为大家整理了墨天轮数据社区2023年6月发布的优质技术文章/文档,主题涵盖Oracle.MySQL.PostgreSQL等数据库的安装配置.故障处理.性能优化等日常实践操作,以及常用脚本.注意事项 ...

  3. 四、Spring Boot集成Spring Security之认证流程

    二.概要说明 本文主要介绍登录登出业务流程,所以使用基于内存的用户名密码,暂不介绍授权相关内容,后续会详细介绍基于数据库的认证及授权 如何查看基于内存的默认用户名密码 如何配置基于内存的自定义用户名密 ...

  4. 浅析Jvm

    浅析Jvm 基本概念 引言 Java 虚拟机(JVM,Java Virtual Machine)是 Java 生态系统的核心组成部分,它为 Java 应用程序提供了一个运行环境.JVM 的主要职责是将 ...

  5. 强化学习算法笔记之【DDPG算法】

    强化学习笔记之[DDPG算法] 目录 强化学习笔记之[DDPG算法] 前言: 原论文伪代码 DDPG 中的四个网络 代码核心更新公式 前言: 本文为强化学习笔记第二篇,第一篇讲的是Q-learning ...

  6. 鸿蒙Flutter实战:01-搭建开发环境

    鸿蒙Flutter实战:01-搭建开发环境 准备工作 1.安装 DevEco Studio NEXT IDE, 注意版本应该是 Next,当前最新的是 Beta3 2.安装Git, 如果要同时适配安卓 ...

  7. 自建互联网档案馆「GitHub 热点速览」

    这两天北京的气温骤降,仿佛在提醒我们冬日的脚步已悄然而至,让人不禁感叹时间的飞逝,一年的时间"转瞬即逝". 如果你想留下互联网上的珍贵瞬间,避免它们消失在 404 错误中.这款开源 ...

  8. Web渗透03_扫描技术

    前言 在获取目标主机的各类信息时,有一些综合工具可以一键扫描完成,大大方便了测试效率.但扫描结果并非100%的正确,需要我们的判断. namp NMAP(Network Mapper)是一款开放源代码 ...

  9. Java编程案例(专题)

    文章目录 案例一:买飞机票 案例二:开发验证码 案例三:评委打分 案例四:数字加密 案例五:数组拷贝 案例六:抢红包 案例七:找素数 案例八:模拟双色球 8.1 手动投注 8.2 随机开奖号码 8.3 ...

  10. Power BI新卡片更改显示单位

    Power BI 不知道什么时候发布了新卡片,照现在官方来说,该视觉对象目前还属于预览版,但已经可以正常使用了,对比旧的卡片,显示效果个人觉得会友好一些,详见官方说明:创建"新"卡 ...