我如何设置一个Kubernentes和Controller来完成以下nginx.conf文件所做的工作:
upstream backend {
server server1.example.com weight=5;
server server2.example.com:8080;
server backup1.example.com:8080 backup;
}我想要一个http端点映射到多个Kubernetes服务,它有主服务的首选项,但也有备份的服务。(对于我的特定项目,我需要多个服务,而不是一个有多个豆荚的服务。)
这是我尝试的ingress.yaml文件。我很确定我列出多个后端的方式是不正确的。我该怎么做?如何设置“备份”标志?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: fanout-ingress
annotations:
ingress.kubernetes.io/rewrite-target: /
kubernetes.io/ingress.class: "nginx"
# kubernetes.io/ingress.global-static-ip-name: "kubernetes-ingress"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: server1
servicePort:
- path: /
backend:
serviceName: server2
servicePort: 8080
- path: /
backend:
serviceName: backup1
servicePort: 8080我在GKE上运行Kubernetes。
发布于 2017-09-22 21:49:55
库伯奈特斯·安妞无法做到这一点。
您可以创建一个以server1、server2和backup1为目标的新服务,并将其用于“侵入题”中。但是后端将以循环的方式使用。
您可以使用您希望的配置创建(无状态) nginx反向代理的部署和服务,并在Ingress中使用该配置。
发布于 2019-01-10 06:17:52
您可以基于path或基于名称的虚拟主机执行基于名称的虚拟主机。
但是,您需要根据某些内容进行区分(端口除外,因为它是一个入侵),因此您的两个选项将是虚拟主机或路径。
路径将不能与某些期望标准路径的服务一起工作。根据您的例子判断,您很可能希望拥有类似于a.example.com和b.example.com的东西。下面是Kubernetes文档的示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: name-virtual-host-ingress
spec:
rules:
- host: foo.bar.com
http:
paths:
- backend:
serviceName: service1
servicePort: 80
- host: bar.foo.com
http:
paths:
- backend:
serviceName: service2
servicePort: 80https://stackoverflow.com/questions/46373616
复制相似问题