一、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