kubeasz安装k8s
1 配置
kubeasz安装kubernetes,只需要做好网通配置,做好ssh免密通信配置即可
1.1 环境介绍
OS:CentOS Linux release 8.5.2111
机器:
IP | hostname |
---|---|
10.104.10.201 | k8s-master |
10.104.10.202 | k8s-node |
所有机器,都将yum源改为国内阿里云开源镜像源
cd /etc/yum.repos.d/
mkdir backup
mv CentOS-* backup
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
yum clean all && yum makecache
1.2 时间同步
所有机器都安装chrony,配置时间同步
# 安装chrony,从CentOS8.x开始,改为chrony同步时间
yum install chrony -y
# 设置开始启动,并立即启动服务
systemctl enable chronyd --now
vim /etc/chrony.conf
# 注释掉 pool 2.centos.pool.ntp.org.iburst
# 添加阿里云地址
server ntp.aliyun.com iburst
server cn.ntp.org.cn iburst
# 用东八区,北京,上海的时间
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 重启服务
systemctl restart chronyd
# 立即同步时间
chronyc sources && chronyc -a makestep
1.3 升级内核
所有机器统一升级内核
# 导入elrepo gpg key
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
# 安装 elrepo YUM源仓库
dnf install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm -y
# 安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本,建议安装lt版本
dnf --enablerepo=elrepo-kernel install kernel-lt -y
# 设置grub2默认引导为0
grub2-set-default 0
# 重新生成grub2引导文件
grub2-mkconfig -o /boot/grub2/grub.cfg
# 更新后,需要重启,使升级的内核生效
reboot
**sestatus -v
**命令查看SELuinux状态,若显示为disabled
,则代表已经禁用
1.4 修改hostname
所有机器依次修改hostname
# 在10.104.10.201执行
hostnamectl set-hostname k8s-master
# 在10.104.10.202执行
hostnamectl set-hostname k8s-node
1.5 配置 hosts
所有机器配置下 hosts
cat >> /etc/hosts<<EOF
10.104.10.201 k8s-master
10.104.10.202 k8s-node
EOF
1.6 配置 ssh 互信
所有机器输入以下命令,创建一组公钥和私钥
# 直接一直回车就行
ssh-keygen
所有机器上执行公钥拷贝命令
ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-master
ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-node
2 准备
2.1 配置epel源
给所有机器配置阿里云epel源
# centos7
#wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# centos8
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
2.2 安装python pip
给所有机器安装python pip
# centos7
#yum install -y python-pip python3 python-netaddr
#pip install pip --upgrade -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
#pip install ansible==2.6.12 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# centos8
dnf install -y python3-pip python3 python3-netaddr
pip3 install pip --upgrade -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
pip3 install ansible==2.6.12 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
配置软链,否则后面的初始化集群时报找不到python
这里提前配置python软链
ln -s /usr/bin/python3.6 /usr/bin/python
2.3 下载工具脚本
在master机器(或者是指定的跳板机)上下载工具脚本ezdown,到https://github.com/easzlab/kubeasz/releases查看最新版本号,这里以3.4.3为例
export release=3.4.3
wget https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
使用工具脚本下载
# 下载需要的脚本、二进制文件和镜像文件
./ezdown -D
**./ezdown -D
**多执行几遍,直至再执行的时候提示INFO Action successed: download_all为止。这样就在/etc/kubeasz目录下下载了在线安装所有需要的脚本、二进制文件和镜像文件。
另外,通过执行**./ezdown -D
**会发现docker环境也在主控宿主机安装好,这个效果即使在做非k8集群本地化交付场景的时候也特别有用。
3 部署
3.1 创建集群
创建集群==k8s==
cd /etc/kubeasz
./ezctl new k8s
执行创建命令后如下方所示
bash-5.1# ezctl new k8s
2023-01-17 05:59:32 DEBUG generate custom cluster files in /etc/kubeasz/clusters/k8s
2023-01-17 05:59:32 DEBUG set versions
2023-01-17 05:59:32 DEBUG cluster k8s: files successfully created.
2023-01-17 05:59:32 INFO next steps 1: to config ‘/etc/kubeasz/clusters/k8s/hosts’
2023-01-17 05:59:32 INFO next steps 2: to config ‘/etc/kubeasz/clusters/k8s/config.yml’
3.2 配置集群
修改==/etc/kubeasz/clusters/k8s/hosts==配置文件中的[etcd]、[kube_master]、[kube_node]三处的IP地址;
k8s的nodeport端口默认范围为**30000-32767
**,在配置文件NODE_PORT_RANGE后面同样可以自行修改
vi /etc/kubeasz/clusters/k8s/hosts
==/etc/kubeasz/clusters/k8s/hosts==配置文件修改后如下:
[etcd]
10.104.10.201
10.104.10.202
[kube_master]
10.104.10.201
[kube_node]
10.104.10.202
NODE_PORT_RANGE=“80-65535”
因为是centos8系统,安装方式与centos7上有些区别,不修改安装方式,后续集群安装会遇到下面错误
修改==/etc/kubeasz/roles/prepare/tasks/centos.yml==配置文件中的安装方式
sed -i 's#yum:#dnf:#g' /etc/kubeasz/roles/prepare/tasks/centos.yml
# 查看编码
grep dnf /etc/kubeasz/roles/prepare/tasks/centos.yml
3.3 部署集群
这里采用一键安装方式
cd /etc/kubeasz
./ezctl setup k8s all
同样也可以分步骤安装
# 分步安装 需要分别执行01-07的yml cd /etc/kubeasz # 01-创建证书和环境准备 bash-5.1# ./ezctl setup k8s 01 # 02-安装etcd集群 bash-5.1# ./ezctl setup k8s 02 # 03-安装容器运行时(docker or containerd) bash-5.1# ./ezctl setup k8s 03 # 04-安装kube_master节点 bash-5.1# ./ezctl setup k8s 04 # 05-安装kube_node节点 bash-5.1# ./ezctl setup k8s 05 # 06-安装网络组件 bash-5.1# ./ezctl setup k8s 06 # 07-安装集群主要插件 bash-5.1# ./ezctl setup k8s 07 |
3.4 销毁集群
当k8s集群需要销毁时,通过指定集群名称进行销毁
cd /etc/kubeasz
./ezctl destroy k8s