文档

云边运维通信组件Tunnel

更新时间:

ACK Edge集群版本小于1.26时,集群创建完成后,系统会默认部署edge-tunnel-server/edge-tunnel-agent组件,用于创建云端和边缘之间的运维通道,为您提供云端访问边缘端的能力。本文介绍ACK Edge集群中的边缘运维通道关联组件和功能,以及如何扩展边缘监控能力。

背景信息

  • ACK Edge集群版本大于等于1.26时,集群新增Raven组件功能,通过Raven组件实现云端访问边缘端的能力。更多信息,请参见通过使用云边通信Raven组件

  • 原生Kubernetes集群中,云端管控组件需要直接访问边缘节点的Kubelet来执行运维命令,或者云端运维监控组件metrics-server需要从云端拉取边缘的监控指标数据。在ACK Edge集群的场景下,当您的边缘节点部署在内网时,云端无法直接访问边缘节点。

  • edge-tunnel-server采用Deployment模型部署在云端节点上。edge-tunnel-agent采用Daemonset模型部署在边缘节点上。

  • 无论是Kubernetes原生运维命令(例如:kubectl logs或kubectl exec),还是metrics-server组件,都是通过访问边缘节点的kubelet组件的10250和10255端口来下发运维命令的。

功能说明

  • 创建集群时,您需要选择购买至少1台云端ECS节点,用于部署边缘运维通道组件edge-tunnel-server

  • 为创建安全加密的公网运维通道,系统会为edge-tunnel-server组件创建的服务对象购买一个SLB,边缘节点上的edge-tunnel-agent将通过该SLB与edge-tunnel-server建立安全加密的运维通道。

  • 当云端组件(例如:kube-apiserver、metrics-server)访问边缘节点10250和10255端口时,ACK Edge集群默认会将访问请求自动导流到edge-tunnel-server组件,云端组件无需做任何修改。

  • 本文具体实现原理如下图所示。G-11

说明
  • 当边缘节点和云端网络断连或者弱连接状态下,边缘运维通道可能无法正常工作。

  • 当您无意中删除或者停止了运维通道使用的SLB实例,边缘运维通道将无法正常工作。

  • 低版本集群(例如:v1.16.9-aliyunedge.1)的云端组件(例如:metrics-server)和edge-tunnel-server需要部署在同一个ECS节点,组件才能正常工作。从v1.18.8-aliyunedge.1集群版本开始,支持云端组件(例如:metrics-server)和edge-tunnel-server部署在不同ECS节点。

配置监控边缘节点的非默认端口

业务上云过程中需要迁移原系统中的运维监控方案到云上,实现云下系统到云上的无缝迁移,需要访问边缘节点的非默认端口(即非10250和10255端口)来收集监控数据。以云端访问边缘节点的9051和9052端口为例说明如何配置边缘节点的非默认端口。

说明

9051端口监听协议为HTTP,9052端口监听协议为HTTPS。

集群版本v1.18.8-aliyunedge.1

云端组件访问边缘节点非默认端口的监控数据只支持通过HTTP协议访问。您可以通过更新kube-system/edge-tunnel-server-cfg configmapdnat-ports-pair字段来配置,字段格式为:非默认端口=10264。

通过云端组件访问边缘节点9051端口的监控数据, 您需要做以下配置:

cat <<EOF | kubectl apply -f
apiVersion: v1
data:
  dnat-ports-pair: '9051=10264'
kind: ConfigMap
metadata:
  name: edge-tunnel-server-cfg
  namespace: kube-system
EOF

集群版本v1.20.11-aliyunedge.1

云端组件访问边缘节点非默认端口的监控数据支持通过HTTP协议和HTTPS协议访问,同时还支持监控边缘节点的Localhost Endpoint。

  • 通过更新kube-system/edge-tunnel-server-cfg configmaphttp-proxy-ports字段配置HTTP协议访问,字段格式为:非默认端口1,非默认端口2。

  • 通过更新kube-system/edge-tunnel-server-cfg configmaphttps-proxy-ports字段配置HTTPS协议访问,字段格式为:非默认端口1,非默认端口2。

  • 通过更新kube-system/edge-tunnel-server-cfg configmaplocalhost-proxy-ports字段配置如何监控边缘节点的Localhost Endpoint。字段默认配置“10250,10255,10266,10267”四个端口,新增端口可在后面增加。

通过云端组件访问边缘节点9051和9052端口的监控数据,并监控边缘节点的Localhost Endpoint,以边缘节点业务监听地址https://127.0.0.1:8080为例,您需要做以下配置:

cat <<EOF | kubectl apply -f
apiVersion: v1
data:
  http-proxy-ports: "9051"
  https-proxy-ports: "9052, 8080"
  localhost-proxy-ports: "10250, 10255, 10266, 10267, 8080"
kind: ConfigMap
metadata:
  name: edge-tunnel-server-cfg
  namespace: kube-system
EOF