当前位置: 首页 > 知识库问答 >
问题:

targetPort和port在Kubernetes服务定义中的区别

鲜于宜修
2023-03-14
kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376

端口targetport之间有什么区别?

共有1个答案

邵阳辉
2023-03-14

服务:这将流量引导到一个吊舱。

targetPort:这是您的应用程序在容器中运行的实际端口。

端口:有时容器内的应用程序在不同的端口上提供不同的服务。

示例:实际应用程序可以运行8080,并且此应用程序的健康检查可以在容器的8089端口上运行。因此,如果您没有端口地访问服务,它不知道应该将请求重定向到容器的哪个端口。服务需要有一个映射,以便能够命中容器的特定端口。

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - name: http
      nodePort: 30475
      port: 8089
      protocol: TCP
      targetPort: 8080
    - name: metrics
      nodePort: 31261
      port: 5555
      protocol: TCP
      targetPort: 5555
    - name: health
      nodePort: 30013
      port: 8443
      protocol: TCP
      targetPort: 8085 
 类似资料:
  • 我的理解是,集群之外的客户机将“看到”的端口将是文档中定义的-范围内动态分配的端口。这将使用一些我还不明白的魔法流到给定节点上的(在本例中是)。 那么这里的用于什么呢?

  • 我了解kubernetes服务,因为LoadBalancer服务是NodePort和ClusterIP的扩展,后者已经是POD的负载平衡器层。当我们使用NodePort或CluserIP和ingress时,我们已经能够使用负载平衡器(内部)在服务中通过域访问应用程序。那么,为什么我们还有另一个选择是LoadBalancer服务(外部云提供商)?

  • 我在Kubernetes工作过,目前正在阅读有关Service Fabric的文章,我知道Service Fabric提供微服务框架模型,如有状态、无状态和actor等,但除此之外,它还提供或,这也是Kubernetes管理/编排容器的功能。有人能解释一下这两者之间的详细区别吗?

  • 我试图创建一个服务帐户与一个已知的,固定的令牌Jenkins使用,以部署到Kubernetes的东西。我使用以下YAML创建了令牌:

  • 1-我正在阅读文档,我对措辞有点困惑。上面写着: 集群IP:在集群内部IP上公开服务。选择此值将使服务只能从集群内访问。这是默认的ServiceType NodePort:在每个节点的IP上的一个静态端口(NodePort)上公开服务。节点端口服务将路由到的集群IP服务将自动创建。您可以通过请求从集群外部联系NodePort服务。 LoadBalancer:使用云提供商的负载均衡器对外公开服务。外

  • 注:内容翻译自官网文档 Language Guide (proto3) 中的 Defining Services 一节 如果想在RPC (Remote Procedure Call) 系统中使用消息类型, 可以在.proto文件中定义RPC服务接口, 然后protocol buffer编译器会生成所选语言的服务接口代码和桩(stubs). 因此, 例如, 如果想定义一个RPC服务,带一个方法处理S