在 Kubernetes 中,使用服务(Service)是一种更为持久和稳定的方式来访问集群中的应用。服务提供了一种抽象,使得应用程序能够以一致的方式暴露自己,并且不受底层 Pod 的变化影响。以下是使用服务访问集群中应用的一般步骤:

步骤一:创建服务

1. 创建 ClusterIP 服务:
   apiVersion: v1
   kind: Service
   metadata:
     name: my-service
   spec:
     selector:
       app: my-app
     ports:
       - protocol: TCP
         port: 80
         targetPort: 8080

   在上述示例中,创建了一个名为 my-service 的服务,它会将流量路由到标签为 app: my-app 的 Pod 上的端口 8080。该服务将分配一个 ClusterIP(集群内部 IP 地址)。

2. 应用服务配置:
   kubectl apply -f service.yaml

步骤二:访问服务

现在,你可以使用服务的 ClusterIP 地址在集群内的任何地方访问应用。

1. 通过 Pod 内部访问服务:

   在其他 Pod 内部,可以使用服务的名称和端口来访问应用。在示例中,应用可以通过 my-service:80 来访问。

2. 通过集群外部访问服务:

   - NodePort 服务:

     如果你想要从集群外部访问服务,可以使用 NodePort 服务。NodePort 服务将服务的指定端口映射到所有节点的相同端口。
     apiVersion: v1
     kind: Service
     metadata:
       name: my-nodeport-service
     spec:
       selector:
         app: my-app
       ports:
         - protocol: TCP
           port: 80
           targetPort: 8080
       type: NodePort

   - LoadBalancer 服务:

     如果你的 Kubernetes 集群运行在云服务提供商上,可以使用 LoadBalancer 服务。LoadBalancer 服务将会在云平台上创建一个负载均衡器,并将流量路由到服务。
     apiVersion: v1
     kind: Service
     metadata:
       name: my-lb-service
     spec:
       selector:
         app: my-app
       ports:
         - protocol: TCP
           port: 80
           targetPort: 8080
       type: LoadBalancer

   在上述示例中,type: NodePort 和 type: LoadBalancer 的服务会分配一个外部 IP 地址或域名,你可以使用它来从互联网访问应用。

注意事项:

  •  确保 Pod 的标签与服务选择器匹配,以确保服务能够正确路由流量到 Pod。


  •  在生产环境中,建议使用 Ingress 资源来处理更复杂的路由需求,并提供更高级的负载均衡和 SSL 终止功能。



转载请注明出处:http://www.zyzy.cn/article/detail/9935/Kubernetes