kubernetes - Kubernetes 和故障转移服务
问题描述
我有下一种情况,我不确定是否可以仅使用 kubernetes 来实现。
有两个 Pod,一个在 givemedata.example.com 上提供实时服务,一个在 givemedata2.example.com 上提供临时服务。临时的没有任何依赖关系,只是为了让一些长期的工作继续运行,而真正的工作因维护而停机。
集群在 GKE 上。
我需要设置故障转移,以便如果实时故障转移进行维护,故障转移应将呼叫重定向到临时呼叫。
主要原因是只使用一个端点,例如 givemedata.example.com。
我的问题是这是否可能以及如何做到这一点?
解决方案
您可以安装NGINX 入口控制器。向入口配置文件添加
nginx.ingress.kubernetes.io/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
推荐阅读
- python - 在 python 中,base 37 数字如何表示为字符串?
- regex - 如何从 Jenkinsfile/Groovy 的命令输出中仅以列表形式返回数字?
- firebase - node.js 不支持 firebase 中的推送通知功能吗?
- android - 无法创建进程:执行流式安装 adb:安装失败
- python - pyspark rdd 将多个 json 文件数据合并到一个 rdd
- pandas - 如何在熊猫的数据框中按行分组
- azure - 从 .NET Core 向 Application Insights 跟踪添加自定义维度
- android - 如何在 Android 上的 EditText 上设置属性和 actionEvent
- javascript - 页面在初始页面加载时有效,但如果我刷新页面,我会收到 Zeit、Nextjs 和现在的 404 错误
- mysql - 无法诊断 MySQL 存储过程的问题