【笔记】通过kubeasz部署Kubernetes

前言

Kubernetes(常简称为K8s)是用于自动部署、扩展和管理“容器化(containerized)应用程序”的开源系统。该系统由Google设计并捐赠给Cloud Native Computing Foundation(今属Linux基金会)来使用。(维基百科

开源项目

集群部署

集群方案

  • 单机(两台虚拟机):一个主控节点+工作节点,一个工作节点

  • 每台至少CUP2核,内存2G

环境部署

  • 下载easzup脚本

  • 上传easzup脚本,并添加执行权限

1
chmod +x easzup
  • 通过脚本,下载离线安装文件/etc/ansible,并安装配置docker
1
./easzup -D
  • 通过脚本,使用临时容器
1
./easzup -S
  • 进入容器
1
docker exec -it kubeasz sh
  • 在容器内指定配置命令,改为离线安装
1
2
3
4
5
6
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
  • 安装python,pip,ansible
1
2
3
4
5
6
7
8
yum install python -y

wget -O /etc/yum.repos.d/epel-7.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum install git python-pip -y

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/
  • 加载容器
1
docker load -i images.gz

配置主控

  • 生成ssh密钥对,向工作节点复制ssh公钥
1
2
ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
ssh-copy-id 192.168.64.192
  • 配置hosts
1
2
3
cd /etc/ansible
cp example/hosts.multi-node hosts
vim hosts
  • 在hosts文件中配置集群节点主控节点工作节点
  • 集群节点会参加选举,所以通常配置奇数个
1
2
3
4
5
6
7
8
9
[etcd]
192.168.64.191 NODE_NAME=etcd1

[kube-master]
192.168.64.191

[kube-node]
192.168.64.191
192.168.64.192
  • 检查所有主机状态,有pingpong即为成功
1
ansible all -m ping

一键安装k8s集群

  • 在主控节点执行一键安装命令
1
2
cd /etc/ansible
ansible-playbook 90.setup.yml

验证环境

查看集群状态

cs:Cluster集群

1
kubectl get cs

查看节点服务器

no:Node节点

1
kubectl get no
1
kubectl get node

完成