邊緣計算實踐體驗

所謂邊緣計算

邊緣計算Edge Computing的概念由此而生。2014年,歐洲電信標準協會(ETSI)成立了移動邊緣計算規範工做組(ETSI Mobile Edge Computing Industry Specification Group),開始推進相關的標準化工做。2016年,ETSI把此概念擴展爲多接入邊緣計算 (Multi-Access Edge Computing,MEC),並綜合考慮FMC(固網/移動融合)的場景需求。2016年4月,3GPP SA2* 也正式接受MEC,將之列爲5G架構的關鍵技術。,簡單的理解就就是在數據源(用戶端……)等系統的邊緣進行計算的能力。Cisco公司認爲,邊緣計算即霧計算,其背景是解決愈來愈多的應用正遷移到「雲」上,依賴強大的集中控制系統,對着洗數據進行集中處理,如圖所示,然而,隨着數據量的增長,咱們的計算能力須要極大的提高,於是,邊緣計算的興起,和傳統的中心化思惟不一樣,他的主要計算節點以及應用分佈式部署在靠近終端的數據中心,這使得在服務的響應、可靠性方面仍是高於傳統中心化的雲計算概念。根據ETSI的定義,多接入邊緣計算是在靠近人、物或數據源頭的網絡邊緣側,經過融合了 網絡、計算、存儲、應用等核心能力的開放平臺,就近提供邊緣智能服務,來知足行業數字 化在敏捷聯接、實時業務、數據優化、應用智能、安全與隱私保護等方面的關鍵需求。
邊緣計算實踐體驗node

具體來講

邊緣計算和傳統的中心化思惟不一樣,他的主要計算節點以及應用分佈式部署在靠近終端的數據中心,這使得在服務的響應性能、仍是可靠性方面都是高於傳統中心化的雲計算,具體而言,邊緣計算能夠理解爲是指利用靠近數據源的邊緣地帶來完成的運算程序。
若是用更通用的術語來表示即:鄰近計算或者接近計算(Proximity Computing)
邊緣計算實踐體驗git

區別

  • 雲計算的數據中心在覈心網絡中,離數據源遠(網絡跳數高)
  • 邊緣計算的數據中心更加靠近數據源。由上圖Cisco公司的示意圖,咱們能夠發現,相較於終端設備到達核心網絡須要經過層層設備,而到達邊緣層設備在這條通路當中,反而更近一些
  • 雲計算是集中式大數據處理,邊緣計算則能夠理解爲邊緣式大數據處理。
    • 不一樣的是,只是這一次,數據不用再傳到遙遠的雲端,在邊緣側就能解決。
  • 邊緣計算更適合實時的數據分析和智能化處理,相較單純的雲計算也更加高效並且安全
    • 邊緣計算和雲計算二者實際上都是處理大數據的計算運行的一種方式。
    • 邊緣計算更準確的說應該是對雲計算的一種補充和優化

應用實踐

原先因爲項目須要咱們採用k8s進行集羣管理,安裝k8s的痛苦歷歷在目,以及k8s對性能的開銷和對計算機性能的要求限制了我想象的空間,不能否認k8s在集羣的管理上確實有其獨到之處,但要應用到其餘領域上還有很長一段距離,不過,感謝rancher公司提供的新產品,k3s,比k8s少了5s,其對k8s高屋建瓴,爲邊緣計算帶來了無限的可能。
經過k3s來進行邊緣計算部署,由於該產品很是之輕量,其號稱僅僅須要40M的硬盤空間,和512M的內存空間便可進行部署
接下來將經過一系列的部署來體驗超輕量的集羣控制技術的實踐。目前我僅僅使用兩個節點來部署該系統,一個是集羣,一個是agent。這兩個節點都是docker容器,規格均爲4g,4cpu,經過如下命令下載k3s的操做軟件
$ wget https://github.com/rancher/k3s/releases/download/v0.3.0/k3sgithub

Connecting to github.com (192.30.253.112:443)
Connecting to github-production-release-asset-2e65be.s3.amazonaws.com (52.216.112.11:443)
k3s 100% |****| 38.7M 0:00:00 ETAdocker

正如其所描述,這套系統也僅僅有38.7M,修改操做屬性,以得到執行權限,而後在後臺運行shell

$ sudo chmod +x k3s
sudo ./k3s server &

如下是運行日誌:api

[1] 247
INFO[0000] Preparing data dir /var/lib/rancher/k3s/data/56c346dbd23e9399b9ccb062cc8d71110f96eed4cd8d138a7c097e4c651d12a6
[node1] (local) root@192.168.0.23 ~
$ INFO[2019-04-13T08:14:05.448051228Z] Starting k3s v0.3.0 (9a1a1ec)
INFO[2019-04-13T08:14:06.398250769Z] Running kube-apiserver --watch-cache=false --cert-dir /var/lib/rancher/k3s/server/tls/temporary-certs --allow-privileged=true --authorization-mode Node,RBAC --service-account-signing-key-file /var/lib/rancher/k3s/server/tls/service.key --service-cluster-ip-range 10.43.0.0/16 --advertise-port 6445 --advertise-address 127.0.0.1 --insecure-port 0 --secure-port 6444 --bind-address 127.0.0.1 --tls-cert-file /var/lib/rancher/k3s/server/tls/localhost.crt --tls-private-key-file /var/lib/rancher/k3s/server/tls/localhost.key --service-account-key-file /var/lib/rancher/k3s/server/tls/service.key --service-account-issuer k3s --api-audiences unknown --basic-auth-file /var/lib/rancher/k3s/server/cred/passwd --kubelet-client-certificate /var/lib/rancher/k3s/server/tls/token-node.crt --kubelet-client-key /var/lib/rancher/k3s/server/tls/token-node.key
INFO[2019-04-13T08:14:08.761712689Z] Listening on :6443
INFO[2019-04-13T08:14:09.608524354Z] Node token is available at /var/lib/rancher/k3s/server/node-token
INFO[2019-04-13T08:14:09.608562854Z] To join node to cluster: k3s agent -s https://172.18.0.6:6443 -t ${NODE_TOKEN}
INFO[2019-04-13T08:14:10.774070472Z] Connecting to proxy url="wss://localhost:6443/v1-k3s/connect"
INFO[2019-04-13T08:14:09.718944649Z] Run: k3s kubectl
INFO[2019-04-13T08:14:09.719024250Z] k3s is up and running
INFO[2019-04-13T08:14:09.769336884Z] Logging containerd to /var/lib/rancher/k3s/agent/containerd/containerd.log
INFO[2019-04-13T08:14:10.779764787Z] Handling backend connection request [node1]安全

從日誌中,咱們能夠發現一些有意思的信息,好比網絡

  • Node token is available at /var/lib/rancher/k3s/server/node-token 咱們將去尋找token的路徑
  • To join node to cluster: k3s agent -s https://172.18.0.6:6443 -t ${NODE_TOKEN} 這個將做爲agent加入的指令,而這個IP:172.18.0.6,則是因爲我使用的docker container的namespace(命名空間)隔離致使的
    • 這個命名空間使鏡像之間的網絡隔離
    • 爲了使流量互通,將該IPNAT至192.168.0.23
  • Listening on :6443,已經開啓6443端口做爲監聽端口
  • k3s kubectl,能夠運行kubectl命令行
  • waiting for node node1 CIDR not assigned yet,管理節點已經準備完成,等待agent的加入
    好了,咱們使用如下命令去尋找token
    邊緣計算實踐體驗
    目前尚未節點接入
    邊緣計算實踐體驗
    不過別急,咱們即將接入新的設備:)在咱們的agent節點中,咱們仍然要經過wget的形式將k3s這款軟件下載,
    邊緣計算實踐體驗
    驗證兩節點的連通性
    邊緣計算實踐體驗
    使用如下命令,將該節點加入到server端
    $ ./k3s agent -s https://192.168.0.23:6443 -t K10dff6042746f035482131dcc04299b24b2aa06b801585519d49a8741e164f95a7::node:246085e87b9e0ff4e85cfc4d5bf7cea6

    一樣的,咱們仍是能夠從日誌中發現agent一步步加入的過程架構

邊緣計算實踐體驗
讓咱們回頭看一下server端的日誌,清楚的體現agent加入的過程和加入後統計的結果分佈式

邊緣計算實踐體驗
鏡像的加入簡單和方便,藉助docker技術,咱們能夠快速對鏡像進行管理。好比根據物聯網場景,在IOT設備上安裝agent根據業務需求,定向收集某些環境參數,在IOT環境下雖然將面對海量節點,但並不妨礙咱們對這些節點的管理,極簡的server設計,徹底可使咱們在手機上就能夠監控到數據。甚至能夠說咱們一臺手機就是一個物聯網機房的監控中心,隨着5G環境的推動,這樣設計給咱們帶來了無限的可能。就像下圖,在深圳機械會展中使人眼前一亮的應用。
邊緣計算實踐體驗
經過海量傳感器對數據進行邊緣計算,以後上傳到雲服務中對現象進行分析,若是咱們docker鏡像計算足夠快,在應對突發狀況會更加來去自如,在大型互聯網企業,這類的監控中心架構非常常見,然而具體落地到工業界還有必定的距離,藉助邊緣計算,徹底能夠打通最後的一千米,實現工業+互聯網。
咱們不難發現邊緣計算爲產業內的參與者和大衆提供的創新潛能和出色價值:終端用戶經過他, 不管是鏈接網絡仍是獲取內容,都能得到更優和更爲個性化的應用體驗;運營商經過邊緣計算平臺將加強的網絡能力開放給第三方OTT提供商或者應用開發者,並將他們的應用和服務提供給移動用戶、企業和垂直行業,也有望從新定義自身在整個產 業鏈中的角色,進而實現新的收入、提供更多高附加值的服務並 開拓新的市場機會;OTT提供商和獨立的應用開發商,也能在邊緣計算的開放標準平臺之上快速開發新的應用、縮短開發週期, 在爲終端用戶提供近乎零延時的極速體驗的同時,爲自已創造更高、更快的收益。邊緣計算將成爲雲服務提供商與運營商的結合點,無數跨界式的創新,正在此處醞釀着 「一舉成名」的爆發力。
嘿嘿,將來可期。

參考資料:

  1. 邊緣計算研究報告,洪學海 ××× 郭樹盛,中科院計算技術研究所信息技術戰略研究中心
  2. [各說個話]何謂邊緣計算:https://makerpro.cc/2018/12/what-is-edge-computing/
  3. 面向5G的邊緣計算,英特爾引領智能化網絡轉型, Intel
  4. k3s官方網站:https://k3s.io/
  5. docker環境 ,play with docker:https://labs.play-with-docker.com/
相關文章
相關標籤/搜索