ACK Edge叢集版本小於1.26時,系統會在叢集建立完成後,預設部署edge-tunnel-server/edge-tunnel-agent組件,用於建立雲端和邊緣之間的營運通道,為您提供雲端訪問邊緣的能力。本文介紹ACK Edge叢集中的邊緣營運通道關聯組件和功能,以及如何擴充邊緣監控能力。
背景資訊
edge-tunnel-server以Deployment形式部署在雲端節點上。edge-tunnel-agent以DaemonSet形式部署在邊緣節點上。
說明當ACK Edge叢集版本大於等於1.26時,叢集新增Raven組件功能,通過Raven組件實現雲端訪問邊緣端的能力。更多資訊,請參見通過使用跨域營運通訊組件Raven。
原生Kubernetes叢集中,雲端控制面組件需要直接存取邊緣節點的kubelet來執行營運命令,或者雲端營運監控組件metrics-server需要從雲端拉取邊緣的監控指標資料。在ACK Edge叢集的情境下,當您的邊緣節點部署在內網時,雲端無法直接存取邊緣節點。
無論是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組件,無需修改雲端組件。
具體實現原理如下圖所示。

當邊緣節點和雲端網路出現斷連或者串連不穩定時,邊緣營運通道可能無法正常工作。
當您無意中刪除或者停止了營運通道使用的SLB執行個體,邊緣營運通道將無法正常工作。
在低版本叢集(例如1.16.9-aliyunedge.1)中,為確保組件正常運行,雲端組件(例如metrics-server)和edge-tunnel-server需要部署在同一個ECS節點上。而從1.18.8-aliyunedge.1叢集版本開始,支援雲端組件(例如metrics-server)和edge-tunnel-server部署在不同的ECS節點上。
配置監控邊緣節點的非預設連接埠
在業務上雲過程中,需要訪問邊緣節點的非預設連接埠(即非10250和10255連接埠)來收集監控資料。以雲端訪問邊緣節點的9051和9052連接埠為例,說明如何配置非預設連接埠。
9051連接埠監聽協議為HTTP,9052連接埠監聽協議為HTTPS。
叢集版本1.20.11-aliyunedge.1
雲端組件訪問邊緣節點非預設連接埠的監控資料支援通過HTTP協議和HTTPS協議訪問,同時還支援監控邊緣節點的Localhost Endpoint。
通過更新
kube-system/edge-tunnel-server-cfg configmap的http-proxy-ports欄位配置HTTP協議訪問,欄位格式為:非預設連接埠1,非預設連接埠2。通過更新
kube-system/edge-tunnel-server-cfg configmap的https-proxy-ports欄位配置HTTPS協議訪問,欄位格式為:非預設連接埠1,非預設連接埠2。通過更新
kube-system/edge-tunnel-server-cfg configmap的localhost-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叢集版本1.18.8-aliyunedge.1
雲端組件訪問邊緣節點非預設連接埠的監控資料僅支援HTTP協議。您可以通過更新kube-system/edge-tunnel-server-cfg configmap的dnat-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