当前位置:  首页>> 技术小册>> Kubernets合辑6-服务发现

这种Service会占用宿主机的端口,默认可用的端口范围在 30000-32767 之间,可以在安装apiserver时修改。

NodePort使用场景是将集群内部服务暴露给集群外面使用的一种方案,在生产集群中,其实对集群外暴露的服务非常少,并且向外暴露服务由两种方案:NodePort 和 Ingress。

NodePort主要用于Ingress不能满足的场景,比如TCP/UDP 服务暴露到集群,或者涉及复杂的http rewriete 规则,使用Ingress过于复杂。

  1. # svc-node-port.yaml
  2. apiVersion: v1
  3. kind: Service
  4. metadata:
  5. name: slb-s3
  6. namespace: default
  7. spec:
  8. selector:
  9. app: nginx
  10. release: stable
  11. partition: website
  12. tier: slb
  13. type: NodePort
  14. ports:
  15. - name: http
  16. port: 80
  17. targetPort: 80
  18. nodePort: 30012
  1. [root@maxiaoke nginx-01]# kubectl get svc |grep slb-s3
  2. slb-s3 NodePort 10.100.218.132 <none> 80:30012/TCP 48s
  3. [root@maxiaoke nginx-01]# kubectl describe svc slb-s3
  4. Name: slb-s3
  5. Namespace: default
  6. Labels: <none>
  7. Annotations: <none>
  8. Selector: app=nginx,partition=website,release=stable,tier=slb
  9. Type: NodePort
  10. IP Families: <none>
  11. IP: 10.100.218.132
  12. IPs: 10.100.218.132
  13. Port: http 80/TCP
  14. TargetPort: 80/TCP
  15. NodePort: http 30012/TCP
  16. Endpoints: 10.200.3.10:80,10.200.4.8:80,10.200.4.9:80 + 2 more...
  17. Session Affinity: None
  18. External Traffic Policy: Cluster
  19. Events: <none>
  20. [root@master_01_vm_160_10 ~]# netstat -lntp | grep 30012 # 在宿主机上开启3080端口,实现了集群外访问,注意避免端口冲突
  21. tcp 0 0 0.0.0.0:30012 0.0.0.0:* LISTEN 10808/kube-proxy
  22. [root@maxiaoke nginx-01]# curl http://10.0.160.30:30012/info # 集群外访问测试
  23. 2021-10-13T07:51:09+00:00|v1.0.3|nginx-deploy-699fdd685d-8nb5w|ok

该分类下的相关小册推荐: