- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在当前的Rancher environment
上,我们基于对Rancher元数据的调用来动态配置Nginx
配置,使用容器上的标签来确定该容器是否包含在Nginx
路由中。
我们将confd
与Rancher
后端一起使用,以完成此元数据检查并动态更改/重新加载新的Nginx
配置。
我们已经开始着手迁移到Kubernetes
(AWS EKS)。是否有等效于confd/Rancher
的Kubernetes
?
由于某些技术原因和时间限制的原因,我们目前无法用等效的nginx
替换此ingress
,因此正在研究在服务/ pods 上使用批注或标签来保持动态配置功能。
最佳答案
托管的Kubernetes提供程序通常不会直接为您提供后备etcd
的访问权限,因此,最好的方法是为您感兴趣的资源挖掘Kubernetes API并生成配置。
这正是入口 Controller 的工作-监视Kubernetes资源的变化并为诸如nginx之类的负载均衡器生成配置。
Nginx Controller 之一可让您completely replace the template that it uses with one of your own.
The NGINX template is located in the file /etc/nginx/template/nginx.tmpl.
Using a Volume it is possible to use a custom template. This includes using a Configmap as source of the template
volumeMounts:
- mountPath: /etc/nginx/template
name: nginx-template-volume
readOnly: true
volumes:
- name: nginx-template-volume
configMap:
name: nginx-template
items:
- key: nginx.tmpl
path: nginx.tmpl
您可以像
nginx-legacy
一样部署nginx入口 Controller
under a custom class的版本,这样它就不会尝试公开期望正常nginx入口的服务。
To do this, the option --ingress-class must be changed to a value unique for the cluster within the definition of the replication controller.
spec:
template:
spec:
containers:
- name: nginx-ingress-legacy-controller
args:
- /nginx-ingress-controller
- '--election-id=ingress-controller-leader-internal'
- '--ingress-class=nginx-legacy'
- '--configmap=ingress/nginx-ingress-internal-controller'
然后使用以下方法注释旧服务以将资源分配给该入口:
metadata:
name: foo
annotations:
kubernetes.io/ingress.class: "nginx-legacy"
关于kubernetes - Kubernetes中的Rancher Metadata/Confd等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52787837/
运行 confd -debug=true -verbose -onetime -node 172.17.0.61:4001 -confdir ./confd 给我以下内容 2014-08-08T10:
遇到一个奇怪的问题。项由uint键索引-当我使用9项或更低的配置时,一切正常-cdb_get with index 1返回第一项,index 2返回秒,依此类推。 当我添加第10个项-我查询的第一个项
我正在使用 confd 和 etcd。我正在关注 confd example for nginx .我将这些 key 放在我的 etcd 服务中: curl http://127.0.0.1:4001
我是一名优秀的程序员,十分优秀!