I-Pine, i-Alpine linux ngokususelwa ku-OSTree
Ukukhetha ini OS run kumaseva akho kuyindaba elula nokujwayela. Ukuba lula kusho ukuthi ufuna okuthile okukunikeza izinkinga ezimbalwa ngangokunokwenzeka, ukujwayela kusho ukuthi ungathanda hhayi ukufunda izinto ezingeziwe uma ungadingi.
Amaseva ami izilwane ezifuywayongakho-ke kulungile ngikhipha imiyalo embalwa njalo ngesikhashana, futhi angidingi ukuzenzakalela okuphelele.
Ngemuva kokuzama ICoreOS isikhathi esingangonyaka ngishintshela kweyami eyenziwe lula distro ngokususelwa ku-alpine futhi u-ostree.
Le nguqulo ye-alpine ithatha izinkomba kusuka ku- I-flatcar futhi iphrojekthi-athomu futhi kulindeleke ukuthi ifakwe njengohlelo lokufunda kuphela lwempande enezibuyekezo ezenzeka nge-athomu, okungukuthi, ziyaphumelela noma uhlelo lubuyela esimweni esedlule. Ukuze lokhu kwenzeke ohlelweni kufanele okungenani kube nakho okungenani izifinyezo ezimbili yohlobo lwefayela lohlelo olukhishiwe, olutholakala ekugcineni.
Kuzosebenza kuziphi izindawo uhlelo? Ngikhombe I-OVZ ne- [KVM], kepha ngokujwayelekile ungasho iziqukathi futhi imishini ebonakalayo ngomehluko omkhulu ukuthi iziqukathi azisebenzi i-kernel yazo, ikakhulukazi ayinayo inqubo yokuqalisa, zibiza ngqo ku init system (okuyisibonelo kuDockerfile
kungachazwa yiCMD
nomaENTRYPOINT
izitatimende), esibhekele ukuphatha isihlahla semithamo esizogcina isitsha sisebenza (njengeseshini ejwayelekile, uma inqubo ye-init ifa, isitsha siyaphela). Futhi iziqukathi azikwazi ukumisa izinkinobho zohlelo, futhi zingaba nemikhawulo eyengeziwe emandleni.
Isithombe sakhiwa kanjani?
I-prepare.sh
iskripthi sisingatha ukuncika, iningi lakhona okungamaphakeji okunikela ngamathuluzi ajwayelekile we-ehl afana ne-coreutils
, util-linux
, binutils
, Izinsiza ezisebenza ngamadivayisi we-block njengeblkid
, sfdisk
, multipath-tools
nezinhlelo zamafayela ngexfsprogs
futhie2fsprogs
. I-squashfs-tools
package isetshenziswa ekugcineni ukucindezela uhlelo lwefayela lempande elakhiwe. Aglib
iphakethe lokuhambisana nalo lifakwe ngokuzenzakalela ngoba i-alpine isuselwe ku-musl
, iphakethe lokuhambisana lisebenza ngokunikela ngemitapo yolwazi ethile eyakhelwe ngokumelene nayo.
Izihlahla zefayela zawo womabili ama-VM neziqukathi zakhiwa ngokulandelanamake.sh
futhimake_ovz.sh
. Le incazelo elula yezinyathelo
setha inguqulo ukuthi yakhiwe ngokuya ngomaki wokugcina
dala umkhombandlela wesihlahla esisha bese usula imvelo
dala izinkomba eziqondisiwe eziyisisekelo nezikhombisi-ndlela ezidingeka nge-ostree, njengesysroot
dala ama-symlinks ukuze ahambisane ne- izinga lesistimu yefayela ejwayelekile
kopisha amasevisi wangokwezifiso nama-configs wangokwezifiso
isetro chroot enezinkomba eziqondisiwe zesistimu
i-bootstrap izimpande ze-alpine ezinamaphakeji wesisekelo
sebenzisa ukumiswa okuncane kuzimpande ezinjengeziqinisekiso, indawo yesikhathi, igama lomethuleli.
services izoqalwa yi-init
setha ukumiswa kwe-boot ngomfanekiso we-kernel ocacisiwe
engeza ngokuzithandela amamojula we-kernel yangokwezifiso
yenza ukuhlanza
nikela izimpande[1] endaweni yokugcina izinto ezisencane
Kwiziqukathi, ukulandelana kuyafana, kepha izinguquko zokumiswa, ngoba ngohlelo olungaboshiwe ku-a ukulanda I-ostree inezinkinga zokuqinisekisa imvelo, kufanele sisebenzise ezinye ukusebenza futhi usethe amanye amadivayisi avame ukuphathwa yifayela le- initramfs isinyathelo. Ngale ndlela I-OVZ noma I-LXC izifanekiso zilungiselelwe.
Lapho sesinesihlahla sethu samafayela esizinikele nge-ostreebuild.sh
nomabuild-update.sh
unakekela ukukhiqiza i-artifact ezosatshalaliswa. Umehluko phakathi kwemibhalo ukuthi inguqulo yokuvuselela iqala endaweni yokugcina yangaphambilini ye-ostree, futhi futhi ikhiqiza i-delta artifact lapho uhlelo olusebenzayo lungasebenza esimweni sayo se-ostree ukwenza ukuthuthuka. Le yincazelo eyenziwe lula yezinyathelo zokwakha
uma okusha build
dala izingxenye ezintsha kusithombe esisha esifakwe njengedivayisi ye-loop
okunye
ukukhweza okwe-sysroot ne-boot kokwakhiwa kwangaphambilini
hlanza ukusetshenziswa kwangaphambilini kwama-ostree (amapulazi wokuxhumanisa) esakhiweni esakhiwe
yenza umuthi omusha owakhiwe ekwakhiweni okwakhiwe
qinisekisa ubuqotho kanye namasheke
dala i-delta entsha yokuthuthuka
yenza ukuthunyelwa kwe-ostree ukuvuselela ukucushwa kwe-boot
susa izithembiso zakudala
qinisekisa ubuqotho bokuhlukanisa i-boot
yehlisa isithombe esakhiwe esisha
khiqiza i-checksum yesithombe bese usicindezela (ngesquashfs
iziqukathi)
Ukucushwa kokuhlukaniswa kusetshenziswa nge-fdisklayout.cfg
ifayela elichaza osayizi bokuhlukanisa, sinesahlukaniso esisodwa sezimpande (~430M
), ukwahlukaniswa kwebhuthi (~40M
) kanye nokwahlukanisa okushintshanayo (~40M
). Ngeziqukathi ezinokweqa nje ukufaka okwedlule ngokwedivayisi ye-loop, bese umane udonse ukuzibophezela okusha kwe-ostree ngaphezulu kwendawo endala (ekhishiwe) ye-ostree.
Yini engiyihlanganisa kulesi sithombe (ngaphandle kwamaphakeji afakiwe)?
I-lib encane ngaphakathifunctions.sh
yemisebenzi ejwayelekile eyenziwe ngaphakathi kweShell
imibhalo yokuvuselela esekwe ku-ostree enendlela yokukhiya esuselwa esitolo se-KV
ukuqapha imibhalo ye-IO yomibili yendawo (iomon
) kanye nenethiwekhi (tcpmon
)
imibhalo yokusetha yezikhathi zokusebenza zesitsha ngaphandle kwe-bubblewrap
: podman
, toolbox
Lokho okwake kwaba khona futhi akusekho
sup
: Sup yayisetshenziselwa i-orchestration (deploy container) nokumiswa komshini wokusingathwa, kepha ngabe sengishintshela ku ukuphendula ngoba bekukhona izimbungulu ezinde ezinde ku-sup ebezingalungiswa, angikhethanga ukuphendula kusukela ekuqaleni ngoba bengingafuni ukuncika kwe-python ukufaka kuwo wonke amaseva, ekugcineni ngazinza ne-alpine yesibili impumu kumishini yokubamba, etholakala ku-/opt/alp
ngabe ngifaka isoftware engabaluleki kangako. Namuhla, noma kunjalo, bengizophinda ngishintshe ukusuka kokungahambelani kuye phinfra , ngoba
iyi-python ngaphandle kwe-boilerplate (ansible has pseudoDSL
lokho kubangela ukuphathwa yikhanda okuningi kunalokho okuxazululayo)
yenza izindlela zayo ngemiyalo ecacile ye-ssh, ngakho-ke ayikho imfuneko yokuthembela ku-python kuma-target host
containerpilot
: Icala lokusebenzisa lomshayeli wesitsha ukuphatha ukuxhomekeka okuyinkimbinkimbi phakathi kweziqukathi ngaphandle kwemibhalo yeShell ... iyeke ukuthola izibuyekezo ezivela kuzo thabile futhi yabekwa kwimodi yesondlo, angithandanga nezidingo zememori nokusetshenziswa kwememori kungenzeka kukhule njalo isikhathi eside sesikhathi sokuphumula. Ngiyishintshele imibhalo elula yeShell nge inxusa , Ngingahle ngibheke ezinye izindlela ezifanele uma imibhalo yeShell iqala ukukhula kakhulu. Izixazululo ezisindayo njenge kubernetes, isibumbu noma nomad balahlwa kusukela ekuhambeni.
beegfs
Ngangithumela imodyuli yekernel edingekayo izinyosi kepha ngemuva kwesikhashana kwephule ukuhambisana, kanye neqiniso lokuthi bekungasekelwa kahle fuse module eyenziwe ukuyilahla ngokuphelele, njengamanje angisebenzisi i- [DFS] kumaseva wami, kepha kungenzeka ukuthi ngilungele ukuhamba nohlelo lwefayela lokufaka inethiwekhi kusakhanga.
Ukufaka isithombe ungasilayisha kumhlinzeki wokusingathwa bese usifaka kusuka ku-VNC, uma kwenzeka kuba nemishini ebonakalayo, kepha ngivame ukuduna ukufakwa okukhona, ngoba kuhlala kunokwenzeka, inqobo nje uma ngivivinye iskripthi sokusetha ngohlobo lwe ukusatshalaliswa kwe-linux, imvamisa ngisebenzisa i-debian-8 noma i-ubuntu-14, angizange ngivivinye ezinye ngoba lokhu ngihlale ngithola ukuthi lokhu kuyatholakala. Izinyathelo zokusetha ziyalandela
qinisekisa ukusekelwa kwe-https kokulandiwe
landa inguqulo ye-busybox
faka i-busybox link-farm
nquma amakheli we-ipv4 / ipv6 wokumiswa kwenethiwekhi
qinisekisa amakhono we-chroot
landa isithombe sikaphayini bese usikhipha
uma i-VM
ukukhanya phezu kwelitshe ledivayisi
khwela phezu kwensimbi yeluphu
bhala ukumiswa kwenethiwekhi yendawo ngaphezulu kwe- ukuze kukhanye izimpande
uma isitsha
kopisha insizakalo ye-init (yeziqukathi) ngaphezulu kwephuzu eliyinhloko lezimpande/sbin/init
uma i-VM
ukwahlukanisa idiski engakwesokunxele ngokujwayelekile (xfs
) ukwahlukanisa
yehlisa
qinisekisa ubuqotho bokuhlukaniswa
qala kabusha
ngenze uphayini 5 years from time of writing and I am still using it, and I see no reasons to switch to anything else. Alpine as a linux distro is great, simple, and I have never experienced breakage. I can easily deploy on OKUDLALIWE amaseva ajwayele ukunikela ngezinsizakusebenza eziphansi kakhulu, empeleni nginebhokisi elisebenza nge-just64M
ye-RAM, futhi ngisenazo zonke izici engizidingayo.
[1] | uhlelo lwefayela lempande |