目标任务:
1、Kubernetes集群部署架构规划
2、部署Etcd数据库集群
3、在Node节点安装Docker
4、部署Flannel网络插件
5、在Master节点部署组件(api-server,schduler,controller-manager)
6、在Node节点部署组件(kubelet,kube-proxy)
7、查看集群状态
8、运行⼀个测试示例
9、部署Dashboard(Web UI) 可选
准备环境
三台机器,所有机器相互做解析 centos7.6
关闭防⽕墙和selinux
关闭交换空间
临时关闭:swapoff -a
永久关闭:
vi /etc/fstab
找到如下内容:注释或删除
#/dev/sdX none swap sw 0 0
核心组件:
192.168.229.11 k8s-master
kube-apiserver,kube-controller-manager,kube-scheduler,etcd192.168.229.12 k8s-node1
kubelet,kube-proxy,docker,flannel,etcd192.168.229.13 k8s-node2
kubelet,kube-proxy,docker,flannel,etcd
三台机器都做域名解析
通过ping做连通测试
三台都做
部署Etcd集群
生成cfssl证书
下载cfssl⼯具:下载的这些是可执行的二进制命令直接用就可以了
放在usr/local/bin下面,方便直接使用命令
生成Etcd证书:
创建以下三个文件:
#生成ca中⼼的证书请求文件
生成服务器的证书(向ca发送请求)请求文件
生成ca认证证书:
通过认证文件去签发证书
server.pem 要用的证书
server-key.pem 要用的私钥
安装Etcd:
二进制包下载地址:
Release v3.2.12 · etcd-io/etcd · GitHubDistributed reliable key-value store for the most critical data of a distributed system - Release v3.2.12 · etcd-io/etcdhttps://github.com/coreos/etcd/releases/tag/v3.2.12
以下部署步骤在规划的三个etcd节点操作⼀样,唯⼀不同的是etcd配置文件中的服务器IP要写当前的:解压二进制包:以下步骤三台机器都操作:
源码安装etcd
wget https://github.com/etcd-io/etcd/releases/download/v3.2.12/etcd-v3.2.12-linux-amd64.tar.gz
// bin目录执行文件 cfg存启动命令 ssl存证书,刚才生成的cert/ .pem证书
三台都操作
创建etcd配置文件:
配置systemd管理etcd:
因为etcd是通过二进制安装的,不能直接通过systemctl操作
需要编写定义和管理 etcd
服务的启动、停止和其他操作
把/usr/lib/systemd/system/etcd.service通过master传给其他两台机器
master下操作:
如果多重执行了 就无需传递了
传输证书:
把刚才生成的证书拷贝到配置文件中的位置:(将master上面生成的证书scp到剩余两台机器上面)
直接拷贝到剩余两台etcd机器:
全部启动并设置开启启动
检查etcd的状态
若出现如上结果,说明健康,成功
在Node节点安装Docker
若之前安装过,先卸载
# yum remove docker \
docker-client \
docker-client-latest \