码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【云原生】手把手教你在arm64架构系统,安装kubernetes及适配kubevela


    目录

    • arm64机器安装kubernetes
      • 安装docker
        • 下载阿里云docker yum 源
        • 安装docker
        • 设置开机启动docker
        • 设置docker的cgroup驱动,推荐systemd
        • 使配置生效,重启docker
        • 查看docker状态
        • 查看docker版本
      • 设置网络
        • 关闭防火墙
        • 三台主机全部关闭selinux
        • 关闭swap分区
        • 设置节点解析
        • 设置主机名
        • 将桥接的IPv4流量传递到iptables的链
      • 通过kubeadm工具安装kubernetes
        • 添加网络源
        • 安装kubectl,kubeadm,kubelet
        • 启动kubelet服务
        • 初始化集群
        • 设置kubectl
        • 设置集群网络(flannel)
        • 去除主节点污点
        • 查看节点状态
    • arm64机器安装kubevela
      • 安装cli
      • 安装core
      • 安装velaux


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

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

    arm64机器安装kubernetes

    安装docker

    下载阿里云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

    cat > /etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": ["https://apvimgsq.mirror.aliyuncs.com"],
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
       "max-size": "100m"
      },
      "storage-driver": "overlay2"
    }
    
    EOF
    

    在这里插入图片描述

    使配置生效,重启docker

    systemctl daemon-reload
    
    systemctl restart docker
    

    在这里插入图片描述

    查看docker状态

    service docker status
    

    在这里插入图片描述

    查看docker版本

    在这里插入图片描述


    设置网络

    关闭防火墙

    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

    添加网络源

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

    在这里插入图片描述

    安装kubectl,kubeadm,kubelet

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

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    启动kubelet服务

    systemctl enable kubelet
    

    在这里插入图片描述

    初始化集群

    kubeadm init \
      --apiserver-advertise-address=xxx.xxx.xxx.xxx \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.22.0 \
      --service-cidr=10.1.0.0/16 \
      --pod-network-cidr=10.244.0.0/16
    

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    设置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-
    

    在这里插入图片描述

    查看节点状态

    kubectl get nodes
    

    在这里插入图片描述


    arm64机器安装kubevela

    安装cli

    在对应的官方github项目地址中找到对应的机器版本即可,这里选择现在对应的arm64版本,并在解压后将vela文件移动到/usr/local/bin文件夹下即可。

    安装core

    这里在arm64类型的机器上进行安装core时,我选择使用helm的方式安装。在安装时对于arm64的机器需要选择使用对应的arm64的镜像。

    如果不做特殊的设置,在进行安装时发现gateway的pod无法正常运行,通过查看容器日志发现报exec format error ,这里的这个报错原因就是因为容器所使用的镜像是amd64而不是arm64的镜像导致的。

    通过查看artifacthub上的对应的参数发现可以通过以下参数来设置使用的镜像tag。
    在这里插入图片描述

    这里再查看dockerhub发现该镜像将arm64架构的镜像进行了单独tag。
    在这里插入图片描述

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

    安装velaux

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

    这里使用kubevela的官方Dockerfile来进行打镜像。

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

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

    在这里插入图片描述

    在这里插入图片描述

    通过查看dockerhub上对应镜像的文件,发现同一个tag的镜像中包含了不通架构的镜像分支,所以这里通过指定特定的架构的镜像分支来指定使用特定架构的镜像。

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    同理,在打velaux前端项目的镜像时也指定具体的digest即可,但是在打velaux镜像时发现其中设置了GITVERSION的参数将对应的值设置在了镜像/tmp/version中。

    但是在全局搜索中并未发现这个值有使用到,并且在打镜像时这个值不设置还会影响镜像的构建,所以这里选择将该行删除,然后即可正常构建镜像

    在这里插入图片描述

    版权声明:该内容由神州数码云基地团队编撰,转载请注明出处!
    微信公众号后台回复“云原生”,可加入技术交流群!

  • 相关阅读:
    【Tomcat专题】Tomcat如何打破双亲委派机制?
    Shopee卖家如何寻找货源渠道?
    谈论 ModSecurity 和新的 Coraza WAF
    坚持三月,刷完了阿里P8技术官整理的这3份1000道Java高频面试题笔记,成功上岸阿里P7职位
    JUC并发编程与源码分析笔记02-线程基础知识复习
    Object.defineProperty用法
    【SpringBoot】常用的的各种注解(二):Controller层相关注解
    QT使用时,报错说No suitable kits can be found
    C++:STL之Vector实现
    psycopg2.pool.PoolError: connection pool exhausted
  • 原文地址:https://blog.csdn.net/CBGCampus/article/details/127094334
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号