全部產品
Search
文件中心

Container Service for Kubernetes:雲邊營運通訊組件Tunnel

更新時間:Jun 27, 2024

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