通过nodeport访问,接收流量的首个k8s节点,snat是为了避免后端pod不在该节点而回不来。 主机访问cluster ip时,源ip是容器网关ip,不需要snat;容器访问cluster ip时,源ip是pod ip,也不需要snat。 prerouting链 nat表KUBE-NODE-PORT-TCP链ipset有NodePort 31531,打上0x4000标记,标记目的是进入ipvs dnat和iptables snat。
k8s expose 指定service nodeport端口 k8s nodeport端口范围 1. nodePort外部流量访问k8s集群中service入口的一种方式(另一种方式是LoadBalancer),即nodeIP:nodePort是提供给外部流量访问k8s集群中service的入口。比如外部用户要访问k8s集群中的一个Web应用,那么我们可以配置对应service的type=NodePort,nodePort=30001。其他用...
kubectl describe service service-kube-dashboard--namespace kube-system ipvsadm-L 我们看到service-kube-dashboard node port为9092,对应一个endpoint10.1.86.5:8443。然后通过ipvsadm工具查看确实是ipvs将host ip(172.20.11.43)的9092端口其映射成这个endpoint。 ipvs在INPUT chain完成上述DNAT操作,然后将数据送入POSTRO...
kubectl create service nodeport goweb --tcp=80:8090 --node-port=30080 其中,goweb是Service对象的名称,默认也是用此名称与deployment中定义的label "app: goweb" 保持一致,--tcp=80:8090表示将容器端口8090映射到Service的端口80上,--node-port=30080表示将Service的端口30080映射到Node的端口30080上。 代码语...
创建service-nodeport.yaml apiVersion: v1 kind: Service#类型为 Servicemetadata: name: service-nodeport#Service 的名称namespace: zouzou#命名空间spec: selector:#标签选择器,会和上面创建的 deployment.yaml 的 pod 关联起来app: nginx-pod type: NodePort#service 类型为 NodePortports:- port: 8888#service...
# 搜索Service 将 type改成 NodePort vi recommended.yaml # 执行 kubectl create -f recommended.yaml 1. 2. 3. 4. 5. 6. 7. 8. 添加用户获取登陆token vi dashboard-admin.yml 1. 复制以下内容到bashboard-admin.yml apiVersion: v1 kind: ServiceAccount ...
# 可以看到,service 的类型是 NodePort,还有一个 CLUSTER-IP,这个是集群内可以访问,我们设置的端口是 8888,所以可以 172.31.100.38:8888 进行访问,这里我们用不到# PORT(S) 8888/30033,30033 是我们 node 节点的端口,当访问 nodeip:30033 会代理到 172.31.100.38:8888 上,然后由 service 在转发给 pod[root@dc...
k8s中service组件有三个类型ClusterIP,NodePort,Loadbalancer Cluster类型是k8s各node之间的内网通信,默认类型 Nodeport类型则是在ClusterIP基础上暴露出一个随机端口至外部[NodeIP]:[NodePort],可让外部进行访问,默认端口范围30000~32767 Loadbalancer类型一般是和云负载一起使用,一般都是运行在云环境上的k8s一起使用。
在命令行下创建一个将容器端口8090映射到Node的端口30080上的Service对象,可以使用以下命令: kubectl create service nodeport goweb --tcp=80:8090 --node-port=30080 其中,goweb是Service对象的名称,默认也是用此名称与deployment中定义的label "app: goweb" 保持一致,--tcp=80:8090表示将容器端口8090映射到Servi...
查看service [root@node2 test]# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 9d mysql ClusterIP 10.96.114.38 <none> 3306/TCP 6d2h myweb NodePort 10.107.166.10 <none> 8080:30001/TCP 6d2h ...