Network Service Mesh發布0.2版本,來Run示例玩玩
- 2019 年 12 月 4 日
- 筆記
先決條件
確保你有以下依賴運行NSM(Network Service Mesh):
- 一個Kubernetes集群 – 好的選擇包括:
- kind – 通常是最簡單的選擇
- vagrant – 有用的,如果你需要在節點級別調試
- gke
- azure
- aws
- kubectl
- helm
安裝
helm repo add nsm https://helm.nsm.dev/ # Add the latest release nsm helm repo helm install nsm/nsm # Install the nsm infrastructure in your Kubernetes Cluster
如果你需要更多關於Helm的幫助。
https://github.com/networkservicemesh/networkservicemesh/blob/master/docs/guide-helm.md
你應該能夠確認安裝
kubectl get pods | grep nsm
輸出:
nsm-admission-webhook-584c8dd8cb-rj754 1/1 Running 0 107s nsm-vpp-forwarder-274f9 1/1 Running 0 105s nsm-vpp-forwarder-6dvld 1/1 Running 0 106s nsm-vpp-forwarder-zc799 1/1 Running 0 105s nsmgr-7mvq4 3/3 Running 0 106s nsmgr-bkmwk 3/3 Running 0 106s nsmgr-lrvwg 3/3 Running 0 107s
運行
nsm helm repo有三個示例:
helm search nsm | grep -i example
輸出:
nsm/icmp-responder 0.2.0 0.2.0 Endpoints and Clients for ICMP Responder Use Case nsm/vpn 0.2.0 0.2.0 Endpoints and Clients for VPN Use Case nsm/vpp-icmp-responder 0.2.0 0.2.0 Endpoints and Clients for VPP ICMP Responder Use Case
- icmp-responder – 一個簡單的示例,連接一個應用Pod客戶端到網路服務。
- vpp-icmp-responder – 一個使用memif將基於vpp的Pod連接到網路服務的簡單示例。
- vpn – 一個模擬應用Pod客戶端連接到一個網路服務的示例,該網路服務實現為一個模擬vpn用例的鏈 https://networkservicemesh.io/docs/examples/icmp-responder/ https://networkservicemesh.io/docs/examples/vpp-icmp-responder/ https://networkservicemesh.io/docs/examples/vpn/
icmp-respondershi示例
對於NSM(Network Service Mesh)來說,最簡單的情況是通過vWire將客戶機連接到提供網路服務的另一個Pod。我們將這種情況稱為「icmp-responder」示例,因為它允許客戶端通過vWire ping端點的IP地址。

部署
利用Run指令(上面提到得)安裝NSM基礎設施,然後鍵入:
https://networkservicemesh.io/docs/setup/run/
helm install nsm/icmp-responder
它所完成的
這將安裝兩個部署(Deployment):

並使每個客戶端獲得一個連接到其中一個端點的vWire。NSM處理網路服務發現和路由,以及vWire的「連接處理」來設置所有這些。

為了使這個案例更有趣,使用PodAntiAffinity將Endpoint1和Endpoint2部署在兩個單獨的節點上,因此NSM必須演示在相同節點上的客戶機和端點之間,以及不同節點上的客戶機和端點之間串連vWire的能力。
驗證
首先驗證icmp-responder示例的Pod都是啟動和運行:
kubectl get pods | grep icmp-responder
要查看icmp-responder示例在跑,你可以運行:
curl -s https://raw.githubusercontent.com/networkservicemesh/networkservicemesh/master/scripts/nsc_ping_all.sh | bash
更多示例
社區在examples/中維護了其它的示例
https://github.com/networkservicemesh/examples