在 Kubernetes 中,服务是一种用于将网络流量路由到运行在集群内部的容器的对象。每个服务都有一个唯一的 IP 地址和端口号,可用于在整个集群中访问该服务。在本文中,我们将学习如何在 Kubernetes 中配置服务的端口,以及如何使用这些端口来访问服务。
配置服务端口
在 Kubernetes 中,服务的端口由两部分组成:端口号和协议。默认情况下,端口号是随机生成的,并且可以使用 TCP 或 UDP 协议。但是,我们可以使用 Kubernetes Service 对象的 spec.ports
字段来配置服务的端口。该字段是一个数组,每个元素都描述一个服务端口。下面是一个示例 Service 对象,其中定义了两个端口:
// javascriptcn.com 代码示例 apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app ports: - name: http port: 80 targetPort: 8080 protocol: TCP - name: https port: 443 targetPort: 8443 protocol: TCP
在上面的示例中,我们定义了两个端口,一个用于 HTTP 流量,另一个用于 HTTPS 流量。每个端口都有一个名称、一个端口号、一个目标端口和一个协议。名称是可选的,但是建议对每个端口都进行命名,以便稍后更容易地识别它们。端口号是必需的,并且必须是一个整数。目标端口是容器中实际运行的应用程序使用的端口号。如果省略目标端口,则默认使用与端口号相同的值。协议是可选的,默认为 TCP。
访问服务端口
一旦我们在 Kubernetes 中定义了一个服务,并将其绑定到一组容器上,就可以使用该服务的 IP 地址和端口号来访问该服务。可以通过以下方式之一来查找服务的 IP 地址:
- 使用
kubectl get services
命令查找服务的 IP 地址。 - 在 Kubernetes Dashboard 中查找服务的 IP 地址。
- 在 Kubernetes API 中查找服务的 IP 地址。
例如,如果我们有一个名为 my-service
的服务,它绑定到了一组运行在 Kubernetes 中的容器上,并且我们已经将该服务的端口配置为 80,则可以通过以下方式之一来访问该服务:
- 使用
curl http://<my-service-ip>:80
命令来访问该服务。 - 在 Web 浏览器中输入
http://<my-service-ip>:80
来访问该服务。
注意,我们需要将 <my-service-ip>
替换为实际的服务 IP 地址。
总结
在本文中,我们学习了如何在 Kubernetes 中配置服务的端口,并使用这些端口来访问服务。服务端口由端口号和协议组成,可以使用 Kubernetes Service 对象的 spec.ports
字段来配置。一旦服务绑定到一组容器上,就可以使用服务的 IP 地址和端口号来访问该服务。这些知识对于开发和部署基于 Kubernetes 的应用程序非常重要。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6573d0fad2f5e1655dcf93bf