这里采用开源项目https://github.com/easzlab/kubeasz,以二进制安装的方式
部署网络架构图
注意事项:
- 对所有的机器设置成统一的密码
- 确保各节点时区设置一致、时间同步
- 确保在干净的系统上开始安装,不要使用曾经装过kubeadm或其他k8s发行版的环境
一键安装脚本
高可用集群所需节点配置如下
角色 | 数量 | 描述 | 变量 |
---|---|---|---|
master节点 | 2 | 高可用集群至少2个master节点 | masterNode |
node节点 | 3 | 运行应用负载的节点,可根据需要提升机器配置/增加节点数 | slaveNode |
etcd节点 | 3 | 注意etcd集群需要1,3,5,…奇数个节点,一般复用master节点 | etcdNode |
自行调整脚本内的变量参数
可以直接到我的github仓库里面下载这个脚本,地址:https://raw.githubusercontent.com/kwinH/k8s/main/install_k8s.sh
#!/bin/bash
# auther: kwinwong
# descriptions: 以二进制形式一键安装部署K8S
# 变量定义
export release="3.3.0"
export k8s_ver="v1.24.1" # kubernetes版本
rootpasswd="root"
netnum="172.16.15"
cri="docker" #[containerd|docker]
cni="calico" #[calico|flannel]
clustername="test" #集群名称
isCN=true #服务器是否在中国
if ls -1v ./kubeasz*.tar.gz &>/dev/null;then software_packet="$(ls -1v ./kubeasz*.tar.gz )";else software_packet="";fi
pwd="/etc/kubeasz"
masterNode=(
"192.168.1.240"
"192.168.1.241"
)
slaveNode=(
"192.168.1.242"
"192.168.1.243"
"192.168.1.244"
)
etcdNode=(
"192.168.1.240"
"192.168.1.241"
"192.168.1.242"
)
allNode=("${masterNode[@]}" "${slaveNode[@]}")
# 升级软件库
if cat /etc/redhat-release &>/dev/null;then
yum update -y && apt-get install -y git vim curl
else
if [[ $isCN == true ]]; then
sed -i 's/security.debian.org/mirrors.ustc.edu.cn/' /etc/apt/sources.list
fi
apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y && apt-get install -y git vim curl
[ $? -ne 0 ] && apt-get -yf install
fi
# 检测python环境
python -V &>/dev/null
if [ $? -ne 0 ];then
if cat /etc/redhat-release &>/dev/null;then
yum install -y python2
ln -s /usr/bin/python2 /usr/bin/python
ln -s /usr/bin/pip2 /usr/bin/pip
cd -
else
apt-get install -y python2
ln -s /usr/bin/python2 /usr/bin/python
fi
fi
if [[ $isCN == true ]]; then
# 设置pip安装加速源
mkdir ~/.pip
cat > ~/.pip/pip.conf <<CB
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com
CB
fi
# 安装相应软件包
if cat /etc/redhat-release