【问题标题】:Kubernetes Traefik Ingress getting a bad gateway errorKubernetes Traefik Ingress 收到错误的网关错误
【发布时间】:2019-08-02 00:02:04
【问题描述】:

我已经为 Kubernetes 上的 Traefik 设置了以下 Ingress 和部署。我在实际域名上不断收到错误的网关错误。

由于某种原因,服务无法正常工作,或者我的连接有误,或者选择器有问题等。

apiVersion: v1
kind: Service
metadata:
  name: web
  labels:
    app: wordpress
spec:
  selector:
    k8s-app: traefik-ingress-lb
  ports:
    - name: http
      port: 80
      targetPort: 80
      protocol: TCP
  selector:
    app: wordpress

---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: web-ingress
  annotations:
    kubernetes.io/ingress.class: traefik
    # traefik.ingress.kubernetes.io/frontend-entry-points: http,https
spec:
  rules:
  - host: test.example.services
    http:
      paths:
      - path: /
        backend:
          serviceName: web
          servicePort: http




---
apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
kind: Deployment
metadata:
  name: wordpress
  labels:
    app: wordpress
spec:
  selector:
    matchLabels:
      app: wordpress
      tier: frontend
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: wordpress
        tier: frontend
    spec:
      containers:
      - image: wordpress:4.8-apache
        name: wordpress
        env:
        - name: WORDPRESS_DB_HOST
          value: wordpress-mysql
        - name: WORDPRESS_DB_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysql-pass
              key: password
        ports:
        - containerPort: 80
          name: wordpress
        volumeMounts:
        - name: wordpress-persistent-storage
          mountPath: /var/www/html
      volumes:
      - name: wordpress-persistent-storage
        persistentVolumeClaim:
          claimName: wp-pv-claim

我的代码如下,如果有任何更正,不胜感激。

【问题讨论】:

  • 您的Service.spec 中有两个Selector 字段。他们应该在那里吗?
  • 进行上述更改后,出现“未找到服务错误”
  • 做了什么改变?你删除了哪个选择器?
  • 我删除了第二个选择器并将 app:wordpress 添加到第一个选择器

标签: kubernetes traefik traefik-ingress


【解决方案1】:

有几件事情需要考虑:

  1. 我发现您的metadata: 中缺少namsespace:。检查是否是这种情况。

  2. 尝试创建两个服务。一个用于wordpress,一个用于 treafik-ingress-lb。

  3. 您可能在ports: 之后使用了太多空格。试试这样的:

      ports:
      - name: http
        port: 80
        targetPort: 80
        protocol: TCP
  1. 检查您的标签是否配置正确。如果您需要有关它们的更多详细信息,请尝试this documentation

如果有帮助,请告诉我。

【讨论】:

    猜你喜欢
    • 2019-10-21
    • 2019-10-24
    • 1970-01-01
    • 2021-07-21
    • 2019-08-19
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多