arm k8s 部署 ingress

环境:
    系统:arm64
    硬件:树莓派4B 4G
    集群架构:1 master 2 node
    K8S版本:1.16.2
    ingress版本:0.30.0


原理不介绍,只讲部署经验

部署方式:
    1、线上直接安装
    2、本地离线安装

本次方式:本地离线安装
        一般来说arm版本的K8s第三方控制器,都是用离线安装手段,主要原因有:
        1、在线安装由于不可描述原因无法直接拉取到官方镜像
        2、即使能拉取到官方镜像,官方镜像也有可能不能用,原因是通过官方的yaml安装,极大的可能拉取到的是amd架构的镜像
        根据经验,K8S控制器大多都有提供arm架构镜像,然而很多yaml文件不会判断系统架构,直接默认amd架构拉取镜像,导致直接拉取无法使用

注意事项:
    由于上述原因,需要单独下载arm架构镜像,Google直接搜索官方git即可下载,本次使用镜像为:quay.io/kubernetes-ingress-controller/nginx-ingress-controller-arm64:0.30.0 
    由于默认配置文件启动的镜像是amd架构的,没有arm64结尾,所以需要修改名称,方法有两种:
        1、在yaml配置文件中修改启动镜像名称为arm64的名称
        2、修改arm64镜像名称为amd架构的镜像名称
    其实本质都一样,我是直接修改了镜像名称为:quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.30.0

安装:
    1、下载官方的yaml配置文件https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml和    
    https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/baremetal/service-nodeport.yaml,也可以直接写,当然我偷懒了,自己写可以根据一下结构写
        1、ingress的namespace配置文件:namespace.yaml,给ingress单独开个ns空间
        2、nodePort配置文件:该配置文件起的是一个service,主要是给ingress提供网络空间服务的,同时也可以在次自定义端口等
        3、ingress的控制器deploy配置文件:作用就是起ingress服务了
        4.ingress集群规则配置文件

    2、修改好下载的ingress镜像名称,要和配置文件中image名称一致

    3、直接apply启动即可

总结:
    安装没遇到什么报错,唯一的就是刚启动的时候没有修改名称报错images pull error,如果在启动的时候有任何错误,可以通过logs或者describe查看具体描述

结果:

root@k8smaster:~# kubectl get pod -n ingress-nginx
NAME                                        READY   STATUS    RESTARTS   AGE
nginx-ingress-controller-7f74f657bd-hrzjz   1/1     Running   0          29m

 

你可能感兴趣的:(树莓派4B,Kubernetes)