O le a le matagofie o le fa'amavaeina o le koneteina taimi ta'avale i vaega eseese meafaigaluega? Aemaise lava, o nei meafaigaluega e mafai ona amata tuʻufaʻatasia ina ia puipuia e le tasi le isi.
E toʻatele tagata e tosina atu i le manatu o le fausiaina o ata o le OCI i totonu
O le mea lea e taumafai ai tagata e fa'asolo Buildah i totonu o se atigipusa. I se faapuupuuga, na matou faia
tonu
O nei ata e fausia mai Dockerfiles, lea e mafai ona maua i le faleteuoloa Buildah i totonu o le pusa
O iinei o le a tatou iloiloina
# stable/Dockerfile
#
# Build a Buildah container image from the latest
# stable version of Buildah on the Fedoras Updates System.
# https://bodhi.fedoraproject.org/updates/?search=buildah
# This image can be used to create a secured container
# that runs safely with privileges within the container.
#
FROM fedora:latest
# Don't include container-selinux and remove
# directories used by dnf that are just taking
# up space.
RUN yum -y install buildah fuse-overlayfs --exclude container-selinux; rm -rf /var/cache /var/log/dnf* /var/log/yum.*
# Adjust storage.conf to enable Fuse storage.
RUN sed -i -e 's|^#mount_program|mount_program|g' -e '/additionalimage.*/a "/var/lib/shared",' /etc/containers/storage.conf
Nai lo le OverlayFS, faʻatinoina i le Linux kernel level, matou te faʻaogaina le polokalame i totonu o le pusa
podman run --device /dev/fuse quay.io/buildahctr ...
RUN mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock
Ona sosoo ai lea ma le faia o se lisi mo le teuina faaopoopo.
# Set up environment variables to note that this is
# not starting with user namespace and default to
# isolate the filesystem with chroot.
ENV _BUILDAH_STARTED_IN_USERNS="" BUILDAH_ISOLATION=chroot
Ma le mea mulimuli, e ala i le faʻaaogaina o le BUILDAH_ISOLATION environment variable, matou te taʻu atu i le Buildah container e tamoe ma le vavaeeseina o le chroot e ala i le faaletonu. E le manaʻomia se faʻamalosaga faaopoopo iinei, talu ai o loʻo matou galulue i totonu o se pusa. Ina ia mafai e Buildah ona fai ana lava koneteina vaelua-vaega, e mana'omia le avanoa SYS_ADMIN, lea e mana'omia ai le fa'amalieina o tulafono SELinux ma SECCOMP a le koneteina, lea e fa'afeagai ma lo tatou mana'o e fau mai se pusa malu.
Tafe le Buildah i totonu o se koneteina
O le ata Buildah container image o lo'o talanoaina i luga e mafai ai ona e fetu'una'i suiga auala e fa'alauiloa ai ia koneteina.
Saosaoa ma le saogalemu
O le saogalemu o komepiuta e masani lava o se fetuunaiga i le va o le saoasaoa o le faagasologa ma le tele o le puipuiga o loʻo afifi ai. E moni foi lenei faʻamatalaga pe a faʻapipiʻi pusa, o lea i lalo ifo o le a tatou iloiloina filifiliga mo sea fetuunaiga.
O le atigipusa ata o loʻo talanoaina i luga o le a teuina lona teuina i /var/lib/containers. O le mea lea, e tatau ona matou faʻapipiʻi mea i totonu o lenei faila, ma pe faʻafefea ona matou faia o le a matua aʻafia ai le saoasaoa o le fausiaina o ata atigipusa.
Seʻi o tatou iloiloina ni filifiliga se tolu.
1 filifiliga. Afai e manaʻomia le puipuiga sili, ona mafai lea ona e fatuina lau lava faila mo pusa / ata ma faʻafesoʻotaʻi i le koneteina e ala i le voluma-mount. E le gata i lea, tuʻu le faʻasalalauga faʻasalalauga i totonu o le koneteina lava ia, i totonu o le /build folder:
# mkdir /var/lib/containers1
# podman run -v ./build:/build:z -v /var/lib/containers1:/var/lib/containers:Z quay.io/buildah/stable
buildah -t image1 bud /build
# podman run -v /var/lib/containers1:/var/lib/containers:Z quay.io/buildah/stable buildah push image1 registry.company.com/myuser
# rm -rf /var/lib/containers1
Puipuiga. O le fausiaina o loʻo taʻavale i totonu o se atigipusa faʻapea e iai le puipuiga sili: e le tuʻuina atu i ai soʻo se aʻa avanoa e faʻaaoga ai gafatia, ma faʻaoga uma tapulaʻa SECOMP ma SELinux i ai. 0:100000.
Faatinoga. Ae o le faʻatinoga iinei e laʻititi, talu ai o soʻo se ata mai faʻamaumauga o pusa e kopiina i le talimalo i taimi uma, ma e le aoga le caching. A maeʻa lana galuega, e tatau i le Buildah container ona tuʻuina atu le ata i le resitala ma faʻaumatia mea i luga o le talimalo. O le isi taimi e fausia ai le ata atigipusa, e tatau ona toe siiina mai le resitala, talu ai o le taimi lena e leai se mea e totoe i luga o le talimalo.
2 filifiliga. Afai e te manaʻomia le Docker-level performance, e mafai ona e faʻapipiʻi saʻo le pusa talimalo / teu i totonu o le koneteina.
# podman run -v ./build:/build:z -v /var/lib/containers:/var/lib/containers --security-opt label:disabled quay.io/buildah/stable buildah -t image2 bud /build
# podman run -v /var/lib/containers:/var/lib/containers --security-opt label:disabled quay.io/buildah/stable buildah push image2 registry.company.com/myuser
Puipuiga. Ole auala pito sili lea ona saogalemu e fausia ai pusa aua e mafai ai e le koneteina ona suia le teuina o talimalo ma mafai ona fafagaina Podman poʻo CRI-O se ata leaga. E le gata i lea, e te manaʻomia e faʻamalo le vavaeeseina o le SELinux ina ia mafai ai e faʻagasologa i totonu o le pusa Buildah ona fegalegaleai ma le teuina i luga o le talimalo. Manatua o lenei filifiliga e sili atu nai lo le Docker socket ona o le atigipusa o loʻo loka i lalo e ala i le tumau o le saogalemu ma e le mafai ona na o le taʻavaleina o se atigipusa i luga o le talimalo.
Faatinoga. O le maualuga lea, talu ai o loʻo faʻaaogaina atoa le caching. Afai ua uma ona sii mai e le Podman poʻo le CRI-O le ata manaʻomia i le talimalo, o le Buildah process i totonu o le atigipusa e le toe manaʻomia ona toe sii mai, ma o isi fausiaina e faʻavae i luga o lenei ata o le a mafai foi ona ave mea latou te manaʻomia mai le cache. .
3 filifiliga. O le aano o lenei metotia o le tuʻufaʻatasia o ni ata i totonu o se poloketi e tasi ma se pusa masani mo ata atigipusa.
# mkdir /var/lib/project3
# podman run --security-opt label_level=s0:C100, C200 -v ./build:/build:z
-v /var/lib/project3:/var/lib/containers:Z quay.io/buildah/stable buildah -t image3 bud /build
# podman run --security-opt label_level=s0:C100, C200
-v /var/lib/project3:/var/lib/containers quay.io/buildah/stable buildah push image3 registry.company.com/myuser
I lenei faʻataʻitaʻiga, matou te le tapeina le faila o le poloketi (/ var / lib / project3) i le va o taʻavale, o lea o mea uma e fausia i totonu o le poloketi e aoga mai le faʻaogaina.
Puipuiga. O se mea i le va o filifiliga 1 ma 2. I le tasi itu, o koneteina e le maua le avanoa i mea o loʻo i luga o le talimalo ma, e tusa ai, e le mafai ona faʻafefeina se mea leaga i totonu o le teuina o ata Podman / CRI-O. I le isi itu, o se vaega o lona mamanu, o se atigipusa e mafai ona faʻalavelave i le faʻapipiʻiina o isi pusa.
Faatinoga. O iinei e sili atu le leaga nai lo le faʻaaogaina o se faʻasoa faʻasoa i le tulaga talimalo, talu ai e le mafai ona e faʻaogaina ata ua uma ona sii mai e faʻaaoga ai le Podman / CRI-O. Ae ui i lea, o le taimi lava e sii mai ai e Buildah le ata, e mafai ona faʻaogaina le ata i soʻo se isi fausiaina i totonu o le poloketi.
teuina faaopoopo
У
Afai e te taʻavale i luga ma vaʻai i le Dockerfile matou te faʻaogaina e fausia ai le ata quay.io/buildah/stable, o loʻo i ai laina pei o lenei:
# Adjust storage.conf to enable Fuse storage.
RUN sed -i -e 's|^#mount_program|mount_program|g' -e '/additionalimage.*/a "/var/lib/shared",' /etc/containers/storage.conf
RUN mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock
I le laina muamua, matou te suia /etc/containers/storage.conf i totonu o le ata koneteina, taʻu atu i le avetaʻavale teuina e faʻaoga "additionalimagestores" i le /var/lib/shared folder. Ma i le laina e sosoo ai matou te fatuina se faila fefaʻasoaaʻi ma faʻaopoopo ni faila loka se lua ina ia leai se faʻaleagaina mai pusa / teuina. O le mea moni, o lo'o matou faia na'o se faleoloa ata o koneteina gaogao.
Afai e te fa'apipi'i koneteina/teuga i se tulaga maualuga atu nai lo le faila lea, e mafai e Buildah ona fa'aoga ata.
Seʻi o tatou toe foʻi i le Filifiliga 2 o loʻo talanoaina i luga, pe a mafai e le Buildah container ona faitau ma tusitusi i koneteina / faleoloa i luga o 'au ma, e tusa ai, e maualuga le faʻatinoga ona o le faʻaogaina o ata i le Podman / CRI-O tulaga, ae maua ai se puipuiga maualalo talu mai lena taimi. e mafai ona tusi saʻo i le teuina. Se'i o tatou fa'aopoopo le fa'aputuga fa'aopoopo iinei ma maua le mea sili o lalolagi uma e lua.
# mkdir /var/lib/containers4
# podman run -v ./build:/build:z -v /var/lib/containers/storage:/var/lib/shared:ro -v /var/lib/containers4:/var/lib/containers:Z quay.io/buildah/stable
buildah -t image4 bud /build
# podman run -v /var/lib/containers/storage:/var/lib/shared:ro
-v >/var/lib/containers4:/var/lib/containers:Z quay.io/buildah/stable buildah push image4 registry.company.com/myuser
# rm -rf /var/lib/continers4
Manatua o le /var/lib/containers/storage a le talimalo o loʻo faʻapipiʻiina i /var/lib/share i totonu o le atigipusa i le naʻo le faitau. O le mea lea, o le galue i totonu o se atigipusa, e mafai e Buildah ona faʻaogaina soʻo se ata na sii mai muamua e faʻaaoga ai le Podman / CRI-O (talofa, saoasaoa), ae mafai ona tusi i lona lava teuina (alofa, saogalemu). Ia maitauina foi e faia lenei mea e aunoa ma le faʻamalo ole SELinux vavae ese mo le pusa.
Faʻamatalaga taua
I lalo ole tulaga e tatau ona e tapeina soʻo se ata mai le fale teu oloa. A leai, e ono pa'u le koneteina Buildah.
Ma e le o mea lelei uma ia
O avanoa e teu ai fa'aopoopo e le fa'atapula'aina i le fa'aaliga o lo'o i luga. Mo se fa'ata'ita'iga, e mafai ona e tu'u uma ata o atigipusa i luga o se fa'aputuga feso'ota'iga fefa'asoaa'i ma tu'u avanoa i ai i pusa uma a le Buildah. Fa'apea e faitau selau ata e masani ona fa'aogaina e le matou CI/CD e fau ai ata. Matou te taulaʻi uma nei ata i luga o le tasi fale teu oloa ona faʻaaogaina lea o meafaigaluega e teu ai fesoʻotaʻiga (NFS, Gluster, Ceph, ISCSI, S3 ...), matou te tatalaina le avanoa lautele i lenei teuina i Buildah poʻo Kubernetes uma.
O lea ua lava le faʻapipiʻiina o lenei mea e teu ai fesoʻotaʻiga i totonu o le Buildah container on /var/lib/shared ma o le mea lena - Buildah containers e le toe manaʻomia ona sii mai ata e ala i le toso. O le mea lea, matou te lafoina i fafo le vaega muamua o le faitau aofaʻi ma sauni vave e taʻavale pusa.
Ma o le mea moni, e mafai ona faʻaaogaina i totonu o le Kubernetes system ola poʻo atinaʻe atigipusa e faʻalauiloa ma taʻavale ai pusa i soʻo se mea e aunoa ma se tosoina o ata. E le gata i lea, o le resitala o pusa, mauaina o se talosaga tulei e faʻapipiʻi se ata faʻafouina i ai, e mafai ona otometi ona tuʻuina atu lenei ata i se faʻasoa fesoʻotaʻiga teuina, lea e maua vave ai i nodes uma.
O ata o pusa e mafai ona o'o atu i le tele o gigabytes i nisi taimi. O le fa'atinoga o le fa'aputuga fa'aopoopo e mafai ai ona e 'alofia le fa'apipi'iina o ia ata i luga o pona ma fa'ato'a fa'atopetope fa'asolo ai pusa.
E le gata i lea, o loʻo matou galulue nei i se vaega fou e taʻua o le overlay volume mounts, lea o le a faʻateleina ai le fausiaina o pusa.
iʻuga
O le ta'avale Buildah i totonu o se atigipusa i Kubernetes/CRI-O, Podman, po'o Docker foi e mafai, faigofie, ma sili atu le saogalemu nai lo le fa'aogaina o le docker.socket. Ua matou matua faateleina le fetuutuunai o le galulue faatasi ma ata, ina ia mafai ona e faʻatautaia i latou i auala eseese e faʻamalieina ai le paleni i le va o le saogalemu ma le faʻatinoga.
O le faʻatinoga o le teuina faʻaopoopo e mafai ai ona e faʻavave pe faʻaumatia atoa le laʻuina o ata i nodes.
puna: www.habr.com