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組件,云端組件無需做任何修改。
本文具體實現原理如下圖所示。
當邊緣節點和云端網絡斷連或者弱連接狀態下,邊緣運維通道可能無法正常工作。
當您無意中刪除或者停止了運維通道使用的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 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
集群版本v1.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