这里我们以service-kube-dashboard做为例子,它的node port为9092,cluster ip是10.254.32.107,我们查看ipvs如何做DNAT 代码语言:javascript 复制 kubectl describe service service-kube-dashboard--namespace kube-system ipvsadm-L 我们看到service-kube-dashboard node port为9092,对应一个endpoint10.1.86.5:8443。然后通...
在这里我们主要介绍node port的实现原理,当然我们这里的k8s容器网络还是基于iptable的,不是基于ipvs的。我们以之前文章中的nginx-ingress-controller-service为实际例子来介绍,nginx-ingress-controller-service在以前文章里我们以node port类型的service暴露给外界提供服务。 查看以前文章中部署的nginx-ingress-controller的serv...
只对service转发的做SNAT, IP 包是否有一个“0x4000”的“标志”,认为是service转发的,IP 包的源地址替换成了这台宿主机上的 CNI 网桥地址,若CNI网桥不存在,则替换成宿主机本身的 IP 地址。 2、数据面: 请求进入node节点机器,被Iptable拦截,如果是访问指定nodeport端口,则转给service;service如果将请求转给其他n...
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...
一、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,此模式只能在云服务器...
Service NodePort是Service的一种类型,它允许外部网络通过集群中的任何节点的指定端口访问服务。 Service NodePort的原理如下: 当你在Kubernetes集群中创建一个Service并将其类型设置为NodePort时,Kubernetes会为该Service分配一个随机的端口(NodePort),该端口范围通常在30000-32767之间。 Kubernetes会自动为集群中每个节点配置...
NodePort 的工作原理其实就是将service 的端口映射到 Node 的一个端口上,然后就可以通过NodeIp:NodePort来访问 service 了。创建service-nodeport.yamlapiVersion: v1 kind: Service metadata: name: service-nodeport namespace: dev spec: selector: app: nginx-pod type: NodePort # service 类型 ports: - ...