树莓派-搭建边缘计算云平台

描述

【软件安装版本】【集群安装(是) 】

版本号 文档编写 文档审核 创建日期 修改日期
1.0 2022.4.10  
         
         

部署规划与架构

规划:(集群:网络规划,服务器规划)

三台树莓派,安装centos7,arm64版本,对应三台机器

192.168.0.100 k8smaster

192.168.0. 101 k8snode1

192.168.0. 102 k8snode2

架构(集群:拓扑图)

支撑业务

   用于树莓派项目自动化运维的集群

运行环境安装

硬件

   192.168.0.100 k8smaster: 树莓派4b+ 8g,

   192.168.0.101 k8snode1: 树莓派4b+ 8g,

   192.168.0. 102 k8snode2树莓派4b+ 8g  

操作系统

   CentOS-7-arrch64

依赖

   docker-ce 18.09.9

   k8s v1.16.0

环境配置

 设置ssh,可ssh访问,安装

资源配置

   192.168.0. 100 k8smaster:    8g内存,CPU 4核,120g硬盘

   192.168.0. 101 k8snode1:   4g内存,CPU 2核,64g硬盘

   192.168.0. 102 k8snode2:   4g内存,CPU 2核,64g硬盘

集群部署部署

安装包获取与安装

操作系统:http://centos.mirror.digitalpacific.com.au/8/BaseOS/aarch64/

安装教程:树莓派安装centos操作系统_水上冰石的博客-CSDN博客_树莓派能装centos吗

检测依赖环境是否就绪

   查看docker和kubectl是否安装

   Kubectl 已安装,先卸载

   Kubectl get nodes

kubeadm reset -f
rm -rf /etc/cni/net.d
ipvsadm --clear
modprobe -r ipip
lsmod
yum remove -y kubelet kubeadm kubectl
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd

   docker info,如果已安装,先卸载

[root@localhost etc]# systemctl stop docker
[root@localhost etc]# sudo systemctl stop docker.socket
[root@localhost etc]#  yum list installed |grep docker
[root@localhost etc]# rpm -qa |grep docker
[root@localhost etc]# yum -y remove docker*.aarch64
[root@localhost etc]# rm -rf /var/lib/docker

安装集群

   3.1 安装docker

所有节点:

安装docker-ce 18.09.9(所有机器)
** 安装docker所需的工具**
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
配置阿里云的docker源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
指定安装这个版本的docker-ce
docker-ce-cli-18.09.9-3.el7 这个也加上,不然会自动安装高版本的docker命令行。
sudo yum install -y docker-ce-18.09.9-3.el7 docker-ce-cli-18.09.9-3.el7
启动docker
sudo systemctl enable docker && systemctl start docker
————————————————
版权声明:本文为CSDN博主「shelutai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shelutai/article/details/122620084

3.2 安装k8s

环境配置

设置k8s环境准备条件(所有机器)
关闭防火墙
sudo systemctl disable firewalld &&
sudo systemctl stop firewalld
关闭selinux
临时禁用selinux
sudo setenforce 0
永久关闭 修改/etc/sysconfig/selinux文件设置
sudo sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
禁用交换分区
sudo swapoff -a
永久禁用,打开/etc/fstab注释掉swap那一行。
sudo sed -i 's/.*swap.*/#&/' /etc/fstab
修改内核参数
cat <  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

主节点

安装k8s v1.16.0
注意,这个只在master管理节点
执行配置k8s阿里云源
cat < /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
安装kubeadm、kubectl、kubelet
yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0
启动kubelet服务
systemctl enable kubelet && systemctl start kubelet

3.3其他节点 安装

安装kubeadm、kubectl、kubelet
yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0
启动kubelet服务
systemctl enable kubelet && systemctl start kubelet

3.4 主节点初始化

kubeadm init --apiserver-advertise-address=192.168.65.130 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --service-cidr=10.96.0.0/12  --pod-network-cidr=10.244.0.0/16 --token-ttl 0

出现下面图为完成

3.5 主节点操作

mkdir -p $HOME/.kube
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  sudo chown $(id -u):$(id -g) $HOME/.kube/config

3.6数据节点操作(从生成的日志里拷贝)

kubeadm join 192.168.65.130:6443 --token bzm6no.zazo7em8anknc1ms
    --discovery-token-ca-cert-hash xxxxxxx

3.7 主节点操作

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

验证

   主节点下操作

kubectl get nodes

需要等待几分钟,才会ready

物联网物联网

​编辑

主节点修改标签

kubectl label no k8snode1 kubernetes.io/role=k8snode1
kubectl label no k8snode2 kubernetes.io/role=k8snode2

注意事项

常见问题与解决方式

1.1 targetcli-2.1.53-1.el7_9.noarch 是 targetcli-2.1.fb49-1.el7.noarch 的副本

1,2 安装冲突

Transaction check error:
  file /usr/bin/kubectl from install of kubectl-1.16.0-0.aarch64 conflicts with file from package kubernetes-client-1.5.2-0.7.git269f928.el7.centos.aarch64
错误概要
-------------
[root@k8smaster ~]# yum remove kubernetes-client-1.5.2-0.7.git269f928.el7.centos.aarch64

node节点:报错

kubeadm join 192.168.0.200:6443 --token kllwou.lhjtvabxo194fi2r     --discovery-token-ca-cert-hash sha256:ae4e31db3519691137eba1fd566eb073f2007da215f76e6b612ed17522b9e26b
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

解决方案:参考:https://www.jianshu.com/p/4d2a84afebaa

yum install bridge-utils  -y
echo br_netfilter > /etc/modules-load.d/br_netfilter.conf
modprobe br_netfilter

重启电脑

附件

K8s切换源地址:阿里云开源镜像站资源目录

参考博客:

1. Docker彻底卸载:https://blog.csdn.net/qq_29726869/article/details/113353315

2. https://blog.csdn.net/shelutai/article/details/122620084

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分