首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将2个网络应用程序连接到2个节点端口服务?

如何将2个网络应用程序连接到2个节点端口服务?
EN

Stack Overflow用户
提问于 2022-07-09 11:40:47
回答 1查看 26关注 0票数 0

我有一个单节点k8s集群,其中2个web应用程序运行在2个NGINX k8s吊舱上。

nginx部署1-> WEBAPP1 -> nginx-svc-app1 -> :30080/webapp1

nginx部署2-> WEBAPP2 -> nginx-svc-app2 -> :30081/webapp2 2

它只连接到各自的节点ip,而不连接到:30080/webapp1和:30081/webapp1 2。你能帮我理解一下我错过了什么吗?

代码语言:javascript
复制
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment1
  labels:
    name: nginx-app1
spec:
  replicas: 3
  selector:
    matchLabels:
      name: nginx-app1
  template:
    metadata:
      labels:
        name: nginx-app1
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc-app1
  labels:
    name: nginx-svc-app1
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30080
      name: app1_port
  selector:
    name: nginx-app1
    
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment2
  labels:
    name: nginx-app2
spec:
  replicas: 3
  selector:
    matchLabels:
      name: nginx-app2
  template:
    metadata:
      labels:
        name: nginx-app2
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

---
apiVersion: v1
kind: Service
metadata:
  name: nginx-svc-app2
  labels:
    name: nginx-svc-app2
spec:
  type: NodePort
  ports:
    - port: 80
      nodePort: 30081
      name: http
  selector:
    name: nginx-app2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-09 12:06:58

您的端口配置不正确。您需要为这两个服务设置targetPort: 80。当您使用NodePort服务类型并指定NodePort时,port字段与此无关。该端口通常接收服务端点的传入通信量。因此,指定两者都意味着:

  1. 接收端口80的端点上的传入通信量。
  2. 接收到节点端口30080的传入通信量。

并且您没有指定一个targetPort,它是接收部署吊舱中的通信量的端口。所以,流量进来了,但没有被转发到任何地方。

您需要向这两个服务添加targetPort: 80并删除port参数。

另外,您不是运行两个荚,而是运行两个部署,每个部署中有3个荚(副本)。您将发送到每个服务的流量,将由服务“分发”,在所有的豆荚,将匹配的选择-即所有的3个豆荚。了解交流是如何进行的是很重要的。

另外,k8s_controller_ip是描述IP地址的一种不正确的方式。您应该使用术语k8s Node IPk8s_master_node_ip。IP地址属于运行群集的节点,而不是任何控制器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72921057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档