云容器引擎通過將Kubernetes網絡和VPC深度集成,提供了穩定高性能的容器網絡,能夠滿足多種復雜場景下工作負載間的互相訪問。
- 每個命名空間下,創建的服務數量不能超過6000個。此處的服務對應kubernetes的service資源,即工作負載所添加的服務。
- 容器開啟hostPort或hostNetwork網絡模式后,若需對外提供服務,則需要給容器所在節點開啟對應端口的安全組(containerPort)。
Kubernetes中每一個工作負載會有一個或多個實例(Pod),每個實例(Pod)的IP地址由網絡插件動態隨機分配(Pod重啟后IP地址會改變)。為屏蔽這些后端實例的動態變化和對多實例的負載均衡,引入了Service這個資源對象。
Service是一種資源,提供了我們訪問單個或多個容器應用的能力。每個服務在其生命周期內,都擁有一個固定的IP地址和端口。每個服務對應了后臺的一個或多個Pod,通過這種方式,客戶端就不需要關心Pod所在的位置,方便后端進行方便的Pod擴容、縮容等操作。
用戶在Kubernetes中可以部署各種容器,其中一部分是通過HTTP、HTTPS協議對外提供七層網絡服務,另一部分是通過TCP、UDP協議提供四層網絡服務。而Kubernetes定義的Service資源就是用來管理集群中四層網絡的服務訪問。
根據創建Service的type類型不同,可分成如下模式:
- ClusterIP:默認類型,為服務分配集群虛擬IP,此時集群內部的pod可以通過服務名稱尋址到服務的集群虛擬IP地址,集群外無效。
- NodePort:在每個節點上為服務分配靜態端口號,此時如果在集群外部訪問任何一個節點的IP地址加指定的端口號,kube-proxy會將流量轉發到服務的集群虛擬IP,再由虛擬IP尋址到Pod。
- LoadBalancer:通過云服務供應商提供的load balancer向外部暴露服務,由指定的load balancer負責對NodePort與ClusterIP服務的路由。
ClusterIP和NodePort類型的Service,在不同云服務商或是自建集群中的行為表現通常情況下相同。而LoadBalancer類型的Service,由于使用了云服務商的負載均衡進行服務暴露,云服務商會圍繞其負載均衡的能力提供不同的額外功能。例如,控制負載均衡的網絡類型,后端綁定的權重調節等,詳情請參見本章相關文檔。
在CCE中,支持以下類型的互聯互通:
- 集群內訪問(ClusterIP)
工作負載暴露給同一集群內其他工作負載訪問的方式,可以通過“集群內部域名”訪問。集群內部域名格式為“<自定義的訪問方式名稱>.<工作負載所在命名空間>.svc.cluster.local”,例如“nginx.default.svc.cluster.local”。詳細請參見集群內訪問(ClusterIP)。
- 節點訪問(NodePort)
節點訪問 ( NodePort)是指在每個節點的IP上開放一個靜態端口,通過靜態端口對外暴露服務。節點訪問 ( NodePort )會路由到ClusterIP服務,這個ClusterIP服務會自動創建。通過請求 <NodeIP>:<NodePort>,可以從集群的外部訪問一個NodePort服務。詳細請參見節點訪問(NodePort)。
- 負載均衡 ( LoadBalancer )
通過彈性負載均衡從公網訪問工作負載,與彈性IP方式相比提供了高可靠的保障,一般用于系統中需要暴露到公網的服務。訪問方式由公網彈性負載均衡ELB服務地址以及設置的訪問端口組成,例如“10.117.117.117:80”。詳細請參見負載均衡(LoadBalancer)。
七層負載均衡(Ingress)
通常情況下,service和pod的IP僅可在集群內部訪問。集群外部的請求需要通過負載均衡轉發到service在Node上暴露的NodePort上,然后再由kube-proxy通過邊緣路由器 (edge router) 將其轉發給相關的Pod或者丟棄,而Ingress就是為進入集群的請求提供路由規則的集合。
Ingress可以給service提供集群外部訪問的URL、負載均衡、SSL終止、HTTP路由等。為了配置這些Ingress規則,集群管理員需要部署一個Ingress controller,它監聽Ingress和service的變化,并根據規則配置負載均衡并提供訪問入口。
Ingress的組成部分:
- Nginx:實現負載均衡到pod的集合。
- Ingress Controller:從集群api獲取services對應pod的ip到nginx配置文件中。
- Ingress:為nginx創建虛擬主機。
Ingress的創建與管理請參見Ingress概述。
網絡策略(NetworkPolicy)
網絡策略(NetworkPolicy)是一種關于pod間及pod與其他網絡端點間所允許的通信規則的規范。
NetworkPolicy資源使用標簽選擇pod,并定義選定pod所允許的通信規則,詳細請參見NetworkPolicy。
網絡底層基礎設施
- VPC
虛擬私有云(Virtual Private Cloud,以下簡稱VPC),是基于創建的自定義私有網絡,不同的專有網絡之間徹底邏輯隔離。可以為云服務器、云數據庫和負載均衡等構建隔離的、用戶自主配置和管理的虛擬網絡環境,提升用戶云上資源的安全性,簡化用戶的網絡部署。
您可以在VPC中定義安全組、VPN、IP地址段、帶寬等網絡特性。用戶可以通過VPC方便地管理、配置內部網絡,進行安全、快捷的網絡變更。同時,用戶可以自定義安全組內與組間彈性云主機的訪問規則,加強彈性云主機的安全保護。

ELB
彈性負載均衡(Elastic Load Balance,簡稱ELB)是將訪問流量根據轉發策略分發到后端多臺服務器的流量分發控制服務。彈性負載均衡可以通過流量分發擴展應用系統對外的服務能力,通過消除單點故障提升應用系統的可用性。

彈性負載均衡支持經典型、共享型兩種負載均衡:
? 經典型負載均衡:適用于訪問量較小,應用模型簡單的web業務。
? 共享型負載均衡:適用于訪問量較大的web業務,提供基于域名和URL的路由均衡能力,實現更加靈活的業務轉發。