AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1013402
Accepted
Nazia Jahan Trisha
Nazia Jahan Trisha
Asked: 2020-04-22 06:52:31 +0800 CST2020-04-22 06:52:31 +0800 CST 2020-04-22 06:52:31 +0800 CST

是否可以在 Kubernetes pod 中公开 2 个端口?

  • 772

我有以下情况 -

图片

位置模拟器将根据时间从 GPS 跟踪器获取其经度和纬度数据。所以这个位置模拟器和activemq有连接,但是要接收原始数据,是否可以暴露这个服务的另一个端口来接收实时跟踪数据?

kubernetes
  • 1 1 个回答
  • 9741 Views

1 个回答

  • Voted
  1. Best Answer
    PjoterS
    2020-04-22T08:42:18+08:002020-04-22T08:42:18+08:00

    例如,如果您想deployment在两个或更多端口上公开您,您至少可以通过两种方式进行操作。

    1. 中的正确配置YAML。这种方法在Kubernetes 文档中有很好的描述。

      对于某些服务,您需要公开多个端口。Kubernetes 允许您在服务对象上配置多个端口定义。当为一个服务使用多个端口时,您必须提供所有端口名称,以便这些名称明确。例如:

    例子:

    apiVersion: v1
    kind: Service
    metadata:
      name: my-service
    spec:
      selector:
        app: MyApp
      ports:
        - name: http
          protocol: TCP
          port: 80
          targetPort: 9376
        - name: https
          protocol: TCP
          port: 443
          targetPort: 9377
        - name: <another-name>
          protocol: TCP
          port: XXX
          targetPort: XXX
    
    1. 使用kubectl expose.

    $ kubectl exposed <resource(deployment/Replicaset/etc)> <deployment-name> --port=XXX,XYZ,ABC --target-port=XXX

    $ kubectl expose deployment nginx --port=80,8080,6000 --target-port=8080 service/nginx exposed

    $ kubectl describe svc nginx
    Name:              nginx
    Namespace:         default
    Labels:            run=nginx
    Annotations:       <none>
    Selector:          run=nginx
    Type:              ClusterIP
    IP:                10.0.74.75
    Port:              port-1  80/TCP
    TargetPort:        8080/TCP
    Endpoints:         10.48.0.13:8080
    Port:              port-2  8080/TCP
    TargetPort:        8080/TCP
    Endpoints:         10.48.0.13:8080
    Port:              port-3  6000/TCP
    TargetPort:        8080/TCP
    Endpoints:         10.48.0.13:8080
    Session Affinity:  None
    Events:            <none>
    

    如Kubernetes 文档中所述

    targetPort: 是容器接受流量的端口, port: 是抽象Service端口,可以是其他 Pod 用来访问 Service 的任何端口

    • 2

相关问题

  • 无法通过 Docker 在本地运行 Hyperkube (kubernetes)

  • 跨 Kubernetes 分散工作负载

  • Kubernetes升级回滚机器类型

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve