seo门户网站,photoshop手机版安卓,秦皇岛网站建设找汉狮,快速建站套餐文章目录 前言一、安装k8s平台二、部署kubeedge1.部署MetalLB(可选)2.cloud3.edge4. 部署nginx到edge端 总结参考 前言
本文主要介绍kubeedge v1.17.0的安装过程
主要环境如下表
应用版本centos7.0k8s1.28.2kubeedge1.17.0docker24.0.8centos7.0 一、安装k8s平台
本文主要参… 文章目录 前言一、安装k8s平台二、部署kubeedge1.部署MetalLB(可选)2.cloud3.edge4. 部署nginx到edge端 总结参考 前言
本文主要介绍kubeedge v1.17.0的安装过程
主要环境如下表
应用版本centos7.0k8s1.28.2kubeedge1.17.0docker24.0.8centos7.0 一、安装k8s平台
本文主要参考 centos7 部署k8s 1.28.2 K8s集群搭建教程
根据上面的过程部署好k8s平台 注意 k8s版本不一样 部署的要求不一样 如k8s 1.24以后版本需要装cri-docker等工具 docker安装需要配置阿里云容器镜像加速服务
二、部署kubeedge
1.部署MetalLB(可选) 是支持LoadBalancer的负载均衡器能够帮助我们映射一个ip地址直接访问pod的服务 修改kube-proxy 将对应的位置修改为如图所示的
kubectl edit configmap -n kube-system kube-proxyk8s部署MetalLB 这里部署的版本为0.13.5
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.5/config/manifests/metallb-native.yaml配置MetalLB 新建两个文件
# advertise.yaml
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:name: l2advernamespace: metallb-system
spec:ipAddressPools: # 如果不配置则会通告所有的IP池地址- ip-pool# ip-pool.yaml
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:name: ip-poolnamespace: metallb-system
spec:addresses:- 192.168.184.120-192.168.184.140 # 根据虚拟机的ip地址来配置 这些ip地址可以分配给k8s中的服务kubectl apply -f advertise.yaml
kubectl apply -f ip-pool.yaml2.cloud
下载keadm 进入github搜索kubeedge下载对应版本 1.17.0下载地址 根据需要部署的平台下载对应的版本 解压keadm 并 移动到 /usr/local/bin下 (移动到这个目录下可以再任何目录下执行keadm命令)
tar -zxvf keadm-v1.17.0-linux-amd64.tar.gz
mv keadm-v1.17.0-linux-amd64/keadm/keadm /usr/local/bin 初始化cloudcore
# 192.168.184.120 ip-pool中没有被分配的ip地址
keadm init --advertise-address192.168.184.120 --set iptablesHanager.modeexternal执行成功结果
修改cloudcore的svc 修改服务的暴露方式让外部可以连接 也可以使用NodePort但是在初始化edgecore时就需要修改对应的ip映射了上面初始化advertise-address也需要修改
kubectl edit svc cloudcore -n kubeedge 5. 打标签 因为边缘计算的硬件条件都不好这里我们需要打上标签让一些应用不扩展到edge节点上去 这里有三个应用需要打 kube-system kube-flannel metallb-system 将下面命令中的两个位置替换即可
kubectl get daemonset -n kube-system |grep -v NAME |awk {print $1} | xargs -n 1 kubectl patch daemonset -n kube-system --typejson -p[{op: replace,path: /spec/template/spec/affinity,value:{nodeAffinity:{requiredDuringSchedulingIgnoredDuringExecution:{nodeSelectorTerms:[{matchExpressions:[{key:node-role.kubernetes.io/edge,operator:DoesNotExist}]}]}}}}]3.edge
cloud获取token
keadm gettokenedge端加入 设置token和server方便输入命令
echo $SERVER # 可以查看对应的
#加入到cloudcore中
keadm join --remote-runtime-endpointunix:///var/run/cri-dockerd.sock --cloudcore-ipport$SERVER --token$TOKEN --kubeedge-version1.17.0 --with-mqtt成功截图如下 注意 docker和cri-docker的安装 cni网络插件一定要记得安装 下载该文件上传
source install.sh # 将脚本文件放入环境
install_cni_plugins # 执行安装cni命令如果下载速度慢可以在有条件的情况下载好 注释掉 wget 再上传 后执行该方法即可
建议 这个子网范围 我觉得应该改成k8s再 init 设置的子网范围
4. 部署nginx到edge端
nginx部署的yaml文件 vi nginx-deployment.yaml
#nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-metallb
spec:replicas: 1 selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:nodeName: k8s-edge # 边缘端的名字 kubectl get node里面的containers:- name: nginximage: nginx:latestports:- containerPort: 80---
apiVersion: v1
kind: Service
metadata:name: nginx-service
spec:selector:app: nginxports:- name: http port: 80targetPort: 80type: LoadBalancer总结 kubeedge 不同版本的部署方法会有不同的地方k8s也是有需要注意的地方 看官方文档一定要仔细我edge端没有安装cni网络插件导致一直无法成功连接 之前看得文档和视频对应的版本都比较老了edge端不需要安装cni插件也可直接连接成功 参考
centos7 部署k8s 1.28.2 K8s集群搭建教程 kubeedge部署 写的挺详细的 kubeedge v1.17官方文档 官方文档一定要看仔细 b站 kubeedge部署教程