VPN കോൺഫിഗറേഷൻ കണ്ടെയ്നർ വീണ്ടും സൃഷ്ടിക്കുമ്പോൾ അത് മൗണ്ട് ചെയ്താൽ മാത്രം നിലനിൽക്കും
പ്രവർത്തിക്കുന്ന കണ്ടെയ്നറിനുള്ളിൽ തിരുത്തിയ ഫയൽ അപ്രത്യക്ഷമാകുന്ന പാളിയിലാണ്. bind mount, volume, secret എന്നിവ താരതമ്യം ചെയ്ത്, പിന്നീട് വീണ്ടും സൃഷ്ടിച്ച് നാല് കാര്യങ്ങൾ പരിശോധിക്കുക.
പ്രവർത്തിക്കുന്ന കണ്ടെയ്നറിനുള്ളിൽ WireGuard കോൺഫിഗറേഷൻ തിരുത്തുന്നു, അത് പ്രവർത്തിക്കുന്നു, പിന്നീട് അടുത്ത image അപ്ഡേറ്റ് അത് മായ്ക്കുന്നു. ഒന്നും തെറ്റായി കോൺഫിഗർ ചെയ്തിരുന്നില്ല. ഫയൽ കണ്ടെയ്നറിന്റെ എഴുതാവുന്ന പാളിയിലാണ് ഉണ്ടായിരുന്നത്, അത് ആ കണ്ടെയ്നർ ഇൻസ്റ്റൻസിന് മാത്രമുള്ളതാണ്. പ്രധാന താരതമ്യം ഏത് ഉപകരണം ഉപയോഗിക്കണം എന്നതല്ല, മറിച്ച് നിങ്ങളുടെ ഡിപ്ലോയ്മെന്റ് ഏത് ഇൻപുട്ടുകൾ പ്രഖ്യാപിക്കുന്നു എന്നതാണ്. കൈകൊണ്ട് തിരുത്തിയതെല്ലാം ഡിപ്ലോയ്മെന്റിന് അറിയാത്ത ഇൻപുട്ടാണ്.
രണ്ട് തരം അവസ്ഥ, ഒന്ന് വലിച്ചെറിയാവുന്നത്
കണ്ടെയ്നറിന് റൺടൈമിൽ വരുത്തിയ മാറ്റങ്ങൾക്കായി എഴുതാവുന്ന പാളിയുണ്ട്, കണ്ടെയ്നർ മാറ്റിസ്ഥാപിക്കുമ്പോൾ ആ പാളി ഉപേക്ഷിക്കപ്പെടുന്നു. അത് കോൺഫിഗറേഷൻ സംഭരണിയല്ല, ബാക്കപ്പുമല്ല. image ഉം പ്രഖ്യാപിത ഇൻപുട്ടുകളുമാണ് പ്രവർത്തിക്കുന്നതിന്റെ പൂർണ്ണ നിർവചനം.
നിങ്ങളുടെ ഏത് VPN ഫയലുകളാണ് പ്രഖ്യാപിത ഇൻപുട്ടുകൾ, ഏതാണ് യാദൃച്ഛികം എന്ന് ചോദിക്കുക:
docker diff wg-vpn
docker inspect --format '{{json .Mounts}}' wg-vpndiff എഴുതാവുന്ന പാളിയിൽ എന്ത് മാറി എന്ന് പട്ടികപ്പെടുത്തുന്നു, അത് കൃത്യമായി അപ്രത്യക്ഷമാകുന്ന കാര്യങ്ങളുടെ കൂട്ടമാണ്. mount പട്ടിക എന്ത് നിലനിൽക്കുന്നു എന്ന് കാണിക്കുന്നു. രണ്ടും താരതമ്യം ചെയ്യുന്നത് എന്തെങ്കിലും നഷ്ടപ്പെടുന്നതിന് മുമ്പ് ചോദ്യത്തിന് ഉത്തരം നൽകുന്നു.
bind mount, പേരുള്ള volume അല്ലെങ്കിൽ secret: ഓരോന്നും എന്ത് സംരക്ഷിക്കുന്നു
മൂന്നും VPN പ്രൊഫൈൽ സൂക്ഷിക്കാം, ആർക്ക് അത് വായിക്കാം, മാറ്റിസ്ഥാപിക്കുമ്പോൾ എന്ത് സംഭവിക്കും എന്നതിൽ അവ വ്യത്യസ്തമാണ്.
| Mechanism | Survives recreation | Who can read it |
|---|---|---|
| Writable layer | No | Anyone with container access, until it is gone |
| Bind mount | Yes, while the host path exists | Whatever the host permissions allow |
| Named volume | Yes, until the volume is removed | Managed by the runtime |
| Secret | Yes, as a declared input | The container process, by design |
bind mount ഒരു host പാത്ത് മാപ്പ് ചെയ്യുന്നു, അതിനാൽ ഫയൽ ആ പാത്ത് എത്ര സംരക്ഷിതമോ അത്രയും സംരക്ഷിതവും host അനുമതികൾ അനുവദിക്കുന്നത്ര ദൃശ്യവുമാണ്. പേരുള്ള volume runtime നിർവഹിക്കുന്നു, കണ്ടെയ്നർ നീക്കുമ്പോഴും നിലനിൽക്കുന്നു, ഇത് ഡിപ്ലോയ്മെന്റിന്റെ ഉടമസ്ഥതയിലുള്ള അവസ്ഥയ്ക്ക് സുരക്ഷിതമായ സ്ഥിരസ്ഥിതിയാക്കുന്നു. secret സംവിധാനം image-ലോ environment variable-ലോ നിങ്ങൾക്ക് വേണ്ടാത്ത വസ്തുവിനുള്ളതാണ്.
ഓരോ environment variable-ഉം ഓരോ host ഫയലും തുല്യമായ സംരക്ഷണമായി കാണരുത്, അവ അങ്ങനെയല്ല.
കണ്ടെയ്നറിനുള്ളിൽ തിരുത്തുന്നതാണ് കെണി
കെണി ഉപകരണമല്ല, തിരുത്തലിന്റെ ദിശയാണ്. പ്രവർത്തിക്കുന്ന കണ്ടെയ്നറിനുള്ളിൽ വരുത്തുന്ന മാറ്റം ഡിപ്ലോയ്മെന്റിന് അദൃശ്യമാണ്, അതിനാൽ അടുത്ത പുനഃസൃഷ്ടി അത് നിശബ്ദമായി തിരികെ കൊണ്ടുവരും, ലക്ഷണം image-ലെ റിഗ്രഷൻ പോലെ തോന്നും. രോഗനിർണയത്തിനായി അവിടെ മാറ്റം വരുത്തേണ്ടി വന്നാൽ, ഉടൻ പുറത്തേക്ക് പകർത്തി പ്രഖ്യാപിത ഇൻപുട്ടിൽ വയ്ക്കുക. പിന്നീട് ഡിപ്ലോയ്മെന്റ് അത് പുനരുൽപ്പാദിപ്പിക്കുന്നു എന്ന് തെളിയിക്കാൻ വീണ്ടും സൃഷ്ടിക്കുക.
പ്രൊഫൈലിൽ സ്വകാര്യ കീകളും അക്കൗണ്ട് വസ്തുവും ഉണ്ടാകാം, അത് ആ ഫയലിന്റെ ബാക്കപ്പിനെ ഫയൽ പകർപ്പല്ലാതെ രഹസ്യ കൈകാര്യം ചെയ്യുന്ന ജോലിയാക്കുന്നു. ഉടമസ്ഥതയും വായനാ പ്രവേശനവും കണ്ടെയ്നറിന്റെ യഥാർത്ഥ പ്രോസസ്സിലേക്ക് പരിമിതപ്പെടുത്തുക, അനുമതി പിശക് മാറാൻ host ഡയറക്ടറി വിശാലമാക്കുന്നതിന് പകരം.
ആ വിശാലമാക്കലാണ് കണ്ടെയ്നറിലെ സൗകര്യം host-ന്റെ വെളിപ്പെടുത്തലാക്കി മാറ്റുന്നത്.
ഉദ്ദേശ്യപൂർവ്വം വീണ്ടും സൃഷ്ടിക്കുക, പിന്നീട് നാല് കാര്യങ്ങൾ പരിശോധിക്കുക
image പതിപ്പ്, ആവശ്യമായ ഉപകരണവും കഴിവുകളും, നെറ്റ്വർക്ക് ബന്ധം, സ്ഥിര ഇൻപുട്ടുകൾ എന്നിവ രേഖപ്പെടുത്തുക. ഉപകരണ-കഴിവ് പട്ടിക VPN കണ്ടെയ്നറിന് പ്രത്യേകിച്ച് പ്രധാനമാണ്, കാരണം ടണലിന് നെറ്റ്വർക്ക് ഉപകരണവും അത് കോൺഫിഗർ ചെയ്യാനുള്ള പ്രത്യേകാവകാശവും വേണം.
ഏത് ഉൽപ്പാദിത റൺടൈം അവസ്ഥ സൂക്ഷിക്കുന്നതിന് പകരം പുനർനിർമ്മിക്കണം എന്ന് സ്ഥിരീകരിക്കുക. ടണൽ ആദ്യ വിക്ഷേപത്തിൽ ഉൽപ്പാദിപ്പിച്ച കീകൾ അവസ്ഥയാണ്, അവ സൂക്ഷിക്കണോ വീണ്ടും ഉൽപ്പാദിപ്പിക്കണോ എന്ന തീരുമാനത്തിന് പഴയ പൊതു കീ അറിയുന്ന ഓരോ peer-നും പ്രത്യാഘാതങ്ങളുണ്ട്.
നിയന്ത്രിത പുനഃസൃഷ്ടിക്ക് ശേഷം ഐഡന്റിറ്റി, റൂട്ടിംഗ്, DNS, ആവശ്യമായ പരാജയ-ബ്ലോക്ക് എന്നിവ പരിശോധിക്കുക. പിശകില്ലാതെ തുടങ്ങുന്ന പ്രോസസ്സ് ഈ നാലിൽ ഒന്നും തെളിയിക്കുന്നില്ല. ടണൽ പ്രവർത്തിക്കുമ്പോഴും നിർത്തിയ ശേഷവും വീണ്ടും പരിശോധിക്കുക, കാരണം പരാജയ-ബ്ലോക്ക് ടണൽ പോകുമ്പോൾ മാത്രം സ്വയം കാണിക്കുന്നു.
കണ്ടെയ്നറിന് പുറത്ത് വീണ്ടെടുപ്പ് പകർപ്പ് സൂക്ഷിക്കുക
കണ്ടെയ്നറിൽ നിന്ന് സ്വതന്ത്രമായി ജീവിക്കുന്ന വീണ്ടെടുപ്പ് പകർപ്പ് സൂക്ഷിക്കുക, രേഖപ്പെടുത്തിയ നടപടിക്രമത്തിലൂടെ അത് പുനഃസ്ഥാപിക്കുന്നത് പരീക്ഷിക്കുക. പരീക്ഷിക്കാത്ത VPN പ്രൊഫൈൽ ബാക്കപ്പ് ഒരു പ്രതീക്ഷയാണ്, പ്രത്യേകിച്ച് വീണ്ടെടുപ്പ് പാതയിൽ കണ്ടെയ്നർ പ്രോസസ്സിന് വേണ്ട അനുമതികൾ ഉൾപ്പെടുമ്പോൾ.
VPN ഉള്ള കണ്ടെയ്നർ മാറ്റിസ്ഥാപിക്കപ്പെട്ടാൽ, അതിന്റെ നെറ്റ്വർക്ക് സ്റ്റാക്ക് പങ്കിടുന്ന ആപ്ലിക്കേഷനുകൾ runtime-ന്റെ പിന്തുണയുള്ള ജീവിതചക്രത്തിൽ ഏകോപിപ്പിക്കുക.
ആ ഏകോപനമാണ് പുനരാരംഭവും തടസ്സവും തമ്മിലുള്ള വ്യത്യാസം. ഡിപ്ലോയ്മെന്റ് കോൺഫിഗറേഷൻ എവിടെ നിന്ന് വരുന്നു എന്ന് വിവരിക്കണം, volume രേഖകളാണ് runtime യഥാർത്ഥത്തിൽ എന്ത് നിലനിർത്തുന്നു എന്ന് പരിശോധിക്കുന്ന സ്ഥലം.