欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 【Kubernetes】二进制部署k8s集群总结

【Kubernetes】二进制部署k8s集群总结

2024/10/24 10:26:07 来源:https://blog.csdn.net/F12138X/article/details/140828119  浏览:    关键词:【Kubernetes】二进制部署k8s集群总结

目录

一.部署etcd

二.部署master组件

三.部署node组件

四.K8S kubeadm安装


一.部署etcd

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

etcd操作

#查看etcd集群健康状态
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  endpoint health#查看etcd集群状态信息
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  endpoint status#查看etcd集群成员列表
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379,https://IP2:2379,https://IP3:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥 -wtable  member list#插入键值
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  put 键名 '键值'#查询键值
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  get 键名#查看所有的键
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  --prefix  --keys-only  get ""#删除键值
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  del 键名#备份etcd数据库
ETCDCTL_API=3 etcdctl --endpoints="https://IP1:2379" --cacert=CA证书 --cert=客户端证书 --key=客户端私钥  snapshot save 备份文件路径#查看备份数据的信息
ETCDCTL_API=3 etcdctl -wtable  snapshot status 备份文件路径#恢复etcd数据库
ETCDCTL_API=3 etcdctl --data-dir etcd数据存储目录   snapshot restore  备份文件路径

二.部署master组件

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

三.部署node组件

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

四.K8S kubeadm安装

  • kubeadm init    在使用kubeadm方式安装K8S集群时,可根据集群初始化配置文件或配置参数选项快速的初始化生成一个K8S的master管理控制节点
  • kubeadm join    根据kubeadm init初始化的提示信息快速的将一个master节点或node节点加入到K8S集群中
  1. 所有节点进行初始化(防火墙、selinux、系统时间、内核版本、主机名、内核参数等),安装容器引擎、kubeadm、kubelet、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,实现Pod跨节点通信)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com