环境信息
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-overlayfs
和 slirp4netns
,是 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-overlayfs
和 slirp4netns
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
文件,向其中添加要加载的内核模块名称 overlay
和 br_netfilter
。
modprobe overlay
和 modprobe 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