Kubernetes(k8s)集群部署(kubeasz安装脚本)
Kubernetes全自动容器部署工具 - 持续部署谷歌的开源工具,在谷歌内部已经运行几年,管理上千万容器缺点:过于复杂Kubernetes集群搭建kubernetes的安装过程极其复杂,对Linux运维不熟悉的情况下安装kubernetes极为困难,再加上国内无法访问google服务器,我们安装k8s就更加困难集群搭建的简化项目:https://github.com/opsnull/follow
Kubernetes
全自动容器部署工具 - 持续部署
谷歌的开源工具,在谷歌内部已经运行几年,管理上千万容器
缺点:过于复杂
Kubernetes集群搭建
kubernetes的安装过程极其复杂,对Linux运维不熟悉的情况下安装kubernetes极为困难,再加上国内无法访问google服务器,我们安装k8s就更加困难
集群搭建的简化项目:
-
https://github.com/opsnull/follow-me-install-kubernetes-cluster
手把手部署kubernetes
-
https://github.com/easzlab/kubeasz
一键安装脚本
kubeasz项目(https://github.com/easzlab/kubeasz)极大的简化了k8s集群的安装过程,使我们可以离线一键安装k8s集群
K8s 集群方案
方案1. 单机 - 16G以上(主机内存)
一个主控,两个工作节点
方案2. 单机 - 8G以上
一个主控+工作基点,一个工作节点
方案3. 多台主机 - 4G
一台主机启动一个虚拟机,用桥接网络
配置集群环境
1.准备台cento7虚拟机 取名k1
2.设置 cpu 和 内存:
cpu - 2
内存 - 2G
3.上传文件
链接:https://pan.baidu.com/s/1bEQhSYygUYnJRFfAQcoq8g
提取码:470f
将链接中文件下载解压
- easzup、images.gz 两个文件上传到 /root/
- ansible 文件夹上传到 /etc/
4.执行以下命令:
cd ~/
# 下载 kubeasz 的自动化安装脚本文件: easzup,如果已经上传过此文件,则不必执行这一步
export release=2.2.0
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/easzup
# 对easzup文件设置执行权限
chmod +x ./easzup
# 下载离线安装文件,并安装配置docker,
# 如果离线文件已经存在则不会重复下载,
# 离线安装文件存放路径: /etc/ansible
./easzup -D
# 启动kubeasz工具使用的临时容器
./easzup -S
# 进入该容器
docker exec -it kubeasz sh
# 下面命令在容器内执行
# 配置离线安装
cd /etc/ansible
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' roles/chrony/defaults/main.yml
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' roles/ex-lb/defaults/main.yml
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' roles/kube-node/defaults/main.yml
sed -i 's/^INSTALL_SOURCE.*$/INSTALL_SOURCE: "offline"/g' roles/prepare/defaults/main.yml
exit
5.导入镜像
docker load -i images.gz
6.当前服务器拍摄快照
7.克隆当前服务器,命名为k2
8.设置k2ip,我的
k1ip为:
192.168.64.191
k2ip为:
192.168.64.192
9.以k1为master主机,另一台作为工作节点
在master上继续配置安装环境
# 安装pip,已安装则忽略这一步
wget -O /etc/yum.repos.d/epel-7.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum install git python-pip -y
# pip安装ansible(国内如果安装太慢可以直接用pip阿里云加速),已安装则忽略这一步
pip install pip --upgrade -i https://mirrors.aliyun.com/pypi/simple/
pip install ansible==2.6.12 netaddr==0.7.19 -i https://mirrors.aliyun.com/pypi/simple/
# 在ansible控制端配置免密码登陆其他节点服务器
ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
# 公钥复制到所有节点,包括master自己
# 按提示输入yes和root管理员的密码
ssh-copy-id 192.168.64.191
ssh-copy-id 192.168.64.192
ssh-copy-id 192.168.64.193
配置集群服务器的ip
cd /etc/ansible && cp example/hosts.multi-node hosts && vim hosts
如果内存有限, 可以只部署两台服务器进行测试
主服务器既作为控制节点, 又作为工作节点
减少etcd服务数量
# 检查集群主机状态
ansible all -m ping
一键安装k8s集群
安装步骤非常多,时间较长,耐心等待安装完成
等检查集群主机状态成功后,执行以下命令:
cd /etc/ansible
ansible-playbook 90.setup.yml
安装成功结果:
设置kubectl命令别名
# 设置 kubectl 命令别名 k
echo "alias k='kubectl'" >> ~/.bashrc
# 使设置生效
source ~/.bashrc
配置自动补全
yum install -y bash-completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
source ~/.bashrc
验证安装
k get cs
---------------------------------------------------------
NAME STATUS MESSAGE ERROR
etcd-1 Healthy {"health":"true"}
scheduler Healthy ok
controller-manager Healthy ok
etcd-2 Healthy {"health":"true"}
etcd-0 Healthy {"health":"true"}
k get node
---------------------------------------------------------------------
NAME STATUS ROLES AGE VERSION
192.168.64.191 Ready,SchedulingDisabled master 5d23h v1.15.2
192.168.64.192 Ready node 5d23h v1.15.2
192.168.64.193 Ready node 5d23h v1.15.2
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)