- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们想利用 Spring Cloud Config Server 构建一个集中式 Toggle 服务器,但我读过一篇博客/文章,暗示 Spring Cloud Config 不适合 Kubernetes Cloud 环境(没有给出任何原因)。相反,建议使用 Spring Kubernetes ConfigMaps。
有人可以解释一下为什么不建议在 Kubernetes 环境中使用 Spring Cloud Config Server(如果有)吗?使用 Spring Kubernetes ConfigMap 相对于 Spring Cloud Config Server 有何优势(如果有)?
最佳答案
以下是一些想法,一种可能有助于做出决定的比较:
IMO 一般来说,两者都可以工作。也许你的同事可以对此提供更多见解(我不是在开玩笑):如果你的特定环境中有一些特殊的东西阻止 Spring Cloud 配置被视为一个选项,该怎么办?
一旦 Spring Cloud 配置中的属性发生更改,可以重新加载具有 @Refresh
范围的潜在 bean,而无需重新加载应用程序上下文。如果您使用 spring,您可能会受益于一种解决方案。
一般来说,Spring Cloud Config 可以管理 secret (密码之类的东西),而 ConfigMaps 不能,在这种情况下您应该使用 kubernetes 的 Secret。
另一方面,Spring Cloud Config - 需要专用服务。 ConfigMaps 是 kubernetes 中的“原生”。
当应用程序(业务)微服务启动时,它首先联系 Spring Cloud 配置服务,如果它不可用,应用程序将无法正确启动(从技术上讲,它会回退到 Spring Boot 支持的其他配置方式,例如 application.properties
等)如果您有数百个微服务和数百个微服务实例,则 Cloud Config 必须始终可用,因此您可能需要这些的副本,这当然是完全可行的。
如果您的所有微服务都使用 Java/Spring,Spring Cloud Config 效果最佳。 ConfigMaps 是一种通用机制。话虽如此,Spring Cloud Config 公开了 REST 接口(interface),因此您可以集成。
Spring Cloud Config 需要一些可以位于文件系统或 git 存储库上的文件。所以“切换”实际上意味着git提交和推送。 Kubernetes 通常用于“后编译”环境,因此 git 可能在那里不可用。
DevOps 人员可能更习惯使用 Kubernetes 工具,因为它是一个“通用”解决方案。
根据您的 CI 流程,一些见解可能来自 CI 人员(关于应在 CI 工具上应用的配置、环境变量等),这因应用程序而异,因此我相信您应该谈谈对他们来说也是如此。
关于java - Spring Cloud Config Server 与云 kubernetes 的 ConfigMaps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59139965/
我有一个示例 Nodejs 应用程序,它使用 envVar 环境变量,我已将其部署在 kubernetes 集群上。我通过配置映射传递环境变量。 一旦部署并且当 Pod 全部运行时,如果我用新值更改我
部署 spring 应用程序仅适用于默认命名空间。将相同的应用程序部署到其他命名空间失败,并显示以下错误: 我注意到这与默认命名空间中的服务(名为:Kubernetes)有关,该命名空间的 clust
每 this spec在 github 和这些 helm instructions我正在尝试使用以下语法升级 Datadog 的 Helm 安装: helm upgrade datadog-monit
有谁知道如何让 Kubernetes 部署在 configMap 更改时自动更新? 最佳答案 不幸的是,没有为此内置任何东西。您使用了 helm 标签,因此对于 Helm,您可以通过将呈现的 conf
如何在不创建的情况下从目录生成 ConfigMap? 如果我使用: $ kubectl create configmap my-config --from-file=configuration/ -o
我的 kubernetes 版本是 1.10.4。 我正在尝试为 java keystore 文件创建一个 ConfigMap: kubectl create configmap key-config
我正在尝试使用 Kube-Prometheus-Stack helm chart https://github.com/prometheus-community/helm-charts/tree/ma
k8s 1.2 部署 locally, single-node docker 难道我做错了什么?这对其他人有用还是在我的 k8s 部署中出现问题? 按照 ConfigMaps 指南中的示例,/etc/
我们在 AKS 群集中部署了一个镜像,我们需要在部署期间使用 configmaps 更新其配置条目。 配置文件有以下键,我们试图在不替换整个文件的情况下替换“ChildKey”的值 - { "Pa
我有一个从文件创建的configMap: kubectl create configmap ssportal-apache-conf --from-file=ssportal.conf=ssporta
我们有一个旧的Java应用程序,几乎没有属性文件。我们正在做一个POC,以使用Helm图表将其部署到Kubernetes集群中。到目前为止,我们通过复制属性文件中的内容来手动创建configmap。如
我有一个 Kubernetes 部署,它使用 ConfigMap 和一些经常更新的配置。目前我必须手动更新这个配置,通过在我的本地机器上运行一个脚本来更新 ConfigMap kubectl . 有没
是否可以将 configMap 值用于诸如 containerPort 或 targetPort 之类的端口值? 这是它如何工作的可能示例: apiVersion: extensions/v1beta
所以我有一个configmap config.json { "apiUrl": "http://application.cloudapp.net/", "test": "1232" } 称为“连续部署
我使用 kubectl 创建了 ConfigMap,我也可以使用以下命令查看它: kubectl get cm 我只是好奇 kubernetes 在集群中存储这些数据/信息的位置?它是否存储在等中?如
我有关于 configmap 的文档: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap
虽然 resourceQuotas可能会限制命名空间中配置映射的数量,是否有任何此类选项可以限制单个配置映射的大小? 我不希望某些用户开始将大型文本文件作为配置映射上传。 ConfigMap etcd
我有一个 Spring Boot 服务,目前使用 .properties 文件使用 spring @Value 注释来使用变量。最近我们一直在将Spring Boot服务迁移到K8集群。这意味着,我们
我创建了使用非 root 用户运行的镜像,但是当我对卷使用 configmap 时,卷附带的文件是 root 用户。我想更改用户,但我不知道如何更改用户。 我通过 google 和 stackover
有谁知道什么是 configmap 缓存? 尝试在此处调试 failed to sync configmap cache 错误。 最佳答案 来自文档 here The kubelet uses its
我是一名优秀的程序员,十分优秀!