2)通过设置nodePort映射到物理机,同时设置Service的类型为NodePort: kind: Service apiVersion: v1 metadata: name: my-service spec: type:nodePort selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 nodePort:30376 使用nodePort的缺点: 每个端口只能是一种服务 端口范围只能是 30000-327...
在这里我们主要介绍node port的实现原理,当然我们这里的k8s容器网络还是基于iptable的,不是基于ipvs的。我们以之前文章中的nginx-ingress-controller-service为实际例子来介绍,nginx-ingress-controller-service在以前文章里我们以node port类型的service暴露给外界提供服务。 查看以前文章中部署的nginx-ingress-controller的serv...
kind:ServiceapiVersion:v1metadata:name:my-servicespec:#clusterIP: "10.96.96.111"type:NodePortports:-protocol:TCPport:8000#设定Serivce对外提供服务的端口,当service类型为headless时,不需要该配置targetPort:80#设定容器(Pod)的端口,即Pod网络的端口。nodePort:32111#它仅在type为NodePort时才需要指定. 创建完后...
这是通过iptables规则或IPVS实现的。 Service本身会创建一个Cluster IP,该IP将作为Service的虚拟IP地址,在集群内部使用。当节点收到流量并将其转发到Service的后端Pod时,它将使用该虚拟IP地址。 总结起来,Service NodePort的原理是通过为每个节点配置监听NodePort的网络规则,将外部流量转发到Service的后端Pod。这允许外部网...
NodePort:将Service通过指定的Node上的端口暴露给外部,通过此方法,就可以在集群外部访问服务 LoadBalancer:使用外接负载均衡器完成到服务的负载分发,注意此模式需要外部云环境支持 ExternalName: 把集群外部的服务引入集群内部,直接使用 3 Service使用 3.1 实验环境准备 ...
一、Service 的工作原理 1.1 Service 简介 如下关系图: 当通过 API 创建/修改 Service对象时,EndpointsController的Informer机制 Listen 到 Service 对象,然后根据 Service 的配置的选择器创建一个 Endpoints 对象,此对象将 Pod 的 IP、容器端口做记录并存储到 etcd,这样 Service 只要看一下自己名下的 Endpoints 就可...
ClusterIP:默认值,k8s系统给service自动分配的虚拟IP,只能在集群内部访问。 NodePort:将Service通过指定的Node上的端口暴露给外部,访问任意一个 NodeIP:nodePort都将路由到ClusterIP。 LoadBalancer:在 NodePort 的基础上,借助 cloud provider 创建一个外部的负载均 衡器,并将请求转发到 :NodePort,此模式只能在云服务器...
kind: Service metadata: name: ucsrv-svc spec: type: NodePort selector: app: ucsrv-deployment ports:-name: default protocol: TCP port:12000targetPort:12000 nodePort: 32000 查看pod信息: $ kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES ...