基于2核4G的云主机部署个Kubernetes的一个轻量级版本
前期准备
系统环境 | 软件 | 版本 | 安装包自行下载地址 —需要科学上网,不然有点慢 | 安装脚本下载 |
---|---|---|---|---|
centos7 | k3s | v1.23.13+k3s1 | https://github.com/k3s-io/k3s/releases/download/v1.27.6+k3s1/k3s | https://get.k3s.io/ |
centos7 | docker | 19.03.13 | 可自行安装 |
部署步骤
安装k3s主节点(仅第一主节点执行)
上传到服务器 /usr/local/bin/k3s 并给予可执行权限
设置环境变量 export INSTALL_K3S_SKIP_DOWNLOAD=true 跳过下载
#配置环境变量,后续会用到,因为是云主机,会在外部调用,我这边添加了一些公网地址,可以根据自己实际需要添加。
export MY_SERVER_IP=xxxx.xxxx.xxxx.xxxx
export MY_TOKEN=943uoeitg4sh43589j38u
export MY_ETH_DEV=eth0 # 根据实际自己的网卡配置
export MY_NODE_IP=`ip -o -4 addr list | grep $MY_ETH_DEV | awk '{print $4}' | cut -d/ -f1`
export INSTALL_K3S_EXEC="--docker" # 使用docker部署,不然默认containerd
export TLS_SAN=xxxx.xxxx.xxxx.xxxx
# 下载安装脚本
bash k3s-install.sh server \
--cluster-init \
--token $MY_TOKEN \
--node-ip $MY_NODE_IP \
--advertise-address $MY_SERVER_IP \
--flannel-iface $MY_ETH_DEV \
--tls-san $TLS_SAN \
--disable-cloud-controller
--docker $INSTALL_K3S_EXEC
# 未下载安装脚本
wget -qO- https://get.k3s.io | sh -s - server \
--cluster-init \
--token $MY_TOKEN \
--node-ip $MY_NODE_IP \
--advertise-address $MY_SERVER_IP \
--flannel-iface $MY_ETH_DEV \
--tls-san $TLS_SAN \
--disable-cloud-controller
--docker $INSTALL_K3S_EXEC
防火墙需放行 TCP/6443,UDP/8472,TCP/10250 。 单网卡、单IP 的机器可以忽略如下参数
- –node-ip
- –flannel-iface
可根据集群需求,选择性禁用如下内置组件
- –disable-cloud-controller 禁用云控制器管理器
- –disable coredns 禁用内部DNS(用于支持服务发现)
- –disable servicelb 禁用负载均衡(可使用 MetalLB 替代)
- –disable traefik 禁用反向代理(可使用 ingress-nginx 替代)
- –disable local-storage 禁用本地存储卷(不影响 hostPath 卷)
- –disable metrics-server 禁用内部监控(工作端口为 TCP/10250)
安装k3s主节点(仅平行主节点执行,单主部署可忽略)
wget -qO- https://get.k3s.io | sh -s - server \
--server https://$MY_SERVER_IP:6443 \
--token $MY_TOKEN \
--node-ip $MY_NODE_IP \
--advertise-address $MY_NODE_IP \
--flannel-iface $MY_ETH_DEV \
--disable-cloud-controller
`为简化部署,配置参数请和第一主节点保持一致
主节点总数建议为奇数个,防止主节点故障时选举失败`
安装k3s主节点(仅平行主节点执行,单主部署可忽略)
wget -qO- https://get.k3s.io | sh -s - agent \
--server https://$MY_SERVER_IP:6443 \
--token $MY_TOKEN \
--node-ip $MY_NODE_IP \
--flannel-iface $MY_ETH_DEV
防火墙需放行 UDP/8472,TCP/10250 单网卡、单IP 的机器可以忽略如下参数
- –node-ip
- –flannel-iface
完全卸载(请注意备份数据)
# 卸载服务器
if type k3s-uninstall.sh >/dev/null; then
k3s-uninstall.sh
fi
# 卸载边缘节点
if type k3s-agent-uninstall.sh >/dev/null; then
k3s-agent-uninstall.sh
fi
# 重启后清理
rm -rf ~/.kube
rm -rf /etc/rancher
rm -rf /var/lib/cni
rm -rf /var/lib/rancher
rm -rf /var/lib/kubelet
rm -rf /var/log/containers
rm -rf /var/log/k3s*
rm -rf /var/log/pods