第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

K8s更改配置映射并更新應(yīng)用程序日志級別

K8s更改配置映射并更新應(yīng)用程序日志級別

Go
慕沐林林 2023-07-26 10:08:31
我想更改在 K8S 上運行的 Golang 應(yīng)用程序的日志配置,我在本地嘗試了以下代碼,它按預(yù)期工作我正在使用 viper 來監(jiān)視配置文件更改這是帶有日志配置的配置圖apiVersion: v1kind: ConfigMapdata:  config.yaml: 'log.level: error'metadata:  name: app-config  namespace: logger在部署 yaml 中我添加了以下內(nèi)容...spec:  containers:    - name: gowebapp      image: mvd/myapp:0.0.3        - containerPort: 80      envFrom:        - configMapRef:            name: app-config這是代碼package configurationimport (   "fmt"   "os"   "strings"   "github.com/fsnotify/fsnotify"   "github.com/sirupsen/logrus"   "github.com/spf13/viper")const (   varLogLevel     = "log.level"   varPathToConfig = "config.file")type Configuration struct {   v *viper.Viper}func New() *Configuration {   c := Configuration{      v: viper.New(),   }   c.v.SetDefault(varPathToConfig, "./config.yaml")   c.v.SetDefault(varLogLevel, "info")   c.v.AutomaticEnv()   c.v.SetConfigFile(c.GetPathToConfig())   err := c.v.ReadInConfig() // Find and read the config file   logrus.WithField("path", c.GetPathToConfig()).Warn("loading config")   if _, ok := err.(*os.PathError); ok {      logrus.Warnf("no config file '%s' not found. Using default values", c.GetPathToConfig())   } else if err != nil { // Handle other errors that occurred while reading the config file      panic(fmt.Errorf("fatal error while reading the config file: %s", err))   }   setLogLevel(c.GetLogLevel())   c.v.WatchConfig()   c.v.OnConfigChange(func(e fsnotify.Event) {      logrus.WithField("file", e.Name).Warn("Config file changed")      setLogLevel(c.GetLogLevel())   })   return &c}// GetLogLevel returns the log levelfunc (c *Configuration) GetLogLevel() string {   s := c.v.GetString(varLogLevel)   return s}現(xiàn)在,當(dāng)我再次應(yīng)用 yaml 文件并將值從 更改為error或warn等debug時,什么都沒有改變……知道我在這里錯過了什么嗎?我在 K8S 儀表板中看到配置映射已分配給應(yīng)用程序,當(dāng)我更改值時,我看到環(huán)境已更改...
查看完整描述

3 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗 獲得超4個贊

envFrom 從配置映射創(chuàng)建環(huán)境變量。沒有任何文件發(fā)生變化。如果您執(zhí)行到容器中,您可能會看到一個名為 config.yaml 或 CONFIG.YAML 或類似的環(huán)境變量(不知道它是否適用于點)。

如果將 config.yaml 作為文件掛載到 pod 中,效果可能會更好。

查看完整回答
反對 回復(fù) 2023-07-26
?
茅侃侃

TA貢獻(xiàn)1842條經(jīng)驗 獲得超22個贊

如果您使用卷掛載 ConfigMap,則每當(dāng)您更新 ConfigMap 時,卷都會自動更新。

但是,如果使用環(huán)境變量掛載 ConfigMap,即使更新 ConfigMap,環(huán)境變量也不會在容器內(nèi)更新。

如果您希望在容器內(nèi)更新配置,我建議您:

  • 使用卷來掛載 ConfigMap。

  • 如果您使用環(huán)境變量來掛載 ConfigMap,則每次更新 ConfigMap 時都需要重新啟動容器。


查看完整回答
反對 回復(fù) 2023-07-26
?
翻翻過去那場雪

TA貢獻(xiàn)2065條經(jīng)驗 獲得超14個贊

我知道 viper 可以幫助實時更改配置,而無需使用事件重新啟動應(yīng)用程序OnConfigChange,但是您是否嘗試過在基本 ConfigMap 中設(shè)置日志級別,然后啟動應(yīng)用程序,只是為了確保這不是事件的OnConfigChange問題觸發(fā)和您在 k8s 中的特定配置(而不是您測試它的本地環(huán)境)。

最后,您的本地測試環(huán)境(可以正常工作)和其他不可以正常工作的環(huán)境有什么區(qū)別?

是否有任何環(huán)境變量可能會在一個環(huán)境中對此產(chǎn)生不同的影響?


查看完整回答
反對 回復(fù) 2023-07-26
  • 3 回答
  • 0 關(guān)注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號