一、Pod通路方式
ClusterIP Service(内部)
NodePort Service(由内而外)
LoadBalance Service(外部)
Ingress(外部)
1、ClusterIP
2、NodePort 3、LoadBalance 4、Ingress二、服務發現
Pod内服務調用:localhost:容器内應用端口
Pod間服務調用:服務名.namespace名:服務端口 (namespace名相當于域名)
外部服務調用: 負載均衡器IP:負載均衡器内映射端口或Ingress URL
1、pod間調用
建立service
vi service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
selector:
app: web_server
ports:
- protocol: TCP
port: 8080
targetPort: 80
使service生效
kubectl apply -f service.yaml
檢視service
運作busybox
kubectl run busybox --rm -it --image=busybox /bin/sh
通路nginx-svc
通過IP位址通路
檢視index.html
通過服務名通路
wget nginx-svc.default:8080
這就是一個K8s叢集裡Pod之間的通路。
2、外部通路Nginx(外部服務調用)
1)、修改yaml配置
端口為30000
2)、測試
http://192.168.127.136:30000/ 或者http://192.168.127.137:30000/
因為在虛拟機使用,使用的是192内網位址。如果是雲伺服器,則将外網位址替換192位址。
三、通路政策
支援的網絡協定(Calico、Canal等,flannel不支援政策控制)