【云原生】如何在arm64架构系统上安装kubernetes及适配kubevela?-姐姐爱做菜漫画

本期作者 

GO开发工程师 冯康

为了适应国内越来越多的国产化服务器以及配套产品,许多软件也诞生了适配国内服务器的新需求。

本文将描述在华为服务器arm64架构系统上,如何安装适配kubernetes以及kubevela。

一、arm64机器安装kubernetes

 1.1 安装dockers 

# 下载阿里云docker yum 源

wget:

https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

# 安装docker 

yum -y install docker-ce

# 设置开机启动docker

systemctl start docker

systemctl enable docker

# 设置docker的cgroup驱动

这里推荐systemd

# 使配置生效,重启docker

systemctl daemon-reload

systemctl restart docker

# 查看docker状态

service docker status

# 查看docker版本

 1.2 设置网络 

# 关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

# 三台主机全部关闭selinux

# 关闭swap分区

# 设置节点解析

cat >> /etc/hosts << EOF

xxx.xxx.xxx.xx master

EOF

# 设置主机名

vim /etc/hosts

hostname master

# 将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-ip6tables = 1

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

EOF

sysctl --system

 通过kubeadm工具安装kubernetes 

# 添加网络源

# 安装kubectl,kubeadm,kubelet

yum install -y kubelet-1.22.0 kubeadm-1.22.0 kubectl-1.22.0

# 启动kubelet服务

systemctl enable kubelet

# 初始化集群

# 设置kubectl

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 设置集群网络(flannel)

kubectl apply -f

https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

# 去除主节点污点

kubectl describe node master | grep Taint

kubectl taint node master

node-role.kubernetes.io/master:NoSchedule-

二、arm64机器安装kubevela

 2.1 安装cli 

在对应的官方github项目地址中,找到对应的机器版本即可。

这里选择现在对应的arm64版本,并在解压后将vela文件移动到/usr/local/bin文件夹下即可

2.2 安装core 

这里在arm64类型的机器上安装core时,我选择使用helm的方式安装。

在安装时对于arm64的机器需要选择使用对应的arm64的镜像。

如果不做特殊的设置,在进行安装时发现gateway的pod无法正常运行,通过查看容器日志发现报exec format error 。

这里的这个报错原因就是因为容器使用的镜像是amd64而不是arm64的镜像导致的。

通过查看artifacthub上的对应的参数,发现可以通过以下参数来设置使用的镜像tag:

这里再查看dockerhub发现该镜像将arm64架构的镜像进行了单独tag:

所以在进行helm安装时,我们通过命令行—set来指定具体的镜像tag即可指定到对应的镜像。

 2.3 安装velaux 

这里我们选择私有的镜像,由于要适配arm64架构的机器需要使用源码来进行打镜像,这里使用kubevela的官方Dockerfile来打镜像。

在打apiserver的镜像时使用Dockerfile.apiserver。

通过查看Dockerfile,发现其中指定了platform参数来指定具体的镜像架构平台,但却只指定了构建过程的镜像(golang镜像),没有设定运行的镜像架构(alpine镜像)。

通过查看dockerhub上对应镜像的文件,发现同一个tag的镜像中包含了不通架构的镜像分支。

所以这里通过指定特定架构的镜像分支来指定使用特定架构的镜像。

同理,在打velaux前端项目的镜像时,也指定具体的digest即可。

但是在打velaux镜像时发现其中设置了GITVERSION的参数,将对应的值设置在了镜像/tmp/version中。

但是在全局搜索中并未发现这个值有使用到,并且在打镜像时这个值不设置还会影响镜像的构建。

这里我们选择将该行删除,就可以正常构建镜像啦~

我们致力于用数字技术重构企业价值,助力企业实现数字化转型升级!

公众号 搜索【神州数码云基地】,后台回复Odoo,加入Odoo技术交流群!

知乎 搜索【神州数码云基地】,收看更多Odoo相关回答与文章!  

【Elycoris】 Sae Niijima [27P 56MB]
2023-06-15
东宝的游戏事业部门TOHO Games,宣布了将于2021年年内推出三部《哥斯拉》相关的游戏《RUN GODZILLA》、《GODZILLA DESTRUCTION》、《GODZILLA BATTLE LINE》。其中,《RUN GODZILLA...
2022-10-28
兔子Zzz不吃胡萝卜 甜甜向日葵女孩[31P-311MB]
2023-05-21
欢庆地平线系列迈入第十年!Celebrate the 10th Anniversary of Forza Horizon!FORZA HORIZON 10TH ANNIVERSARY本人入坑是在地平线4,正好趁着地平线十周年庆典这个机会体验一下地平线1~3的风情。把俺的游戏建议写出来,给大家看看,让大家也能以最节省点数的方式提车(・∀・)注意事项:1.假设车库中一辆车也没有(事实上再穷也不至于穷成这样哈,这里是在讨论极端情况)2.不考虑任何赞赏白嫖车(因为像各级别劲敌排行榜前5%这类赞赏对于一般
2022-10-15
【Keekihime】 Kongou [68P 104MB]
2023-05-27
「九言」拉毗-胜利女神:妮姬[74P13V-2.24GB]
2023-05-19
【Lady Kay】 Jeanne dArc [25P 217MB]
2023-05-21
「梨瑾瑾」水手 [23P-240MB]
2023-05-23
【PlantLily】 Office Neko [22P 60MB]
2022-04-14
「流年不停」赛马娘 大和赤骥cosplay
2021-06-05