K8s - 目录
K8s - 2 集群搭建 - 2 二进制方式
- 一、kubernetes 集群搭建(二进制方式)
- 1. 安装要求
- 2. 准备环境
- 3. 操作系统初始化
- 4. 部署 Etcd 集群
- 4.1 准备 cfssl 证书生成工具
- 4.2 生成 Etcd 证书
- 4.3 从 Github 下载二进制文件
- 4.4 部署 Etcd 集群
- 5. 安装 Docker
- 6. 部署 Master Node
- 6.1 生成 kube-apiserver 证书
- 6.2 从 Github 下载二进制文件
- 6.3 解压二进制包
- 6.4 部署 kube-apiserver
- 6.5 部署 kube-controller-manager
- 6.6 部署 kube-scheduler
- 7. 部署 Worker Node
- 7.1 创建工作目录并拷贝二进制文件
- 7.2 部署 kubelet
- 7.3 批准 kubelet 证书申请并加入集群(master)
- 7.4 部署 kube-proxy
- 7.5 部署 CNI 网络
- 7.6 授权 apiserver 访问 kubelet
- 7.7 新增加 Worker Node
前置知识点
目前生产部署 Kubernetes 集群主要有两种方式:
kubeadm
- Kubeadm 是一个 K8s 部署工具,提供 kubeadm init 和 kubeadm join,用于快速部 署 Kubernetes 集群。
- 官方地址: https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
二进制包
- 从 github 下载发行版的二进制包,手动部署每个组件,组成 Kubernetes 集群。
Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署 Kubernetes 集群,虽然手动部署麻烦点,期间可以学习很 多工作原理,也利于后期维护。
注意:
本文所需使用的命令需要在不同的服务器上操作,请注意区分:
- master:在 master 节点操作;
- worker:在 worker 节点操作;
- master & worker:在 master 和worker 节点上操作。
在开始之前,部署Kubernetes集群机器需要满足以下几个条件,请务必按照以下版本进行安装(不通版本之间有较多的差异,会导致遇到一些奇怪的问题):
- 一台或多台机器,操作系统 CentOS7.x-86_x64;
- 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多;
- 集群中所有机器之间网络互通;
- 可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点;
- 禁止swap分区。
软件环境:
服务器规划:
Etcd 是一个分布式键值存储系统,Kubernetes 使用 Etcd 进行数据存储,所以先准备一个 Etcd 数据库,为解决 Etcd 单点故障,应采用集群方式部署,这里使用 3 台组建集群,可容忍 1 台机器故障,当然,你也可以使用 5 台组建集群,可容忍 2 台机器故障。
注意: 为了节省机器,这里与 K8s 节点机器复用。也可以独立于 k8s 集群之外部署,只要 apiserver 能连接到就行。
4.1 准备 cfssl 证书生成工具
cfssl 是一个开源的证书管理工具,使用 json 文件生成证书,相比 openssl 更方便使用。(可以使用任意一台服务器操作,这里用 Master 节点)
4.2 生成 Etcd 证书
- 自签证书颁发机构(CA)
- 创建工作目录:
- 自签 CA:
- 生成证书:
- 使用自签 CA 签发 Etcd HTTPS 证书
- 创建证书申请文件:
- 生成证书:
4.3 从 Github 下载二进制文件
下载地址:https://github.com/etcd-io/etcd/releases/download/v3.4.9/etcd-v3.4.9-linux-amd64.tar.gz
4.4 部署 Etcd 集群
以下在节点 1 上操作,操作完成后将节点 1 生成的所有文件拷贝到节点 2 和节点 3。
- 创建工作目录并解压二进制包
- 创建 etcd 配置文件
- systemd 管理 etcd
- 拷贝刚才生成的证书
将生成的证书拷贝到配置文件中的路径:
- 启动并设置开机启动
- 将上面节点 1 所有生成的文件拷贝到节点 2 和节点 3
然后在节点 2 和节点 3 分别修改 etcd.conf 配置文件中的节点名称和当前服务器 IP:
最后启动 etcd 并设置开机启动,同上。
- 查看集群状态
如果输出上面信息,就说明集群部署成功。如果有问题第一步先看日志:
下载地址:https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz
以下步骤在所有节点操作。这里采用二进制安装,用 yum 安装也一样。
- 解压二进制包
- systemd 管理 docker
- 创建配置文件
registry-mirrors 阿里云镜像加速器
- 启动并设置开机启动
6.1 生成 kube-apiserver 证书
- 自签证书颁发机构(CA)
- 生成证书:
- 使用自签 CA 签发 kube-apiserver HTTPS 证书
- 创建证书申请文件:
- 生成证书:
6.2 从 Github 下载二进制文件
下载地址:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/
注意:打开链接你会发现里面有很多包,选择对应的版本下载一个 server 包就够了,包含了 Master 和 Worker Node 二进制文件。
6.3 解压二进制包
6.4 部署 kube-apiserver
- 创建配置文件
- 拷贝刚才生成的证书
将生成的证书拷贝到配置文件中的路径:
- 启用 TLS Bootstrapping 机制
TLS Bootstraping:Master apiserver 启用 TLS 认证后,Node 节点 kubelet 和 kube-proxy 要与 kube-apiserver 进行通信,必须使用 CA 签发的有效证书才可以,当 Node节点很多时,这种客户端证书颁发需要大量工作,同样也会增加集群扩展复杂度。为了简化流程,Kubernetes 引入了 TLS bootstraping 机制来自动颁发客户端证书,kubelet 会以一个低权限用户自动向 apiserver 申请证书,kubelet 的证书由 apiserver 动态签署。所以强烈建议在 Node 上使用这种方式, 目前主要用于 kubelet ,kube-proxy 还是由我们统一颁发一个证书。
TLS bootstraping 工作流程:
创建上述配置文件中 token 文件:
格式: token ,用户名,UID ,用户组
token 也可自行生成替换:
- systemd 管理 apiserver
- 启动并设置开机启动
注意:若发现启动失败可通过以下命令查看错误。
- 授权 kubelet-bootstrap 用户允许请求证书
删除命令:
6.5 部署 kube-controller-manager
- 创建配置文件
- systemd 管理 controller-manager
- 启动并设置开机启动
6.6 部署 kube-scheduler
- 创建配置文件
- systemd 管理 scheduler
- 启动并设置开机启动
- 查看集群状态
所有组件都已经启动成功,通过 kubectl 工具查看当前集群组件状态:
如上输出说明 Master 节点组件运行正常。
7.1 创建工作目录并拷贝二进制文件
创建工作目录(worker):
上传 kubernetes 压缩包 到 root 目录下并解压(worker):
copy 可执行文件到指定目录(master & worker):
7.2 部署 kubelet
- 创建配置文件(master & worker)
注意:hostname-override 字段要求集群中唯一,所以每个节点需要手动修改为节点对应的主机名。
- 配置参数文件(master & worker)
- 生成 bootstrap.kubeconfig 文件(master)
拷贝到配置文件指定路径(master):
将配置文件及证书传输到 worker 节点(master):
- systemd 管理 kubelet(master & worker)
- 启动并设置开机启动(master & worker)
常用排错命令:
7.3 批准 kubelet 证书申请并加入集群(master)
注意:由于网络插件还没有部署,节点会没有准备就绪NotReady。。
7.4 部署 kube-proxy
- 创建配置文件(master & worker)
- 配置参数文件(master & worker)
注意:hostname-override 字段要求集群中唯一,所以每个节点需要手动修改为节点对应的主机名。
- 生成 kube-proxy.kubeconfig 文件(master)
生成 kube -proxy 证书:
生成 kubeconfig 文件:
拷贝到配置文件指定路径:
将配置文件传输到 worker 节点(master):
- systemd 管理 kube-proxy(master & worker)
- 启动并设置开机启动(master & worker)
7.5 部署 CNI 网络
下载地址:https://github.com/containernetworking/plugins/releases/download/v0.8.6/cni-plugins-linux-amd64-v0.8.6.tgz
上传 CNI 压缩包 到 root 目录下(master & worker):
下载 CNI 网络yaml文件(master):
部署好网络插件,Node 准备就绪。
7.6 授权 apiserver 访问 kubelet
7.7 新增加 Worker Node
- 拷贝已部署好的 Node相关文件到新节点(master)
- 删除 kubelet 证书和 kubeconfig 文件(worker)
注意:这几个文件是证书申请审批后自动生成的,每个 Node 不同,必须删除重新生成。
- 修改主机名(worker)
–hostname-override=k8s-node1
hostnameOverride: k8s-node1
- 启动并设置开机启动(worker)
- 在 Master 上批准新 Node kubelet 证书申请(master)
- 查看 Node状态(master)
记得执行环境初始化、docker安装等步骤!!!
到此这篇kubelet二进制文件(kubelet二进制文件下载)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/20258.html