【问题标题】:kubernetes - expose app on a single endpointkubernetes - 在单个端点上公开应用程序
【发布时间】:2022-01-02 08:52:24
【问题描述】:

我是 kubernetes 的初学者,希望在本地(在 minikube 上)构建一个设置,其中前端 pod(react 应用程序)从后端 pod 获取值。

前端应用程序是一个包含静态文件的内置反应应用程序。 后端是一个暴露在 5000 端口上的 python 应用程序。

前端yml文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: fe-nginx
  labels:
    app: fe-nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: fe-nginx
  template:
    metadata:
      labels:
        app: fe-nginx
    spec:
      containers:
      - name: fe-nginx
        image: fe_img:latest
        imagePullPolicy: Never
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: fe-service
spec:
  selector:
    app: fe-nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80

后端 yml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: be-python
  labels:
    app: be-python
spec:
  replicas: 1
  selector:
    matchLabels:
      app: be-python
  template:
    metadata:
      labels:
        app: be-python
    spec:
      containers:
      - name: be-python
        image: be_app:latest
        imagePullPolicy: Never
        ports:
        - containerPort: 5000
---
apiVersion: v1
kind: Service
metadata:
  name: be-service
spec:
  selector:
    app: be-python
  ports:
    - protocol: TCP
      port: 5000
      targetPort: 5000

作为前端应用程序时的反应应用程序,浏览器将请求从值发送到后端 pod。在单个端点上进行这项工作的最佳方法是什么?

提前致谢。

【问题讨论】:

  • 为什么不能将后端和前端作为同一部署的一部分?然后使用具有不同端口的单个服务公开单独的部署?

标签: kubernetes minikube


【解决方案1】:

您是否尝试过手动添加端点对象?

kind: Endpoints
metadata:
  name: my-service
subsets:
  - addresses:
      - ip: 192.0.2.42
    ports:
      - port: <PORT>

您也可以参考此链接了解有关 Pod set up as Network Service. 的其他详细信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-13
    • 2019-02-20
    • 2020-12-29
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    相关资源
    最近更新 更多