6 k8s service

1-service对象

image.png

image.png

查看服务

kubectl get svc

2-集群内部访问pod

要有一个deployment文件创建pod
一个service文件相当于


image.png

image.png

实质上service做了一个负载均衡


image.png

image.png

service文件三个port的作用
port
The port that the service is exposed on the service’s cluster ip (virsual ip). Port is the service port which is accessed by others with cluster ip.

即,这里的port表示:service暴露在cluster ip上的端口,:port 是提供给集群内部客户访问service的入口。

nodePort
On top of having a cluster-internal IP, expose the service on a port on each node of the cluster (the same port on each node). You'll be able to contact the service on any:nodePortaddress. So nodePort is alse the service port which can be accessed by the node ip by others with external ip.

首先,nodePort是kubernetes提供给集群外部客户访问service入口的一种方式(另一种方式是LoadBalancer),所以,:nodePort 是提供给集群外部客户访问service的入口。

targetPort
The port on the pod that the service should proxy traffic to.

targetPort很好理解,targetPort是pod上的端口,从port和nodePort上到来的数据最终经过kube-proxy流入到后端pod的targetPort上进入容器。

port、nodePort总结
总的来说,port和nodePort都是service的端口,前者暴露给集群内客户访问服务,后者暴露给集群外客户访问服务。从这两个端口到来的数据都需要经过反向代理kube-proxy流入后端pod的targetPod,从而到达pod上的容器内。

When a client connects to the VIP the iptables rule kicks in, and redirects the packets to the serviceproxy's own port (random port). The service proxy chooses a backend, and starts proxying traffic from the client to the backend. This means that service owers can choose any port they want without risk of collision.The same basic flow executes when traffic comes in through a nodePort or through a LoadBalancer, though in those cases the client IP does get altered

3 集群内部pod通信机制

先创建deployment再创建service,那么进入nginx容器打印printenv


image.png

先创建service 后创建deployment


image.png

MY_NGIXN_PORT的ip就是service的ip

4 实践service创建dns

image.png

从集群外部访问service

使用节点的ip进行访问,service对集群外部开放的端口


image.png

image.png

这里客户端访问节点的30001端口,转发到service的端口,再转发到pod的端口


image.png

ingress实践

image.png

image.png

image.png

实战Ingress控制器

k8s的service的nodePort端口规定要大于30000

image.png

image.png

image.png

image.png

image.png

image.png

image.png

完成hosts的映射


image.png

image.png

你可能感兴趣的:(6 k8s service)