kubeasz安装kubernetes1.25.5

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 时间同步

从CentOS8.x开始,改为chrony同步时间
所有机器都安装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
dnf 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

因为当前是centos8环境安装的python3,而kubeasz中默认是centos7环境及安装python2,所以这里得配置个软链,否则后面的初始化集群时报找不到python。

kubeasz_Gathering_Facts_python_error.png

这里提前配置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上有些区别,不修改安装方式,后续集群安装会遇到下面错误

kubeasz_prepare_dnf_error.png

修改/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-创建证书和环境准备
./ezctl setup k8s 01
# 02-安装etcd集群
./ezctl setup k8s 02
# 03-安装容器运行时(docker or containerd)
./ezctl setup k8s 03
# 04-安装kube_master节点
./ezctl setup k8s 04
# 05-安装kube_node节点
./ezctl setup k8s 05
# 06-安装网络组件
./ezctl setup k8s 06
# 07-安装集群主要插件
./ezctl setup k8s 07

3.4 销毁集群

当k8s集群需要销毁时,通过指定集群名称进行销毁

cd /etc/kubeasz
./ezctl destroy k8s

3.5 引用 Reference

Kubernetes 1.25.4版本安装
kubeasz安装kubernetes1.25.5
CentOS8搭建nfs服务
k8s一键安装redis单机版
k8s一键安装mysql8单机版
Docker制作springboot运行应用镜像
k8s部署springboot应用
zookeeper集群安装
Nginx日志切割
Elasticsearch单机版本安装
Elasticsearch集群安装
springboot集成prometheus+grafana
安装Docker及学习
RabbitMQ集群安装

你可能感兴趣的:(运维,k8s,kubernetes,linux,运维,centos,kubernetes)