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

如何指向与入口不同的ns中的服务

漆雕嘉茂
2023-03-14

我正在考虑使用https://github.com/kubernetes-sigs/aws-load-balancer-controller

假设我有两个名称空间kubernetes dashboard和otherns。

在第一个命名空间中,我有一个名为kubernetes dashboard的服务,在第二个命名空间中,我有一个名为otherservice的服务

下面的入口是否有效?

进入。yml公司

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: general-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTP":80,"HTTPS": 443}]'
    alb.ingress.kubernetes.io/certificate-arn: <redacted>
    alb.ingress.kubernetes.io/tags: Environment=staging,Team=dev
    alb.ingress.kubernetes.io/healthcheck-path: /health
    alb.ingress.kubernetes.io/healthcheck-interval-seconds: '300'
spec:
  rules:
    - host: k8s.acme.com
      http:
        paths:
          - path: /*
            backend:
              serviceName: kubernetes-dashboard.kubernetes-dashboard
              servicePort: 8080
    - host: otherservice.acme.com
      http:
        paths:
          - path: /*
            backend:
              serviceName: otherservice.otherns
              servicePort: 80

共有2个答案

颜骁
2023-03-14

命名空间是安全边界。命名空间中的入口资源不能切流量到不同命名空间中的服务。如果可能的话,用户可以劫持服务的流量。

在第一个命名空间中,我有一个名为kubernetes dashboard的服务,在第二个命名空间中,我有一个名为otherservice的服务

在这种情况下,您需要使用两种不同的入口资源。您仍然可以使用相同的应用程序负载平衡器。

柳浩大
2023-03-14

我发现这个问题有两种解决方案。

第二个解决方案对我不起作用,因为我正在使用一个不支持它的库。https://github.com/kubernetes-sigs/aws-load-balancer-controller

  1. 创建多个入口文件删除同一group.name.

https://kubernetes-sigs.github.io/aws-load-balancer-controller/latest/guide/ingress/annotations/#ingressgroup

IngressGroup功能允许您将多个入口资源分组在一起。控制器将自动合并IngressGroup内所有入口的入口规则,并使用单个ALB支持它们。此外,入口上定义的大多数注释仅适用于该入口定义的路径。

https://kubernetes.io/docs/concepts/services-networking/service/#externalname

您可以在与入口相同的命名空间中创建一个外部名称服务,入口将指向这个特殊的外部名称服务

 类似资料:
  • 我正在玩OpenTelemata,并有这样的设置: Golang,docker compose,3个服务,1个独立的开放式遥测采集器,1个Prometheus。 我将一些系统指标收集到一个独立的开放遥测收集器。这些指标是从3个不同的服务收集的,并且指标具有相同的名称。然后,Prometheus从开放遥测收集器获取数据。问题是我无法区分Prometheus中不同服务的指标,因为所有指标都具有相同的“

  • 目前使用mac osx。我很好奇为什么这些终端指向不同的蟒蛇,即iTerm- Py魅力的终端不会改变对应于项目解释器中Python版本的Python版本 似乎最接近我的问题,但不完全是因为操作系统是Windows,解决方案对我的情况没有帮助。

  • 该方法应返回类型Animal的值。如果出现问题,我想指出存在错误,正确的技术是什么?以防我不想出错。我可以返回什么来代替动物类型?

  • 我试图通过GKE部署应用程序。到目前为止,我为应用程序的前端和后端创建了两个服务和两个部署。我使用“gce”控制器创建了一个ingress ressource,并映射了服务,如图所示 它几乎工作得很好(不是所有映射正确的根,但它工作得很好)。我在代码上添加了修改(只有应用程序的代码),我重建了图像并重新创建了服务,但入口似乎对我添加的修改和 我所有的服务都处于不健康状态 这是前台服务 当我描述时,

  • 我可以在苹果Notes和其他Notes app中看到,它们有表格嵌入到文本编辑器中。Swift有NSTextTable,但它只适用于macOS。我想知道我怎么能给macOS和iOS都添加一个表呢? 此外,这些表应该是交互式的,就像在Apple Notes中一样,我可以添加一行或列,移动它们,等等。我看过这个项目,它可以让你嵌入一个NS/UIView到编辑器中,但这似乎更像是一个黑客。 有什么想法吗

  • 假设我有一个,我想把它写到多个BigQuery表中,为每个选择一个可能不同的表。 如何使用Apache BeamAPI来完成此操作?