以一个网页应用的访问为例
首先在部署阶段,需要启动两个容器WebApp容器和Mysql容器。
整个部署过程:
- 启动Mysql,mysql-rc.yaml在之后给出,创建对应的Service
- 启动myweb, myweb-rc.yaml在之后给出,创建对应的Service,并通过NodePort方式暴露服务
- 通过浏览器访问网页
此时,如果从外部访问服务,则流程如图:
有三种访问方式:
过程原理
从Service到Pod
k8s在创建服务的时候会为服务分配一个虚拟的IP地址,然后客户端通过访问这个虚拟的IP地址来访问服务,而服务则负责将请求转发到后端的Pod上。
而真正起到作用的就是kube-proxy,每个Node都会运行一个kube-proxy进程。对每个TCP类型的Service,kube-proxy都会在本地Node上建立