为Kubernetes ingress定义后备服务

时间:2017-09-25 15:59:57

标签: kubernetes google-kubernetes-engine minikube

如果没有正常的pod正常/准备好,是否可以为Kubernetes进站提供后备服务?换句话说,如果所有豆荚都以某种方式坠毁或摔倒,您将如何向访客呈现友好的“网站下载”页面?

现在,如果出现这种情况,会出现一个显示“默认后端 - 404”的页面。

这是我们尝试过的,无济于事:

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

作为参考,我们在本地使用Minikube进行测试,并在Google的Container Engine上部署到云端。

2 个答案:

答案 0 :(得分:0)

对于Nginx Ingress控制器,有一个标志--default-backend-service,它当前指向显示"默认后端的服务 - 404"信息。只需将其替换为您想要的服务即可。见https://github.com/kubernetes/ingress/tree/master/controllers/nginx#command-line-arguments

如果您正在使用其他Ingress控制器,我希望它有类似的选项。

答案 1 :(得分:0)

如果使用Nginx,则应该使用default backend注释,请采样:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-name
  namespace: your-namespace
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/default-backend: fallback-backend
spec:
   <your spec here>