openEuler安装k8s1.23.17 - 实践

以下是基于3台服务器(1主2从)在openEuler 23.09上部署K8s集群的详细步骤,明确每步操作的执行节点,已提前安装docker,openEuler 23.09安装docker直通车https://blog.csdn.net/wdy_2099/article/details/154344916
环境说明
| 节点角色 | IP地址 | 主机名(建议设置) |
|---|---|---|
| Master | 192.2.12.76 | master-node |
| Worker1 | 192.2.12.77 | worker-node-1 |
| Worker2 | 192.2.101.3 | worker-node-2 |
一、通用配置(所有节点执行)
1. 关闭SELinux、防火墙、禁用Swap
# 关闭SELinux(临时+永久)
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 关闭防火墙(临时+永久)
systemctl stop firewalld
systemctl disable firewalld
# 禁用Swap(临时+永久)
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
2. 配置内核参数(K8s网络依赖)
# 加载必要内核模块
cat <<EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF
modprobe overlay
modprobe br_netfilter
modprobe ip_vs
modprobe nf_conntrack
# 配置网络参数(IP转发、桥接过滤)
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system # 生效配置
3. 配置主机名与hosts(避免DNS解析问题)
# Master节点设置主机名
hostnamectl set-hostname master-node
# Worker1设置主机名
hostnamectl set-hostname worker-node-1
# Worker2设置主机名
hostnamectl set-hostname worker-node-2
# 所有节点添加hosts映射(替换为实际IP)
cat <<EOF | tee -a /etc/hosts
192.2.12.76 master-node
192.2.12.77 worker-node-1
192.2.101.3 worker-node-2
EOF
4. 时间同步(避免证书过期)
dnf install -y chrony
systemctl start chronyd
systemctl enable chronyd
chronyc sources # 验证同步状态(出现^*表示成功)
执行明细:
[root@172 home]# dnf install -y chrony
OS 11 kB/s | 2.5 kB 00:00
everything 12 kB/s | 2.6 kB 00:00
EPOL 12 kB/s | 2.6 kB 00:00
debuginfo 12 kB/s | 2.6 kB 00:00
source 11 kB/s | 2.5 kB 00:00
update 12 kB/s | 2.5 kB 00:00
update-source 410 B/s | 2.5 kB 00:06
Package chrony-4.3-2.oe2309.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
[root@172 home]# systemctl start chronyd
[root@172 home]# systemctl enable chronyd
[root@172 home]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? tick.ntp.infomaniak.ch 1 6 365 53 +200ms[ +200ms] +/- 150ms
^- tock.ntp.infomaniak.ch 1 6 367 53 +211ms[ +211ms] +/- 111ms
^- time.cloudflare.com 3 6 377 53 +229ms[ +229ms] +/- 112ms
5. 添加K8s国内仓库
# 添加阿里云K8s仓库
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
# 清理缓存
dnf clean all
dnf makecache
执行明细:
[root@worker-node-1 yum.repos.d]# cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
6. 安装k8s组件
dnf install -y kubelet-1.23.17 kubeadm-1.23.17 kubectl-1.23.17 --disableexcludes=kubernetes
# 启用kubelet(暂不启动,初始化后自动启动)
systemctl enable kubelet
执行明细:
[root@worker-node-1 yum.repos.d]# dnf install -y kubelet-1.23.17 kubeadm-1.23.17 kubectl-1.23.17 --disableexcludes=kubernetes
Kubernetes 2.3 kB/s | 454 B 00:00
Kubernetes 21 kB/s | 2.6 kB 00:00
Importing GPG key 0x13EDEF05:
Userid : "Rapture Automatic Signing Key (cloud-r
浙公网安备 33010602011771号