Kubernetes和故障转移服务

时间:2020-10-18 16:53:55

标签: kubernetes load-balancing failover

我有下一种情况,我不确定是否可以仅使用kubernetes来实现。

有两个Pod,其中一个带有实时服务,例如Givemedata.example.com,暂时在Givemedata2.example.com上。临时工没有任何依赖关系,只是为了使一些长期作业可以继续运行,而真正的工需要维护。

集群在GKE上。

我需要设置故障转移,以便如果实时维护中断,则故障转移应将呼叫重定向到临时故障转移。

主要原因是仅使用一个端点,例如Givemedata.example.com。

我的问题是这是否可行以及如何做到?

1 个答案:

答案 0 :(得分:0)

您可以安装NGINX ingress controller。添加 nginx.ingress.kubernetes.io/server-snippet: 对入口配置文件的注释并添加代码块,用于检查域是否可用,如果不可用,则将流量重定向到不同的域。

多亏了这个注解,可以在服务器配置块中添加自定义配置。

阅读更多:server snippet

记得将此服务器添加到/etc/nginx目录下的nginx.conf文件中。 这是示例配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
 name: my-ingress
 namespace: ingress-nginx
 annotations:
   kubernetes.io/ingress.class: nginx
   nginx.ingress.kubernetes.io/add-base-url : "true"
   nginx.ingress.kubernetes.io/configuration-snippet: |
      set $agentflag 0;  
      if ($http_user_agent ~* "(Mobile)" ){  
      set $agentflag 1;  
      }  
      if ( $agentflag = 1 ) {  
      return 301 https://givemedata2.example.com;  
      }
spec:
 rules:
 - host: givemedata.example.com
   http:
     paths:
     - path: /
       backend:
         serviceName: service-name
         servicePort: service-port