Come fornire un persistente ubuntu env da k8s

Posso fornire un ubuntu con ssh da docker, e l'utente può impostare il proprio env. Ad esempio, ha installato qualcosa e modificato il suo bashrc, vimrc e così via. Una volta riavviato questo computer, l'utente ha ancora lo stesso env dopo il riavvio finito.

Come posso fornire lo stesso servizio da k8s? Una volta riavviato il nodo, creerà un altro pod su un altro computer. Ma l'env è basato sull'image init, non l'ultima env dall'utente.

Il modo ingenuo, montare tutto il volume sulla memory condivisa (PV + PVC). Come / bin / lib / opt / usr / etc / lib64 / root / var / home e così via (Ogni directory ansible può essere eseguita da qualsiasi installazione). Qual è la migliore pratica o altro modo per farlo?

@Saket è Corretto.

Se un container docker deve persistere il suo stato (in questo caso l'utente cambia qualcosa all'interno del contenitore), allora lo stato deve essere salvato da qualche parte … Come farebbe questo con un VM? Risposta: salva su disco.

L'archiviazione di k8s è rappresentata come un volume persistente. Qualcosa chiamato PVC (richiesta di volume persistente), viene utilizzato per mantenere la relazione tra il codice POD (codice) e il volume di archiviazione effettivo (i cui dettagli di implementazione sono stati estratti da). L'ultima versione di k8s support la creazione dynamic di volumi persistenti, quindi è necessario creare un PVC unico specifico per ciascun utente durante la distribuzione del loro contenitore (presuppongo che tu abbia un "Deployment" e "Service" per each utente anche).

In conclusione … inusuale per eseguire SSH all'interno di un contenitore. Hai pensato di dare a ciascun utente un proprio ambiente k8s? Ad esempio Openshift è multi-tenanted. Infatti Redhat sta integrando Openshift come backend per Eclipse Che , quindi gestendo l'integer IDE su k8s. Vedere:

https://openshift.io/

Ti consiglio di usare ConfigMaps ( https://github.com/kubernetes/kubernetes/blob/master/docs/design/configmap.md ). Questa guida dovrebbe aiutare ciò che stai cercando: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a- configMap-as-pod-ambiente-variables

Configmaps consente inoltre di memorizzare gli script, in modo da poter avere un file .bashrc (o una sezione) memorizzato in un confipmap.