【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
相关推荐
java_logo7 分钟前
LobeHub Docker 容器化部署指南
运维·人工智能·docker·ai·容器·ai编程·ai写作
NineData9 分钟前
保姆级!Oracle→达梦零停机迁移攻略,5 步操作,业务零影响!
数据库·程序员
q***017727 分钟前
Linux 下安装 Golang环境
linux·运维·golang
q***318341 分钟前
MySQL---存储过程详解
数据库·mysql
q***428244 分钟前
MySQL数据库误删恢复_mysql 数据 误删
数据库·mysql·adb
2***s6721 小时前
给SQL server数据库表字段添加注释SQL,附修改、删除注释SQL及演示
数据库·sql·oracle
企鹅侠客1 小时前
Linux性能调优使用strace来分析文件系统的性能问题
linux·运维·服务器
龙言龙论1 小时前
身份证信息批量处理系统:从入门到实战(附exe工具+核心源码)
数据库·python
TracyCoder1231 小时前
微服务注册中心基础(一):AP架构原理
微服务·云原生·架构·注册中心