欢迎来到站长天空!

其它服务器

当前位置: 主页 > 服务器 > 其它服务器

关于k8s 使用 Service 控制器对外暴露服务的问题

时间:2025-12-15 05:30:04|栏目:其它服务器|点击:

目录
  • 部署 deploy
  • 部署 service
  • 查看 service 和 pod 的关系
  • 查看 service
  • 查看端口
  • 导出 yaml
  • 筛选 service 关联 pod
  • 扩容测试
  • Service 三种常用类型

Service 引入主要是解决 Pod 的动态变化,提供统一访问入口:

  1. 防止 Pod 失联,准备找到提供同一个服务的 Pod (服务发现) 
  2. 定义一组 Pod 的访问策略 (负载均衡)

部署 deploy

kubectl apply -f deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: chiyi-nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: chiyi-nginx
  template:
    metadata:
      labels:
        app: chiyi-nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

部署 service

kubectl apply -f service.yaml
apiVersion: v1
kind: Service
metadata:
  name: chiyi-nginx
spec:
  selector:
    app: chiyi-nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30002
  type: NodePort

查看 service 和 pod 的关系

kubectl  get ep
curl 10.244.1.58:80

说明:

Service 通过标签关联一组 Pod

Service 为一组 Pod 提供负载均衡能力

[root@k8s-master service]# kubectl get ep
NAME          ENDPOINTS                                      AGE
chiyi-nginx   10.244.1.58:80,10.244.1.59:80,10.244.2.46:80   5m19s
kubernetes    172.17.28.225:6443                             23h
[root@k8s-master service]# curl 10.244.1.58:80



Welcome to nginx!




Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

查看 service

kubectl  get service
curl 10.101.104.218
[root@k8s-master service]# kubectl get service
NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
chiyi-nginx   NodePort    10.101.104.218           80:30002/TCP   6m3s
kubernetes    ClusterIP   10.96.0.1                443/TCP        23h
[root@k8s-master service]# curl 10.101.104.218



Welcome to nginx!




Welcome to nginx!

If you see this page, the nginx web server is successfully installed and working. Further configuration is required.

For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx.

查看端口

ss -antp |grep 30002
[root@k8s-master service]# ss -antp |grep 30002
LISTEN     0      128          *:30002                    *:*                   users:(("kube-proxy",pid=3544,fd=13))

导出 yaml

kubectl  get service chiyi-nginx -o yaml

筛选 service 关联 pod

kubectl get pods -l app=chiyi-nginx
[root@k8s-master service]# kubectl get pods -l app=chiyi-nginx
NAME                           READY   STATUS    RESTARTS   AGE
chiyi-nginx-5bbf8bff4b-6bwfz   1/1     Running   0          3m58s
chiyi-nginx-5bbf8bff4b-bpvvc   1/1     Running   0          3m58s
chiyi-nginx-5bbf8bff4b-pwwt4   1/1     Running   0          3m58s

扩容测试

kubectl scale deployment chiyi-nginx --replicas=1
kubectl  get service,pods,ep

Service 三种常用类型

  • ClusterIP 集群内部使用,任一节点服务器和 pod 内部都可以访问
  • NodePort 对外暴露应用(端口默认范围:30000-32767),任一节点服务器公网IP+端口号,可在浏览器访问。
  • LoadBalancer 对外暴露应用,适合公有云

上一篇:Apache Hudi性能提升三倍的查询优化

栏    目:其它服务器

下一篇:Docker容器下运行Nginx并实现反向代理

本文标题:关于k8s 使用 Service 控制器对外暴露服务的问题

本文地址:https://zz.feitang.co/server/30959.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2025 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号