KubeSphere 最佳实战:Kubernetes 集群节点 openEuler 22.03 LTS SP3 系统初始化指南
2024 年云原生运维实战文档 99 篇原创计划 第 021 篇 |KubeSphere 最佳实战「2024」系列 第 002 篇
你好,欢迎来到运维有术。
今天分享的内容是 KubeSphere 最佳实战「2024」 系列文档中的 Kubernetes 集群节点 openEuler 22.03 LTS SP3 系统初始化指南。
KubeSphere 最佳实战「2024」 系列文档实战环境选择的操作系统为 openEuler 22.03 LTS SP3。本文将详细介绍 openEuler 22.03 LTS SP3 系统安装完成后的初始化配置。
主机名 IP CPU 内存 系统盘 数据盘 用途 ksp-control-1 192.168.9.111 8 16 40 100 KubeSphere/k8s-control-plane ksp-control-2 192.168.9.112 8 16 40 100 KubeSphere/k8s-control-plane ksp-control-3 192.168.9.113 8 16 40 100 KubeSphere/k8s-control-plane 合计 3 24 48 120 300实战服务器配置(架构1:1复刻小规模生产环境,配置略有不同)
实战环境涉及软件版本信息
- 操作系统:openEuler 22.03 LTS SP3 x86_64
1. 前置条件
在 openEuler 官网下载 openEuler 22.03 LTS SP3 安装镜像。并采用最小化的方式,安装 openEuler。
https://mirror.sjtu.edu.cn/openeuler/openEuler-22.03-LTS-SP3/ISO/x86_64/openEuler-22.03-LTS-SP3-x86_64-dvd.iso
- 系统安装完后,编辑网卡配置文件,正确配置网络
可参考的标准配置如下:
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.9.x
NETMASK=255.255.255.0
GATEWAY=192.168.9.254
ONBOOT=yes
2. 操作系统基础配置
2.1 配置主机名
hostnamectl hostname ksp-control-1
2.2 配置 DNS
DNS 我一般使用 114.114.114.114
,请根据实际情况配置。
echo "nameserver 114.114.114.114" > /etc/resolv.conf
2.3 配置服务器时区
- 配置服务器时区为 Asia/Shanghai。
timedatectl set-timezone Asia/Shanghai
2.4 配置时间同步
- 安装 chrony 作为时间同步软件
yum install chrony
- 编辑配置文件
/etc/chrony.conf
,修改 ntp 服务器配置
vi /etc/chrony.conf
# 删除所有的 pool 配置
pool pool.ntp.org iburst
# 增加国内的 ntp 服务器,或是指定其他常用的时间服务器
pool cn.pool.ntp.org iburst
# 上面的手工操作,也可以使用 sed 自动替换
sed -i 's/^pool pool.*/pool cn.pool.ntp.org iburst/g' /etc/chrony.conf
- 重启并设置 chrony 服务开机自启动
systemctl enable chronyd --now
- 验证 chrony 同步状态
# 执行查看命令
chronyc sourcestats -v
正确执行后,输出结果如下 :
$ chronyc sourcestats -v
.- Number of sample points in measurement set.
/ .- Number of residual runs with same sign.
| / .- Length of measurement set (time).
| | / .- Est. clock freq error (ppm).
| | | / .- Est. error in freq.
| | | | / .- Est. offset.
| | | | | | On the -.
| | | | | | samples. \
| | | | | | |
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
111.230.189.174 18 11 977 -0.693 6.795 -1201us 2207us
electrode.felixc.at 18 10 917 +2.884 8.258 -31ms 2532us
tick.ntp.infomaniak.ch 14 7 720 +2.538 23.906 +6176us 4711us
time.cloudflare.com 18 7 913 +0.633 9.026 -2543us 3142us
2.5 关闭系统防火墙
systemctl stop firewalld && systemctl disable firewalld
2.6 禁用 SELinux
openEuler 22.03 SP3 最小化安装的系统默认启用了 SELinux,为了减少麻烦,我们禁用节点的 SELinux。
# 使用 sed 修改配置文件,实现彻底的禁用
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 使用命令,实现临时禁用,这一步其实不做也行,KubeKey 会自动配置
setenforce 0
2.7 安装系统软件包
- 安装系统基本工具包
# 安装 tar 包,不装的话后面会报错。openEuler 也是个奇葩,迭代这么多版本了,默认居然还不安装 tar
yum install tar
- 安装 Kubernetes 系统依赖包
在所有 Kubernetes 集群节点,执行下面的命令,安装 Kubernetes 需要的系统依赖包。
# 安装 Kubernetes 系统依赖包
yum install curl socat conntrack ebtables ipset ipvsadm
3. 磁盘配置
每台服务器新增一块数据盘 /dev/sdb,用于 Containerd 和 Kubernetes Pod 的持久化存储。
为了满足用户在上线后数据盘容量不足时,可以实现动态扩容的需求。本文采用了 LVM 的方式配置磁盘(实际上,本人维护的生产环境,几乎不用 LVM)。
3.1 使用 LVM 配置磁盘
- 创建 PV
pvcreate /dev/sdb
- 创建 VG
vgcreate data /dev/sdb
- 创建 LV
# 使用所有空间,VG 名字为 data,LV 名字为 lvdata
lvcreate -l 100%VG data -n lvdata
3.2 格式化磁盘
mkfs.xfs /dev/mapper/data-lvdata
3.3 磁盘挂载
- 手工挂载
mkdir /data
mount /dev/mapper/data-lvdata /data/
- 开机自动挂载
tail -1 /etc/mtab >> /etc/fstab
3.4 创建数据目录
- 创建 OpenEBS 本地数据根目录
mkdir -p /data/openebs/local
- 创建 Containerd 数据目录
mkdir -p /data/containerd
- 创建 Containerd 数据目录软连接
ln -s /data/containerd /var/lib/containerd
说明: KubeKey 到 v3.1.1 版为止,一直不支持在部署的时候更改 Containerd 的数据目录,只能用这种目录软链接的方式,变相增加存储空间(也可以提前手工安装 Containerd)。
4. 自动化 Shell 脚本
文章中所有操作步骤,已全部编排为自动化脚本,因篇幅限制,不在此文档中展示。
知识星球 运维有术 会员请到专属代码仓库下载(价值内容,仅星球会员专享)。
以上,就是我今天分享的全部内容。下一期分享的内容还没想好,敬请期待开盲盒。
如果你喜欢本文,请分享、收藏、点赞、评论! 请持续关注 @运维有术,及时收看更多好文!
免责声明:
- 笔者水平有限,尽管经过多次验证和检查,尽力确保内容的准确性,但仍可能存在疏漏之处。敬请业界专家大佬不吝指教。
- 本文所述内容仅通过实战环境验证测试,读者可学习、借鉴,但严禁直接用于生产环境。由此引发的任何问题,作者概不负责!
Get 本文实战视频(请注意,文档视频异步发行,请先关注)
欢迎加入 「知识星球|运维有术」 ,获取更多的 KubeSphere、Kubernetes、云原生运维、自动化运维、AI 大模型等实战技能。未来运维生涯始终有我坐在你的副驾。
版权声明
- 所有内容均属于原创,感谢阅读、收藏,转载请联系授权,未经授权不得转载。