注册公司需要交多少税,东莞网站优化公司,济宁市住房和城乡建设局网站,工厂网站建设费用文章目录 1、kubeedge架构2、基础服务提供 负载均衡器 metallb2.1、开启ipvc模式中的strictARP2.2、部署metalb2.2.1、创建IP地址池2.2.2、开启二层转发#xff0c;实现在k8s集群节点外访问2.2.3、测试 3、部署cloudcore3.1、部署cloudcore3.2、修改cloudcore的网络类型 4、部… 文章目录 1、kubeedge架构2、基础服务提供 负载均衡器 metallb2.1、开启ipvc模式中的strictARP2.2、部署metalb2.2.1、创建IP地址池2.2.2、开启二层转发实现在k8s集群节点外访问2.2.3、测试 3、部署cloudcore3.1、部署cloudcore3.2、修改cloudcore的网络类型 4、部署edgecore 前提:已经搭建好一套k8s集群。
1、kubeedge架构 2、基础服务提供 负载均衡器 metallb
由于需要为cloudcore与edeecore提供通信地址建议使用LB为cloudcOre提供公网IP或K8S集群节点相同网段lP地址实际生产中使用的是公网IP地址。
2.1、开启ipvc模式中的strictARP
kubectl edit configmap -n kube-system kube-proxy如果不开启ipvs中的strictARP那么数据在集群之外无法访问到。
#重新运行使得上述改变生效
kubectl rollout restart daemonset kube-proxy -n kube-system2.2、部署metalb
注意版本v0.13.5 为cloudcore提供初始化的网络ip方便跟edgecore进行通信连接。
#运行此命令将metalb部署到k8s集群中
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.5/config/manifests/metallb-native.yaml查看状态
kubectl get pods n metallb-system2.2.1、创建IP地址池
为了给服务分配一个IP首先创建IPAddressPool 网段地址池通过IPAddressPools分配的IP构成IP池MetalLB使用该IP池将IP分配给服务。
vim first-pool.yamlapiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:name: first-poolnamespace: metallb-system
spec:addresses:- 172.23.144.240-172.23.144.250kubectl apply -f first-pool.yamlkubectl get ipaddresspool -n metallb-system2.2.2、开启二层转发实现在k8s集群节点外访问
2层配置 2层模式是最简单的配置在许多情况下您不需要任何特定于协议的配置只需要IP地址。
2层模式不需要将IP绑定到工作节点的网络接口。它的工作原理是直接响应本地网络上的ARP请求将机器的MAC地址提供给客户端。
为了播发来自IPAddressPool的IP必须将L2Advertisement实例关联到IPAAddressPool。
vim l2forward.yamlapiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:name: examplenamespace: metallb-system
kubectl apply -f l2forward.yaml将所有的地址通告出去。
2.2.3、测试
部署一个nginx deployment应用。 service的类型是loadbalancernginx-svc获得一个与k8s集群节点相同网段的ip地址它是从创建的地址池中分配的这个ip地址是自动分配的一般是从网段的第一个开始分配的也就是240.
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx
spec:selector:matchLabels:app: nginxreplicas: 1 # 指定Pod副本数template:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:latest # 使用nginx镜像
---
apiVersion: v1
kind: Service
metadata:name: nginx-svc
spec:type: LoadBalancerports:- port: 80targetPort: 80selector:app: nginxkubectl apply -f nginx.yamlkubectl get pod
kubectl get svc集群内任意节点外网ip32290端口访问 测试完毕后记着删除
kubectl delete -f nginx.yaml3、部署cloudcore
3.1、部署cloudcore
具体部署方法详见kubesphere官网进行开启边缘节点功能。
确保集群中已经部署好cloudcore
kubectl get pod -n kubeedge3.2、修改cloudcore的网络类型
修改cloudcore的网络类型为loadbalance此时它的外部ip会自动填充。
修改前
kubectl get svc -n kubeedge修改后
#修改cloudcore的服务网络
kubectl edit svc cloudcore -n kubeedge
#查看cloudcore的服务网络
kubectl get svc -n kubeedge -owide修改边缘节点的容忍度
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}]}]}}}}]kubectl get daemonset -n metallb-system | grep -v NAME | awk {print $1} | xargs -n 1 kubectl patch daemonset -n metallb-system --typejson -p[{op:replace, path:/spec/template/spec/affinity, value:{nodeAffinity:{requiredDuringSchedulingIgnoredDuringExecution: {nodeSelectorTerms: [{matchExpressions: [{key:node-role.kubernetes.io/edge,operator:DoesNotExist}]}]}}}}]下载安装metrics-server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yamlkubectl get pods -n kube-system设置不要证书
kubectl patch deploy metrics-server -n kube-system --typejson p[{op:add,path: /spec/template/spec/containers/0/args/-,value:--kubelet-insecure-tls}]4、部署edgecore
获取token从master节点
#master节点获取token
keadm gettoken#边缘节点添加token变量
TOKEN09a9f5b068f206ce30934076eb3d045fa826a0fa17d4050e4bf4ad7b4bcda103.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MTE2MjM5NTh9.vdzI6snHBGPO-sHdnJqZWUerXbq5-p2-GZX1jRRgUZ4#边缘节点添加server
SERVER