Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 如文件所示,与库伯内特斯的traefik一起转发ExternalName_Kubernetes_Traefik - Fatal编程技术网

Kubernetes 如文件所示,与库伯内特斯的traefik一起转发ExternalName

Kubernetes 如文件所示,与库伯内特斯的traefik一起转发ExternalName,kubernetes,traefik,Kubernetes,Traefik,沿着这条路,我到达了关于的部分。上面写着: 指定外部名称时,Træfik将相应地将请求转发给给定主机 指向库伯内特斯的文件 这让我创建了一个服务 kind: Service apiVersion: v1 metadata: name: my-service namespace: prod spec: type: ExternalName externalName: my.database.example.com 当我指着它时,Traefik很高兴地忽略了这一点: --- api

沿着这条路,我到达了关于的部分。上面写着:

指定外部名称时,Træfik将相应地将请求转发给给定主机

指向库伯内特斯的文件

这让我创建了一个服务

kind: Service
apiVersion: v1
metadata:
  name: my-service
  namespace: prod
spec:
  type: ExternalName
  externalName: my.database.example.com
当我指着它时,Traefik很高兴地忽略了这一点:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-service
  namespace: kube-system
spec:
  rules:
  - host: my-service.example.com
    http:
      paths:
      - path: /
        backend:
          serviceName: my-service
          servicePort: 4080
我也尝试过作为终点

---                                                                                                                                                                                           
kind: Service
apiVersion: v1
metadata:
  name: my-service
  namespace: kube-system
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 4080
---
kind: Endpoints
apiVersion: v1
metadata:
  name: my-service
subsets:
  - addresses:
      - ip: 10.0.0.3
    ports:
      - port: 4080

有人知道如何让traefik指向文档中建议的外部名称吗?

如我所见,您的入口对象中至少漏了一行-
traefik.frontend.passHostHeader:“false”

此外,您还需要在同一个数据库中创建一个入口对象

所以,你的答案应该是:


apiVersion:extensions/v1beta1
种类:入口
元数据:
姓名:我的服务
名称空间:prod
注释:
traefik.frontend.passHostHeader:“false”
规格:
规则:
-主持人:my-service.example.com
http:
路径:
-路径:/
后端:
服务名称:我的服务
服务端口:4080

和服务:


种类:服务
版本:v1
元数据:
姓名:我的服务
名称空间:prod
规格:
类型:ExternalName
端口:
-名称:应用程序端口
端口:4080
externalName:my.database.example.com

在注释中添加's'确实让kubernetes接受了它,但它似乎没有将端口'4080'关联起来。是的,感谢您对's'的评论。错误类型:(我在回答中修复了它。如何关联…是的,您可以只使用一个端口,而不使用名称-“4080”。是的,在端口上,在traefik UI中,右侧的所有端点都有一个端口,即,除了使用上述服务和入口创建的条目外,它看起来没有连接端口:4080。我从未见过它的UI:)但是根据它的配置应该是可以的。您的版本可能有问题……您知道webUI,它向您显示了哪些端点是活动的,这是由它带来的