【k8s集群应用】K8S二进制安装大致步骤(简略版)

文章目录

K8S二进制安装

部署etcd

  1. 使用cfssl工具签发证书和私钥
  2. 下载解压etcd软件包,获取二进制文件 etcd etcdctl
  3. 准备etcd集群的配置文件
  4. 启动etcd服务进程,将所有etcd节点加入到集群中

测试etcd集群(可选)

查看etcd集群健康状态

bash 复制代码
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  endpoint health

查看etcd集群信息

bash 复制代码
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  endpoint status

查看etcd集群成员列表

bash 复制代码
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  member list

插入键值

bash 复制代码
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  put 键名 '键值'

查询键值

bash 复制代码
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  get 键名

删除键值

bash 复制代码
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  del 键名

查看所有的键

bash 复制代码
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  get --keys-only --prefix ""

备份etcd数据库

bash 复制代码
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  snapshot save  备份文件路径

查看备份数据的信息

bash 复制代码
ETCDCTL_API=3 etcdctl -wtable  snapshot status 备份文件路径
恢复etcd数据库
  1. 关闭etcd数据库
bash 复制代码
systemctl stop etcd
  1. 备份当前数据目录
bash 复制代码
mv /var/lib/etcd  /var/lib/etcd.bak
  1. 在各个节点使用 etcdctl snapshot restore 恢复数据
bash 复制代码
ETCDCTL_API=3 etcdctl snapshot restore /root/etcd.db1 --data-dir /var/lib/etcd --name <节点名称> --initial-advertise-peer-urls https://<当前节点IP>:2380 --initial-cluster etcd01=https://IP1:2380,etcd02=https://IP2:2380,etcd03=https://IP3:2380 --initial-cluster-token <etcd集群Token> 
  1. 启动etcd数据库
bash 复制代码
systemctl start etcd
  1. 使用etcdctl验证etcd集群状态和数据

部署master组件

  1. 使用cfssl工具签发证书和私钥
  2. 下载解压K8S server软件包,获取二进制文件kube-apiserver kube-controller-manager kube-scheduler kubectl
  3. 准备apiserver启动时需要调用的token.csv文件
  4. 准备apiservercontroller-managerscheduler的启动参数配置文件
  5. 准备controller-managerschedulerkubectl的kubeconfig集群引导配置文件(用于连接和验证apiserver)
  6. 启动apiservercontroller-managerscheduler的服务进程
  7. 执行kubectl get cs命令查看master组件的健康状态

部署node组件

  1. 安装容器引擎
  2. 获取二进制文件 kubelet kube-proxy
  3. 准备kubeletkube-proxykubeconfig集群引导配置文件bootstrap.kubeconfig(kubelet首次访问apiserver时使用的文件)、kube-proxy.kubeconfig
  4. 准备kubeletkube-proxy的启动参数配置文件
  5. 启动kubelet服务进程(kubelet首次启动,会使用bootstrap.kubeconfigapiserver发起连接和CSR请求签发证书,master批准CSR请求后会由controller-manager生成kubelet的证书,再由apiserver发送给kubelet
  6. 先加载ipvs模块,再启动kube-proxy服务进程
  7. 安装CNI网络插件(flannel/caclico,创建Pod网络和实现Pod跨节点通信)和coreDNS(为K8S内的Pod提供DNS解析服务,可以使得在Pod中根据service资源名称解析成对应的clusterIP)
  8. 执行kubectl get nodes名称查看node节点的状态

K8S kubeadm安装

关键命令

bash 复制代码
kubeadm init
kubeadm join
  1. 所有节点进行初始化(防火墙、selinux、系统时间、内核版本、主机名、内核参数、ipvs模块),安装容器引擎、kubelet、kubeadm、kubectl,部署nginx/haproxy负载均衡和keepalived高可用
  2. 执行kubeadm config print init-defaults命令生成K8S集群初始化配置文件,并进行参数修改配置
  3. 执行kubeadm init --config 指定初始化配置配置文件 进行K8S集群的初始化,生成K8S集群的管理控制节点(master节点)
  4. 在其它节点执行kubeadm join命令将其它的master或node节点加入到K8S集群中
  5. 安装cni网络插件(flannel、calico)

更新kubeadm安装的K8S证书有效期

方法一

在master节点执行脚本./update-kubeadm-cert.sh all,将所有证书自动更新为十年有效期

方法二
bash 复制代码
cp /etc/kubernetes /etc/kubernetes.old                               #备份
kubeadm certs renew all --config 集群初始化配置文件                  #重新更新证书一年有效期
kubeadm init phase kubeconfig all --config 集群初始化配置文件        #更新kubeconfig配置文件
systemctl restart kubelet                                            #重启kubelet服务进程
mv /etc/kubernetes/manifests/*.yaml /tmp && sleep 10 && mv /tmp/*.yaml  /etc/kubernetes/manifests/        #重启以Pod形式运行的K8S组件
查看证书有效期
bash 复制代码
kubeadm certs check-expiration
openssl x509 -noout -dates -in /etc/kubernetes/pki/*.crt
相关推荐
vivo互联网技术11 分钟前
vivo Pulsar 万亿级消息处理实践(3)-KoP指标异常修复
java·大数据·服务器·后端·kafka·消息队列·pulsar
秋难降11 分钟前
Python 知识点详解(二)
数据库·python·正则表达式
南川琼语19 分钟前
Linux——I/O复用
linux·运维·服务器
柳如烟@26 分钟前
零基础,使用Idea工具写一个邮件报警程序
java·服务器·前端
悟道|养家42 分钟前
数据库性能优化指南:解决ORDER BY导致的查询性能问题( SQL Server )
数据库·性能优化
IT摆渡者44 分钟前
网络安全护网实战:攻击手段解析与防御策略
运维·网络·经验分享
czhc114007566344 分钟前
LINUX79 MYSQL
数据库·mysql
rocksun44 分钟前
使用MCP Toolbox for Databases访问数据库
数据库·人工智能·mcp
AKAMAI1 小时前
在Akamai平台上进行VOD转码的参考架构
后端·云原生·云计算
不喝水的鱼儿1 小时前
Ubuntu 25.04安装搜狗输入法
linux·运维·ubuntu