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 系统安装完成后的初始化配置。
实战服务器配置(架构1:1复刻小规模生产环境,配置略有不同)
主机名 | 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 |
实战环境涉及软件版本信息
- 操作系统:openEuler 22.03 LTS SP3 x86_64
1. 前置条件
在 openEuler 官网下载 openEuler 22.03 LTS SP3 安装镜像。并采用最小化的方式,安装 openEuler。
代码语言:bash复制https://mirror.sjtu.edu.cn/openeuler/openEuler-22.03-LTS-SP3/ISO/x86_64/openEuler-22.03-LTS-SP3-x86_64-dvd.iso
- 系统安装完后,编辑网卡配置文件,正确配置网络
可参考的标准配置如下:
代码语言:ini复制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 配置主机名
代码语言:shell复制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
正确执行后,输出结果如下 :
代码语言:shell复制$ 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 关闭系统防火墙
代码语言:shell复制systemctl stop firewalld && systemctl disable firewalld
2.6 禁用 SELinux
openEuler 22.03 SP3 最小化安装的系统默认启用了 SELinux,为了减少麻烦,我们禁用节点的 SELinux。
代码语言:bash复制# 使用 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 需要的系统依赖包。
代码语言:shell复制# 安装 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 格式化磁盘
代码语言:shell复制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 本文实战视频(请注意,文档视频异步发行,请先关注)
- B 站|运维有术
欢迎加入 「知识星球|运维有术」 ,获取更多的 KubeSphere、Kubernetes、云原生运维、自动化运维、AI 大模型等实战技能。未来运维生涯始终有我坐在你的副驾。
版权声明
- 所有内容均属于原创,感谢阅读、收藏,转载请联系授权,未经授权不得转载。