目录

一.部署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组件

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

四、K8S kubeadm安装

  • kubeadm init    在使用kubeadm方式安装K8S集群时,可根据集群初始化配置文件或配置参数选项快速的初始化生成一个K8S的master管理控制节点
  • kubeadm join    根据kubeadm init初始化的提示信息快速的将一个master节点或node节点加入到K8S集群中
  • 所有节点进行初始化(防火墙、selinux、系统时间、内核版本、主机名、内核参数等),安装容器引擎、kubeadm、kubelet、kubectl,部署 nginx/haproxy 负载均衡器和 keepalived 高可用
  • 执行 kubeadm config print init-defaults 命令生成K8S集群初始化配置文件并进行修改配置
  • 执行 kubeadm init --config 指定初始化配置文件 命令进行K8S集群的初始化,生成K8S的master管理控制节点
  • 在其它节点执行 kubeadm join 命令将其它 master 节点或 node 节点加入到K8S集群中
  • 安装 cni 网络插件(flannel/calico,实现Pod跨节点通信)
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐