1

任何人都知道为什么我不断获得以下 YAML 代码的服务不可用。入口指向指向容器的服务,它应该可以工作。对于这个例子,我只是使用 NGINX 容器进行测试。

apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  selector:
    k8s-app: traefik-ingress-lb
    app: nginx
  ports:
  - name: web
    port: 80
    targetPort: 80

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: frontend
spec:
  rules:
  - host: test.example.services
    http:
      paths:
      - path: /
        backend:
          serviceName: frontend
          servicePort: web

---

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.15.4
        ports:
        - containerPort: 80

---
4

2 回答 2

1

该服务有一个应用程序没有的选择器。一旦标签k8s-app: traefik-ingress-lb被删除,一切正常。

感谢 Traefik Slack 频道的 Daniel Tomcej 在这里帮助我。

于 2019-08-02T17:01:25.293 回答
1

如果您使用traefik作为入口控制器,那么文档可能会产生误导。下面你可以看到一个入口控制器表单 traefik 网站的示例。相同的配置为我的应用程序返回503 错误。事实证明,我必须更改servicePort: httpservicePort: 80,而此更改解决了问题!

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cheese
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: stilton.minikube
    http:
      paths:
      - path: /
        backend:
          serviceName: stilton
          servicePort: http
      ...
于 2020-05-25T11:31:04.287 回答