Kubernetes - 一键安装Kubernetes集群
容器自动管理工具、持续部署工具
谷歌的开源工具,开源之前在谷歌内部使用了几年的时间,管理上千万的容器
安装搭建 Kubernetes 集群
安装过程非常复杂,即使对专业运维难度也非常大,有开源工具辅助安装K8s集群
一键安装:https://github.com/easzlab/kubeasz
一步步手动安装:https://github.com/opsnull/follow-me-install-kubernetes-cluster
集群方案
使用三台物理机或VMware虚拟机来搭建集群环境,一台主控服务器,两台工作节点服务器。
一,集群安装准备
kubeasz项目(https://github.com/easzlab/kubeasz)极大的简化了k8s集群的安装过程,他提供的工具可以轻松安装和管理k8s集群。
主控服务器
先准备主控服务器
调整 VMware 虚拟机的内存和 cpu:
下载离线文件,安装Docker
在主控服务器上下载安装环境初始化脚本工具 ezdown:
export release=3.1.0
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
ls -l
使用工具脚本下载离线文件,并安装Docker
默认下载最新推荐k8s/docker等版本(更多关于ezdown的参数,运行./ezdown 查看)
./ezdown -D
离线安装
需要的资料下载;
kubeasz-3.1.0.zip
链接:https://pan.baidu.com/s/1XKqOI0-1A6eBGD3H3N_PJw
提取码:tmup
centos-8-2105
链接:https://pan.baidu.com/s/1QmXpL0-NFSbghEw9u_dC0A
提取码:nsco
第一台服务器
1.克隆 centos-8-2105: k1 (克隆一个虚拟机,虚拟机内部没有docker)
2.设置ip
./ip-static
ip: 192.168.64.191
-
ifconfig #查看IP地址
-
kubeasz-3.1.0.zip 解压缩,上传文件(远程连接工具)
images.gz 上传到 /root/
kubeasz-3.1.0/ezdown 上传到 /root/
kubeasz-3.1.0/kubeasz 文件夹上传到 /etc/
内存设置 2G 或 2G 以上
- cpu 设置成两块
- 重启服务器(重启虚拟机)
准备安装环境
cd ~/
chmod +x ./ezdown
1.下载离线安装文件,如果存在,不会重复下载
2.安装Docker
相关镜像
链接:https://pan.baidu.com/s/16tntVmJ_ciIU8IP0gaYt2Q
提取码:z1p5
./ezdown -D
docker info
docker load -i images.gz #导入镜像
docker images
```![在这里插入图片描述](https://img-blog.csdnimg.cn/6d98d62cdee2418b86a94b84e91f85a7.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA56iL5bqP54y_IOeMv-eGiueMqw==,size_19,color_FFFFFF,t_70,g_se,x_16)
```bash
./ezdown -P
克隆 k1,克隆出 k2 和 k3
k1先关机
方案1,从 k1 克隆出 k2 和 k3
方法2,从 k1 只克隆一个 k2
修改 k2 和 k3 的 ip
192.168.64.192
192.168.64.193
克隆虚拟机的时候考虑一下自身计算机内存。不然配置集群是会报错。
上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz
/etc/kubeasz 包含 kubeasz 版本为 ${release} 的发布代码
/etc/kubeasz/bin 包含 k8s/etcd/docker/cni 等二进制文件
/etc/kubeasz/down 包含集群安装时需要的离线容器镜像
/etc/kubeasz/down/packages 包含集群安装时需要的系统基础软件
工作节点
在工作节点服务器上重复以上所有操作。
如果使用 VMware 虚拟机,只需要从第一台服务器克隆即可。
二,配置集群安装环境
启动 kubeasz 容器
./ezdown -S
设置参数允许离线安装
若是离线安装可以跳过
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' /etc/kubeasz/example/config.yml
配置免密登录其他服务器
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa #生成公钥与私钥
ssh-copy-id 192.168.64.191 #公钥复制到三台主机,包括自己主机。用一台操作多台服务
ssh-copy-id 192.168.64.192
ssh-copy-id 192.168.64.193
创建集群配置
cd /etc/kubeasz
chmod +x ezctl
./ezctl new cs1
配置服务器地址
vim /etc/kubeasz/clusters/cs1/hosts
克隆三台虚拟机的配置
如果内存有限, 可以只部署两台服务器进行测试
主服务器既作为控制节点, 又作为工作节点
减少etcd服务数量
为防止加载过程出错,或者防止之前没有操作。虚拟机拍一个快照
执行一键安装
cd /etc/kubeasz
./ezctl setup cs1 all
设置 kubectl 命令的别名
# 设置 kubectl 命令别名 k k8s命令设置别名
echo "alias k='kubectl'" >> ~/.bashrc
# 使设置生效
source ~/.bashrc