給定一個帶有 yaml 的 Kubernetes pod,如下所示,是否有任何方法可以根據正在執行的應用程式的一些全域/內部變數來設定 terminateGracePeriodSeconds 的值。

換句話說,更一般地說,我知道通過向下的 API,來自基礎設施/kubernetes(IP、主機等)的資料可以暴露給應用程式。另一方面,是否有任何方法可以將內部應用程式資料/變數暴露給基礎設施,即 Kubernetes。
uj5u.com熱心網友回復:
您需要運行 kubectl apply 或 kubectl patch 之類的函式來觸發清單檔案引數的更新。所以它不僅僅是設定 terminateGracePeriodSeconds: $somevar 并在每次變數更改時更新它。
如果每次部署更改此值一次,您可以使用 Helm 或 Knative 等模板工具。
或者您可以使用運算子框架為此目的實作您自己的運算子。
uj5u.com熱心網友回復:
這種配置正是Helm 之類的工具所擅長的。您可以使用值配置 Helm 圖表:
# charts/my-app/values.yaml
# terminationWait specifies the time to wait for a process to exit
# before forcibly killing the container.
terminationWait: 60
然后在您的 YAML 清單中參考該值:
# charts/my-app/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
spec:
template:
spec:
terminationGracePeriodSeconds: {{ .Values.terminationWait }}
更一般地說,它使用帶有大量擴展集的 Go文本/模板語言,因此幾乎可以使用此設定執行任何操作,盡管堅持使用簡單的值替換(如此處所示)是最簡單和最清晰的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323703.html
標籤:Kubernetes
上一篇:驗證資料時出錯:ValidationError(Deployment.spec.template.metadata):未知欄位
