环境信息

LSB Version:    n/a
Distributor ID:    HuaweiCloudEulerOS
Description:    Huawei Cloud EulerOS release 2.0 (West Lake)
Release:    2.0
Codename:    WestLake

EulerOS 是基于 CentOS 开发的,它同样使用 yum 作为软件包管理器,大部分配置和操作与 CentOS 类似。

本文是在线环境安装,如果服务器无法联网,可以通过下载rpm包的方式进行安装。

安装Docker

安装必要依赖

在安装Docker之前首先需要安装 fuse-overlayfsslirp4netns,是 Docker 的 Rootless 模式和容器相关技术的两个关键组件。fuse-overlayfs:用于支持 rootless 容器的分层文件系统;slirp4netns:用于在 rootless 容器中提供网络功能。

由于服务器默认的yum存储库不能安装,所以需要自己配置需要的yum存储库,这里使用阿里云提供的CentOS arm源

将以下内容追加到文件/etc/yum.repos.d/hce.repo末:

#additional packages that may be useful
[extras]
name=CentOS-7 - Extras
baseurl=http://mirrors.aliyun.com/centos-altarch/7/extras/aarch64/
gpgcheck=0
gpgkey=http://mirrors.aliyun.com/centos-altarch/7/os/aarch64/RPM-GPG-KEY-CentOS-7
enabled=1

安装 fuse-overlayfsslirp4netns

yum install fuse-overlayfs slirp4netns

安装成功后可继续下面的步骤

安装Docker

安装必要的系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2

配置docker-ce存储库

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

修改信息

sed -i 's|$releasever|7|g' /etc/yum.repos.d/docker-ce.repo
sed -i 's|$basearch|aarch64|g' /etc/yum.repos.d/docker-ce.repo

更新docker-ce存储库,并安装docker-ce

yum makecache fast
yum -y install docker-ce

启动docker服务并配置开机自启

systemctl start docker
systemctl enable docker

添加配置文件 /etc/docker/daemon.json,文件内容如下:

{
    "registry-mirrors": ["https://registry.example.com"],
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m",
        "max-file": "3"
    }
}

重载配置文件并重启docker服务,使配置生效

systemctl daemon-reload
systemctl restart docker

安装kubernetes

准备工作

禁用防火墙

systemctl stop firewalld
systemctl disable firewalld

systemctl stop firewalld:立即停止 firewalld 服务(防火墙管理服务)。
systemctl disable firewalld:禁用 firewalld 服务,使其在系统重启后不会自动启动。

关闭交换分区

swapoff -a
sed -i '/swap/d' /etc/fstab

swapoff -a:关闭所有的交换分区(swap)。Kubernetes 要求节点不能使用 swap 来避免性能问题。
sed -i '/swap/d' /etc/fstab:编辑 /etc/fstab 文件,删除任何有关 swap 的条目,确保系统重启时不会重新启用 swap。

加载内核模块

cat >/etc/modules-load.d/k8s.conf <<EOF
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter

cat >/etc/modules-load.d/k8s.conf:创建或修改 /etc/modules-load.d/k8s.conf 文件,向其中添加要加载的内核模块名称 overlaybr_netfilter

modprobe overlaymodprobe br_netfilter:立即加载这两个内核模块。

  • overlay:文件系统的一个重要模块,常用于容器存储。
  • br_netfilter:用于桥接网络过滤,它允许 Kubernetes 控制网络流量,尤其是在桥接接口上进行包过滤。

配置网络参数

配置网络转发和流量过滤功能,这些功能对 Kubernetes 的网络正常运行至关重要。

cat >/etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF
sysctl --system

cat >/etc/sysctl.d/k8s.conf:创建或修改 /etc/sysctl.d/k8s.conf 文件,设置系统的网络参数。

  • net.bridge.bridge-nf-call-iptables = 1:使内核在桥接网络设备上的流量也通过 iptables 进行过滤。
  • net.bridge.bridge-nf-call-ip6tables = 1:启用 IPv6 的流量过滤。
  • net.ipv4.ip_forward = 1:允许 IP 转发,使系统能够路由流量,这是 Kubernetes 网络通信所必需的。

sysctl --system:应用所有新的内核参数,激活配置。

调整 SELinux 模式

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

setenforce 0:将 SELinux 临时设置为 permissive(宽容)模式,即不强制安全策略,但会记录违规行为。
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config:将 SELinux 的永久模式设置为 permissive,确保系统重启后 SELinux 处于宽容模式。

安装Kubernetes

配置kubernetes存储库

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/
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
EOF

安装kubelet,kubeadm,kubectl

yum install -y kubelet kubeadm kubectl

启动kubelet服务并配置开机自启

systemctl start kubelet
systemctl enable kubelet
最后修改:2024 年 11 月 21 日
如果觉得我的文章对你有用,请随意赞赏