k8s-reloader
👨💻簡介 有時候修改掛載的config檔,無法即時更新,需要重啟pod才會生效,為了解決這個問題,k8s-reloader因此而誕生,透過觀察掛載的configmap或是secret的變化自動對掛載的物件做滾動更新。 以下為在minikube環境下,透過掛載nginx-config檔並搭配reloader這個插件進行熱部署。 🔗github-repo : stakater/Reloader: A Kubernetes controller to watch changes in ConfigMap and Secrets and do rolling upgrades on Pods with their associated Deployment, StatefulSet, DaemonSet and DeploymentConfig – [✩Star] if you’re using it! (github.com) 🔰基礎介紹 運作原理 Reloader偵測所有資源變化,對有變化的資源使用SHA1計算資源的哈西值 Reloader查看是否有設定相關的annotation,並查看有設定annotation資源的特殊環境變量 對有設定annotation的資源比對其哈希值,如果環境變量中哈希值不同,則更新環境變量,如果環境變量不存在,則創建一個 環境變量名稱 ConfigMap:STAKATER_{configmap_name}_CONFIGMAP ,比如 ConfigMap 的名稱為 foo,則生成的環境變量的名稱為:STAKATER_FOO_CONFIGMAP。 Secret:STAKATER_{secret_name}_SECRET ,比如 Secret 的名稱為 foo,則生成的環境變量的名稱為:STAKATER_FOO_SECRET。 環境變量的值 使用 SHA1 計算的 ConfigMap 或者 Secret 的哈希值。 版本需求 k8s版本需 >= 1.9 安裝方式 使用Manifests安裝 kubectl apply -f https://raw....