ARM架构下Kubernetes集群的安装与部署

背景

类型 版本
操作系统 CentOS Linux release 7.6.1810 (AltArch)
内核 Linux master 4.18.0-80.7.2.el7.aarch64
硬件配置 8核16G内存 * 2台
计算机名 master、node1
K8S版本 1.14.2
计算机名 公网IP 私网IP
master 116.63.180.97 192.168.0.113
node1 116.63.177.54 192.168.0.226

说明:

  1. 搭建K8s集群,每台节点均需要按照文档安装Docker及K8s的全部组件。
  2. 为验证集群搭建功能,至少需要两个节点。如果要验证亲和性调度功能,至少需要三台节点,安装配置工作在每台节点都需要执行。
  3. Master为集群管理节点,node1为集群计算节点。

一、配置华为云yum源

1.1 配置华为云yum源。

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes 
baseurl=https://mirrors.huaweicloud.com/kubernetes/yum/repos/kubernetes-el7-aarch64
enabled=1 
gpgcheck=1 
repo_gpgcheck=1 
gpgkey=http://mirrors.huaweicloud.com/kubernetes/yum/doc/yum-key.gpg
        http://mirrors.huaweicloud.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

说明:
若没有找到需要的k8s版本,可自行配置阿里yum源

1.2 刷新yum缓存。

yum makecache

二、安装配置K8S

主节点和计算节点都需要安装配置K8s。

2.1 安装Docker

2.1.1 安装yum-utils软件包并设置稳定的存储库。

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

2.1.2 安装特定版本Docker

要安装特定版本的Docker Engine,可以先通过命名查看存储库,列出可用版本,然后选择并安装:

yum list docker-ce --showduplicates | sort -r
yum list docker-ce-cli --showduplicates | sort -r

然后根据版本号安装(本文选择),例如:

yum install docker-ce-18.09.9-3.el7 docker-ce-cli-18.09.9-3.el7 containerd.io

也可以安装最新版,例如直接使用方式,本文选择的不是最新版本,安装的是指定版本18.09

yum install docker-ce docker-ce-cli containerd.io

2.1.3 安装完成启动

systemctl start docker

2.1.4 通过docker version查看版本

image

2.1.5 设置docker开机启动

systemctl enable docker

2.2 安装基础组件

2.2.1 启用NET.BRIDGE.BRIDGE-NF-CALL-IPTABLES内核选项。

sysctl -w net.bridge.bridge-nf-call-iptables=1

2.2.2 禁用交换分区。

swapoff -a
cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')
sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab

2.2.3 安装K8s组件。

yum install -y kubelet kubeadm kubectl kubernetes-cni

2.2.4 查看安装情况。

rpm -qa | grep kubelet
rpm -qa | grep kubeadm
rpm -qa | grep kubectl
rpm -qa | grep kubernetes-cni

例如看到如下内容代表安装成功

[root@master aarch64]# rpm -qa | grep kubelet
kubelet-1.14.2-0.aarch64
[root@master aarch64]# rpm -qa | grep kubeadm
kubeadm-1.14.2-0.aarch64
[root@master aarch64]# rpm -qa | grep kubectl
kubectl-1.14.2-0.aarch64
[root@master aarch64]# rpm -qa | grep kubernetes-cn
kubernetes-cni-0.7.5-0.aarch64

2.2.5 设置iptables。

echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf

2.2.6 开机启动kubelet服务。

systemctl enable kubelet

2.3 通过Docker下载其它组件

2.3.1 查看下载节点初始化所需镜像。

kubeadm config images list
[root@master aarch64]# kubeadm config images list
I1208 09:21:05.327540    2544 version.go:96] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get https://storage.googleapis.com/kubernetes-release/release/stable-1.txt: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
I1208 09:21:05.327591    2544 version.go:97] falling back to the local client version: v1.14.2
k8s.gcr.io/kube-apiserver:v1.14.2
k8s.gcr.io/kube-controller-manager:v1.14.2
k8s.gcr.io/kube-scheduler:v1.14.2
k8s.gcr.io/kube-proxy:v1.14.2
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1

K8s所需镜像版本有可能会变动,因此查看列表并以此匹配需要下载的Docker镜像,文档中的镜像版本仅做参考。
切忌直接把非arm架构机器上的镜像直接复制过来使用

2.3.2 从DockerHub上下载镜像(速度有点慢)

命令如下所示

docker pull docker.io/mirrorgooglecontainers/kube-apiserver-arm64:v1.14.2
docker pull docker.io/mirrorgooglecontainers/kube-controller-manager-arm64:v1.14.2
docker pull docker.io/mirrorgooglecontainers/kube-scheduler-arm64:v1.14.2
docker pull docker.io/mirrorgooglecontainers/kube-proxy-arm64:v1.14.2
docker pull docker.io/mirrorgooglecontainers/pause-arm64:3.1
docker pull docker.io/mirrorgooglecontainers/etcd-arm64:3.3.10
docker pull docker.io/coredns/coredns:1.3.1

下载完成后可以查看本地镜像

[root@master aarch64]# docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
mirrorgooglecontainers/kube-proxy-arm64                v1.14.2             5227f1c3c8a7        19 months ago       82.7MB
mirrorgooglecontainers/kube-apiserver-arm64            v1.14.2             091f78b1b081        19 months ago       207MB
mirrorgooglecontainers/kube-controller-manager-arm64   v1.14.2             e0fa3d206e49        19 months ago       155MB
mirrorgooglecontainers/kube-scheduler-arm64            v1.14.2             485238b2c4a5        19 months ago       82.2MB
coredns/coredns                                        1.3.1               7
                
            
QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空