使用 kubeasy 快速部署任意版本 K8S
demo
·
环境准备
主机名 | IP地址 | 系统 |
---|---|---|
VIP | 172.16.114.10 | N/A |
vm114011 | 172.16.114.11 | Ubuntu 20.04 |
vm114012 | 172.16.114.12 | Ubuntu 20.04 |
vm1140113 | 172.16.114.13 | Ubuntu 20.04 |
vm114014 | 172.16.114.14 | Ubuntu 20.04 |
创建虚拟机,设置静态IP的操作这里忽略,仅记录一下相关的命令
以 vm114011
主机为例
# 设置主机名
hostnamectl set-hostname vm114011
# 设置静态IP
cat /etc/netplan/00-installer-config.yaml
network:
version: 2
renderer: networkd
ethernets:
ens33:
optional: true
dhcp4: no
addresses:
- 172.16.114.11/16
gateway4: 172.16.1.1
nameservers:
addresses:
- 172.16.1.1
登录 vm114011
主机下载项目代码
分支为 K8S 版本分支,唯一不同就是网络部署文件上的差异,所以如果需要部署 1.14.10 的 K8S,请使用
git clone -b v1.14
以此类推
需要注意
部署集群会有两种方式下载二进制文件或者软件包,一种是从官网下载,比如github或者google官方的站点, 另外一种是通过Nexus的方式下载,如果网络不稳定导致下载不了软件,可以在项目的release
页面下载离线包。
这个项目的离线不是完全离线,仅仅只是下载了部署K8S所需要的软件包和二进制文件,所以如果是完全的内网环境,还需要配置好内网的YUM仓库、APT仓库、PIP仓库。
# 网络畅通
apt-get update
apt-get install git make -y
git clone -b v1.23 https://github.com/buxiaomo/kubeasy.git /usr/local/src/kubeasy
# 网络条件不好或者内网
apt-get update
apt-get install git make -y
wget https://github.com/buxiaomo/kubeasy/releases/download/v1.23.10/kubeasy-offline.tar.gz -O /usr/local/src/kubeasy-offline.tar.gz
tar -zvxf /usr/local/src/kubeasy-offline.tar.gz -C /usr/local/src
git config --global --add safe.directory /usr/local/src/kubeasy
cd /usr/local/src/kubeasy
git checkout v1.23
安装项目依赖
cd /usr/local/src/kubeasy
make runtime
创建参数配置文件
可以到
/usr/local/src/kubeasy/group_vars
目录查看all.yml
和kubernetes.yml
文件,根据需要,修改各个组件的启动参数,这里我使用默认。
cd /usr/local/src/kubeasy
make -C group_vars/
创建资产文件
资产文件根据
Makefile
中的PROJECT_NAME
和PROJECT_ENV
参数读取, 默认是kubeasy
、dev
, 所以文件名就是inventory/kubeasy-dev.ini
这里主要用来区分多集群的情况, 文件模版如下, 详细参数可以参考inventory/template
目录下的文件。
# cat inventory/${PROJECT_NAME}-${PROJECT_ENV}.ini
[master]
172.16.114.11
172.16.114.12
172.16.114.13
[worker]
172.16.114.14
[kubernetes:children]
master
worker
# ha config
# slb is software load balancing, will install harpoxy and keepalived on master node
# clb is cloud load balancing, will use cloud load balancing
[kubernetes:vars]
ha={"type": "slb", "vip": "172.16.114.10", "mask": 16 }
[all:vars]
ansible_python_interpreter=/usr/bin/python3
ansible_ssh_port=22
ansible_ssh_user=root
# ansible_ssh_pass=root
# ansible_sudo_user=root
# ansible_sudo_pass=root
部署集群
前面说过,这个项目有两种下载软件包的方式,一个是官网一个是nexus,这里我分开记录命令,根据你的情况执行
# 离线部署
## 会安装docker并且部署作者写的轻量 nexus 和 registry 容器,可以通过 docker ps 查看
make offline
## 上传软件包
./scripts/nexus.py upload --kubernetes 1.23.10 --url http://172.16.114.11:8081 --repository kubeasy
## 部署集群
make deploy \
DOWNLOAD_WAY=nexus \
NEXUS_DOMAIN_NAME=http://172.16.114.11:8081 \
NEXUS_REPOSITORY=kubeasy
# 网络畅通
make deploy
查看集群状态
root@vm114011:~# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
etcd-1 Healthy {"health":"true","reason":""}
etcd-2 Healthy {"health":"true","reason":""}
root@vm114011:~# kubectl get no -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
vm114011 Ready control-plane,master 9m55s v1.23.10 172.16.114.11 <none> Ubuntu 20.04.5 LTS 5.4.0-125-generic docker://20.10.17
vm114012 Ready control-plane,master 9m55s v1.23.10 172.16.114.12 <none> Ubuntu 20.04.5 LTS 5.4.0-125-generic docker://20.10.17
vm114013 Ready control-plane,master 9m55s v1.23.10 172.16.114.13 <none> Ubuntu 20.04.5 LTS 5.4.0-125-generic docker://20.10.17
vm114014 Ready worker 8m19s v1.23.10 172.16.114.14 <none> Ubuntu 20.04.5 LTS 5.4.0-125-generic docker://20.10.17
root@vm114011:~# kubectl get po -A -o wide
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
kube-system coredns-7b86776fcf-ghrl9 1/1 Running 0 7m41s 10.244.3.2 vm114014 <none> <none>
kube-system kube-flannel-ds-fvshg 1/1 Running 0 7m44s 172.16.114.14 vm114014 <none> <none>
kube-system kube-flannel-ds-np6fd 1/1 Running 0 7m44s 172.16.114.12 vm114012 <none> <none>
kube-system kube-flannel-ds-r784f 1/1 Running 0 7m44s 172.16.114.11 vm114011 <none> <none>
kube-system kube-flannel-ds-t6jzd 1/1 Running 0 7m44s 172.16.114.13 vm114013 <none> <none>
kube-system metrics-server-c5d46dd4d-7jj2j 1/1 Running 0 7m42s 10.244.3.3 vm114014 <none> <none>
kube-system metrics-server-c5d46dd4d-zn2kt 0/1 Pending 0 7m42s <none> <none> <none> <none>
更多推荐
已为社区贡献1条内容
所有评论(0)