# 经纬城市大脑边云计算平台 **Repository Path**: xuhcoder/eccgateway ## Basic Information - **Project Name**: 经纬城市大脑边云计算平台 - **Description**: 本项目是面向城市大脑研发,融合设备端、边缘侧和云侧多个计算节点通过网络互联而构成的松耦合分布式系统。分布式系统对用户透明,通常具有分布性、自治性、并行性和全局性等特征。通过控制和管理端边云分布式环境中的软件和硬件资源,提供给用户和城市大脑其他软件的接口和环境。 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 16 - **Forks**: 3 - **Created**: 2022-09-20 - **Last Updated**: 2024-04-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # eccgateway EndEdgeCloud web server. # 编译 eccgateway打包 在根目录执行以下命令 ```shell script bash build/build.sh ``` httpserver打包 进入cmd/httpserver目录,执行以下命令 ```shell script docker build -t 10.5.26.86:8080/zjlab/httpserver:$(date +%Y%m%d) . ``` # 部署 ClusterRoleBinding修改 ```shell script kubectl edit clusterrolebinding cluster-admin ``` k8s默认会创建clusterrolebinding,只绑定default下的名为default的serviceacount, 将其修改为绑定eec namespace下default的serviceaccount,如下所示 ```yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding ... name: cluster-admin ... subjects: - apiGroup: rbac.authorization.k8s.io kind: Group name: system:masters - kind: ServiceAccount name: default namespace: eec # 默认为default,修改为eec ``` 修改eccgateway-secret.yaml中的证书内容,在master节点上执行secret中的命令,将输出结果填写在secret中 若/etc/kubernetes/admin.conf不存在,则使用kubectl的证书$HOME/.kube/config ```yaml kubernetes-key: (cat /etc/kubernetes/admin.conf | grep client-key-data | awk '{print $2}') kubernetes-cert: (cat /etc/kubernetes/admin.conf | grep client-certificate-data | awk '{print $2}') kubernetes-ca: (cat /etc/kubernetes/admin.conf | grep certificate-authority-data | awk '{print $2}') ``` 将build/deploy目录下的文件拷贝至master节点,执行以下命令 ```shell script kubectl create -f mysql-deployment.yaml kubectl create -f mysql-service.yaml kubectl create -f httpserver-deployment.yaml kubectl create -f httpserver-service.yaml kubectl create -f eccgateway-deployment.yaml kubectl create -f eccgateway-service.yaml kubectl create -f clusterCRD.yaml kubectl create -f eecnode-configmap.yaml ``` 使用kubectl建立云端集群,并给云端节点打上云端集群的labels ```shell script kubectl create -f cloud-cluster.yaml kubectl label nodes {{节点名称}} kubeedge=cloudcore ``` ## 验证 当pod运行后,执行以下命令,若返回namespaces下的所有pod,即认为pod运行正常 ```shell script curl http://10.5.26.50:10193/kubernetes/api/v1/namespaces/default/pods ``` ## 本地调试步骤 1、在eccgateway的根目录下,编译二进制 ```shell script CGO_ENABLED=0 go build . ``` 2、将要连接的集群的证书和集群配置文件放至eccgateway代码库根目录的ssl文件夹中 3、编辑conf/app.conf,修改参数 ```shell script leaderElectionEnable = false ``` 4、启动eccgateway 关闭选举功能,同时将日志输出打印至标准输出中 ```shell script kubernetesCert=./ssl/ca.crt kubernetesKey=./ssl/ca.key \ KubernetesAddress=https://10.5.26.181:8443/ \ kubeconfig=ssl/config \ HarborUser=wangxj HarborPassword=Eec123456 \ HarborAddress=http://10.5.26.86:8080 \ ./eccgateway --leader-election-enable false --logtostderr true ```