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

如何在Ingress中通过HTTP公开多个端口上的服务?

汝彭薄
2023-03-14
http://serviceA.example.com --> service-a:80

http://serviceA.example.com:7049 --> service-a:7049
apiVersion: v1
kind: Service
metadata:
  name: nginx-ingress
  namespace: nginx-ingress
spec:
  externalTrafficPolicy: Local
  type: LoadBalancer
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  - port: 443
    targetPort: 443
    protocol: TCP
    name: https
  selector:
    app: nginx-ingress

my-service.yml

apiVersion: v1
kind: Service
metadata:
  name: my-service
  labels:
    app: my-service
spec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: http
  - port: 443
    targetPort: 443
    protocol: TCP
    name: https
  - port: 7049
    targetPort: 7049
    name: symbols
  selector:
    app: my-service

my-service-ingress.yml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-service
spec:
  rules:
  - host: myservice.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: my-service
          servicePort: 80

共有1个答案

莫欣悦
2023-03-14

Ingress对象仅用于为HTTP和HTTPS通信公开应用程序。

Ingress是在KubernetesV1.1中添加的,它公开了从集群外部到集群内服务的HTTP和HTTPS路由。流量路由由入口资源上定义的规则控制。

什么是入口

 类似资料:
  • 我使用几个独立服务运行Kubernetes单节点dev集群--Nginx proxy(端口80)和elasticsearch(端口9200)。有没有办法用ingress公开这些服务,用一个LoadBalancer IP拥有入口点?(X.X.X.X:80和X.X.X:9200) 我读过关于入口限制,它只能用80和443端口访问。但是,也许,存在一些变通方法? 请Thx提供任何建议 但如果以后您想公开

  • 我在一个基于OpenStack的私有云上有一个Kubernetes集群。需要在特定端口上公开我的服务。我可以使用Nodeport来完成此操作。但是,如果我尝试创建与第一个类似的另一个服务,我将无法公开它,因为我必须使用相同的端口,并且它已经被第一个服务占用了。 我注意到我可以在公共云中使用LoadBalancer,但我假设这在OpenStack中是不可能的?我也尝试使用Kubernetes的Ing

  • 我有多个运行RDP应用程序的部署,它们都是通过ClusterIP服务公开的。我的k8s群集中有nginx ingress controller,为了允许tcp,我在nginx ingress controller部署中添加了tcp services configmap标志,并为其创建了configmap,如下所示 这将公开“rdp-service1”服务。我还有10个这样的服务需要在相同的端口号上

  • 这在一个虚拟服务中是可能的吗?

  • 问题内容: 所以我有3个端口应该暴露在机器的接口中。使用Docker容器可以做到这一点吗? 问题答案: 要只暴露一个端口,这是您需要做的: 要公开多个端口,只需提供多个参数:

  • 我正在尝试建立一个多集群部署,其中有多个集群,一个入口正在负载平衡它们之间的请求。 这是我所说的正式文件。