1. k8s-service三種常用類型
-
ClusterIP:集群內部使用
-
NodePort:對外暴露應用(集群外)
-
LoadBalancer:對外暴露應用,適用公有雲
1.1 ClusterIP:集群內部使用
-
ClusterIP:默認,分配一個穩定的IP地址,即VIP,只能在集群內部訪問。
-
示例代碼:
spec: type: ClusterIP ports: - port: 80 protocol: TCP targetPort: 80 selector: app: web
-
示例圖片
1.2 NodePort:對外暴露應用(集群外)
-
NodePort:在每個節點上啟用一個端口來暴露服務,可以在集群
- 外部訪問。也會分配一個穩定內部集群IP地址。
- 訪問地址:<任意NodeIP>:
- 端口范圍:30000-32767
-
示例代碼:
spec: type: NodePort ports: - port: 80 protocol: TCP targetPort: 80 nodePort: 30001 selector: app: web
-
示例圖片
-
NodePort:
會在每台Node上監聽端口接收用戶流量,在實際情況下,對用戶暴露的只會有一個IP和端口,那這么多台Node該使用哪台讓用戶訪問呢?
這時就需要前面加一個公網負載均衡器為項目提供統一訪問入口了。 -
示例圖片
1.3 LoadBalancer:對外暴露應用,適用公有雲
-
LoadBalancer:
與NodePort類似,在每個節點上啟用一個端口來暴露服務。除此之外,Kubernetes會請求底層雲平台(例如阿里雲、騰訊雲、AWS等)上的負載均衡器,將每個Node([NodeIP]:[NodePort])作為后端添加進去。
-
示例圖像