我有下一种情况,我不确定是否可以仅使用kubernetes来实现。
有两个Pod,其中一个带有实时服务,例如Givemedata.example.com,暂时在Givemedata2.example.com上。临时工没有任何依赖关系,只是为了使一些长期作业可以继续运行,而真正的工需要维护。
集群在GKE上。
我需要设置故障转移,以便如果实时维护中断,则故障转移应将呼叫重定向到临时故障转移。
主要原因是仅使用一个端点,例如Givemedata.example.com。
我的问题是这是否可行以及如何做到?
答案 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