【问题标题】:Changing run parameter for cockroachDB in kubernetes GKE在 kubernetes GKE 中更改 cockroachDB 的运行参数
【发布时间】:2018-12-20 23:03:55
【问题描述】:

我有一个正在运行的 GKE 集群,其中 cockroachDB 处于活动状态。它已经运行了很长一段时间,我不想从头开始重新初始化它——它使用(几乎)标准的 cockroachDB 提供的 yaml 文件来启动。我需要更改 exec 行中的开关以修改日志记录级别 - 目前它设置为以下(但这是记录所有信息消息以及错误)

exec /cockroach/cockroach start --logtostderr --insecure --advertise-host $(hostname -f) --http-host 0.0.0.0 --join cockroachdb-0.cockroachdb,cockroachdb-1.cockroachdb,cockroa
chdb-2.cockroachdb --cache 25% --max-sql-memory 25%"

如何在不完全停止数据库的情况下执行此操作?

【问题讨论】:

    标签: kubernetes google-cloud-platform google-kubernetes-engine cockroachdb


    【解决方案1】:

    Kubernetes 允许您以滚动方式更新 StatefulSet,这样一次只能关闭一个 pod。

    进行更改的最简单方法是运行kubectl edit statefulset cockroachdb。这将打开一个文本编辑器,您可以在其中对命令进行所需的更改,然后保存并退出。之后,Kubernetes 应该处理使用新命令的新 pod 一个一个地替换 pod。

    更多信息:

    【讨论】:

    • Alex - 我试过这个并注意到它确实已经设置为 --logtostderr=ERROR 了。我要解决的问题是将大量信息性消息记录到 Stackdriver,如此处所述stackoverflow.com/questions/51304889/…。我怎样才能避免这种情况?
    • 需要明确一点,默认情况下,Kubernetes 配置文件设置为--logtostderr,而不是--logtostderr=ERROR。如果未指定级别,则将其隐式解释为INFO。但假设它确实是--logtostderr=ERROR,您可能必须手动一个一个地删除 pod,以便可以使用所需的命令行重新创建它们。我不认为这是必要的,但您可能 (1) 使用旧版本的 kubernetes (2) 使用旧版本的配置文件,(3) 修改了配置文件,或者 (4) 也许@ 987654330@ 更改不会触发滚动更新?
    • 我确实仍在使用旧版本(2.0 之前)的 cockroachDB。修改 yaml 文件以添加 logtostderr=ERROR,重新应用它,并删除固定它的 pod。非常感谢您的帮助和耐心。 logtostderr=INFO 的默认值是问题的根源。
    猜你喜欢
    • 2017-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 2020-10-22
    • 2019-04-26
    • 2020-09-24
    • 1970-01-01
    相关资源
    最近更新 更多