🔥 推荐专栏:《DevOps本地化方案》
快速指南
以下为快速体验k8s集群的测试、开发环境--单节点部署(aio),国内环境下比官方的minikube方便、简单很多。
GitHub - easzlab/kubeasz: 使用Ansible脚本安装K8S集群,介绍组件交互原理,方便直接,不受国内网络环境影响
kubeasz: https://github.com/easzlab/kubeasz - Gitee.com
1.基础系统配置
- 2c/4g内存/40g硬盘(该配置仅测试用)
- 最小化安装Ubuntu 16.04 server或者CentOS 7 Minimal
- 配置基础网络、更新源、SSH登录等
注意: 确保在干净的系统上开始安装,不能使用曾经装过kubeadm或其他k8s发行版的环境
2.下载文件
- 下载工具脚本ezdown,举例使用kubeasz版本3.0.0
- yum install wget -y 如果没有wget
yum install python3 所有节点都需要安装
export release=3.6.3 wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown chmod +x ./ezdown
- 使用工具脚本下载
默认下载最新推荐k8s/docker等版本(更多关于ezdown的参数,运行./ezdown 查看)
./ezdown -D
- 可选下载离线系统包 (适用于无法使用yum/apt仓库情形)
./ezdown -P
上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz
- /etc/kubeasz 包含 kubeasz 版本为 ${release} 的发布代码
- /etc/kubeasz/bin 包含 k8s/etcd/docker/cni 等二进制文件
- /etc/kubeasz/down 包含集群安装时需要的离线容器镜像
- /etc/kubeasz/down/packages 包含集群安装时需要的系统基础软件
3.安装集群
- 容器化运行 kubeasz,详见ezdown 脚本中的 start_kubeasz_docker 函数
./ezdown -S
在ansible控制端配置免密码登录
# 更安全 Ed25519 算法
ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
# 或者传统 RSA 算法
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
ssh
ssh-copy-id 192.168.151.15 #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码
# 为每个节点设置python软链接
ssh $IPs ln -s /usr/bin/python3 /usr/bin/python
4 创建集群
docker exec -it kubeasz ezctl new k8s-01
# 容器化运行kubeasz
./ezdown -S
# 创建新集群 k8s-01
docker exec -it kubeasz ezctl new k8s-01
2021-01-19 10:48:23 DEBUG generate custom cluster files in /etc/kubeasz/clusters/k8s-01
2021-01-19 10:48:23 DEBUG set version of common plugins
2021-01-19 10:48:23 DEBUG cluster k8s-01: files successfully created.
2021-01-19 10:48:23 INFO next steps 1: to config '/etc/kubeasz/clusters/k8s-01/hosts'
2021-01-19 10:48:23 INFO next steps 2: to config '/etc/kubeasz/clusters/k8s-01/config.yml'
然后根据提示配置'/etc/kubeasz/clusters/k8s-01/hosts' 和 '/etc/kubeasz/clusters/k8s-01/config.yml':根据前面节点规划修改hosts 文件和其他集群层面的主要配置选项;其他集群组件等配置项可以在config.yml 文件中修改。
开始安装 如果你对集群安装流程不熟悉,请阅读项目首页 安装步骤 讲解后分步安装,并对 每步都进行验证
#建议使用alias命令,查看~/.bashrc 文件应该包含:alias dk='docker exec -it kubeasz'
source ~/.bashrc
# 一键安装,等价于执行docker exec -it kubeasz ezctl setup k8s-01 all
dk ezctl setup k8s-01 all
# 或者分步安装,具体使用 dk ezctl help setup 查看分步安装帮助信息
# dk ezctl setup k8s-01 01
# dk ezctl setup k8s-01 02
# dk ezctl setup k8s-01 03
# dk ezctl setup k8s-01 04
...
后续为k8s集群增加工作节点
以公司的k8s集群为例
10.0.151.11 为部署节点和master 这台集群安装里 kubeasz 和 ansible 所以在10.0.151.11 机器下执行添加工作节点的命令
我们现在要把10.0.153.2添加进来
1.配置免密登录 10.0.151.11到10.0.151.13需要免密
ssh-copy-id 10.0.153.2
2.执行添加工作节点命令
docker exec -it kubeasz ezctl add-node k8s-01 10.0.153.2 k8s_nodename=worker-03
*********************************************
在极端情况下可以把已经添加到k8s 集群的机器重装了系统 可以安装上述步骤直接重新再添加节点
后续为k8s集群增加主节点
我们现在要把10.0.151.122添加到主节点
1.配置免密登录 10.0.151.11到10.0.151.122需要免密
ssh-copy-id 10.0.151.122
2.进入到/etc/kubeasz
cd /etc/kubeasz
3.执行添加主节点命令
./ezctl add-master default 10.0.151.122 k8s_nodename=master-03
4.给主节点安装etcd