我正在嘗試啟動二共享共同依賴項(本例中為 MySQL 資料庫)的不同 Helm 圖表。
讓我們考慮兩個不同的舵圖,其中的設定如下Chart.yaml
:
服務A:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
服務B:
dependencies:
- name: mysql
version: ^8.0.20
repository: https://charts.bitnami.com/bitnami
儘管這兩個服務是獨立的,但它們共享相同的資料庫。但是,當部署啟動時就會出現問題,因為這也會觸發兩個獨立的資料庫。
作為替代方案,我也嘗試追求引用的傘方法這裡,透過在相同的條件下定義所有內容家長掌舵圖與此類似的設定:
家長掌舵圖:
dependencies:
- name: service_a
version: 0.1.0
repository: repo_for_service_a
- name: service_b
version: 0.1.0
repository: repo_for_service_b
問題在於,即使再次將相同資料庫作為依賴項共享,在嘗試部署時也會為資料庫建立重複的程式碼,導致部署狀態失敗。作為解決方案,我利用了 Helm--post-renderer
標誌,透過德。儘管這可行,但我一直在尋找更可行的解決方案。