6

sto condividendo lo stesso cluster per 2 namespace: staging e produzione. Le uniche differenze tra i due spazi sono:Staging e produzione su kubernetes

  1. volumi montati alcuni baccelli
  2. Un paio di web URL per l'indirizzamento relativo
  3. (persistenza separato tra staging e produzione, ovviamente!) Un paio di indirizzi IP alle banche dati utilizzate per la persistenza sofisticato

sono riuscito ad affrontare (2) e(3) come segue, in modo da mantenere un unico YAML file di per tutti ReplicationControllers:

  • Usa ConfigMaps locale per uno spazio dei nomi per definire qualsiasi configurazione che viene passato attraverso le variabili di ambiente nel baccelli
  • Usa Servizi con endpoint per gestire una punta voce DNS per IP diversi interne

Tuttavia, sono in grado di trovare un modo soddisfacente per avere un punto di riferimento per un gcePersistentDisk s' pdName - Non riesco ad usare un configMap, quindi un po' perplesso. Quale sarebbe il modo appropriato per andare su questo? L'alternativa migliore sembra essere quella di mantenere 2 file separati YAML con stringhe diverse, ma questo ha un odore di codice in quanto sta violando DRY.

Inoltre, qualsiasi commento costruttivo sul resto della mia messa a punto come detto sopra è molto apprezzato :-)

risposta

2

Probabilmente si potrebbe creare un PersistentVolumeClaim in ogni spazio dei nomi. Dai un'occhiata a Can a PVC be bound to a specific PV? su come "pre-associare" PersistentVolumes a PersistentVolumeClaims.

Potrebbe non essere una soluzione ideale, ma probabilmente funziona fino a quando i PVC supportano i selettori di etichette.

+0

+1 Avevo completamente perso su 'PersistentVolumeClaim's durante la lettura dei documenti! C'è un modo per reindirizzare un file in 'kubectl create'? In questo modo potremmo fare semplici sostituzioni di stringhe attraverso un comando "di primo livello" invece di saltare attraverso questi cerchi – Angad

+0

'sed ... | kubectl create -f -' dovrebbe funzionare. – jayme

+0

Penso che l'esecuzione di 'mustache' in CLI sia l'ideale, dato che puoi inserire il tuo shtuff in un bel file JSON :-) https://www.npmjs.com/package/mustache – Angad