一、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配置
vi service.yaml
端口為30000
2)、測試
http://192.168.127.136:30000/ 或者http://192.168.127.137:30000/
因為在虛擬機使用,使用的是192內網地址。如果是雲服務器,則將外網地址替換192地址。
三、訪問策略
支持的網絡協議(Calico、Canal等,flannel不支持策略控制)
podSelector
ingress/egress