Amazon yritys
Bottlerocket (muuten, pienille kotitekoisille mustajauheraketteille annettu nimi) ei ole ensimmäinen käyttöjärjestelmä konteille, mutta on todennäköistä, että se tulee yleistymään oletusarvoisen integroinnin AWS-palveluihin ansiosta. Vaikka järjestelmä on keskittynyt Amazon-pilveen, avoimen lähdekoodin avulla se voidaan rakentaa minne tahansa: paikallisesti palvelimelle, Raspberry Pi:lle, missä tahansa kilpailevassa pilvessä ja jopa konttittomassa ympäristössä.
Tämä on täysin arvokas korvaus CoreOS-jakelulle, jonka Red Hat hautasi.
Itse asiassa Amazon Web Services -divisioonalla on jo Amazon Linux, joka julkaisi äskettäin toisen versionsa: se on yleiskäyttöinen jakelu, jota voidaan käyttää Docker-säiliössä tai Linux KVM:n, Microsoft Hyper-V:n ja VMwaren kanssa. ESXi hypervisorit. Se optimoitiin toimimaan AWS-pilvessä, mutta Bottlerocketin julkaisun myötä kaikkia rohkaistaan päivittämään uuteen järjestelmään, joka on turvallisempi, nykyaikaisempi ja vähemmän resursseja käyttävä.
AWS ilmoitti Bottlerocketista
Äärimmäistä minimalismia
Linuxista on poistettu kaikki, mitä ei tarvita säiliöiden suorittamiseen. Tämä suunnittelu vähentää yrityksen mukaan hyökkäyspintaa.
Tämä tarkoittaa, että perusjärjestelmään asennetaan vähemmän paketteja, mikä helpottaa käyttöjärjestelmän ylläpitoa ja päivittämistä ja vähentää myös riippuvuuksista johtuvien ongelmien todennäköisyyttä, mikä vähentää resurssien käyttöä. Periaatteessa kaikki täällä toimii erillisten säiliöiden sisällä, ja taustalla oleva järjestelmä on käytännössä paljas.
Amazon on myös poistanut kaikki kuoret ja tulkit, mikä eliminoi riskin, että niitä käytetään tai käyttäjät voivat vahingossa laajentaa oikeuksiaan. Minimalismin ja turvallisuuden vuoksi peruskuva ei sisällä komentokullia, SSH-palvelinta tai tulkittuja kieliä, kuten Python. Järjestelmänvalvojan työkalut sijoitetaan erilliseen palvelusäiliöön, joka on oletuksena poistettu käytöstä.
Järjestelmää hallitaan kahdella tavalla: API:n ja orkestroinnin kautta.
Yksittäisiä ohjelmistoja päivittävän paketinhallinnan sijaan Bottlerocket lataa täydellisen tiedostojärjestelmän kuvan ja käynnistää sen uudelleen. Jos lataus epäonnistuu, se palautuu automaattisesti, ja työkuorman virhe voi laukaista palautuksen manuaalisesti (komento API:n kautta).
puitteissa /etc
asennettu tiedostojärjestelmän kanssa RAM-muistiin /etc
ei tueta: tallentaaksesi asetukset sinun tulee käyttää API:ta tai siirtää toiminnallisuus erillisiin säilöihin.
API-päivityssuunnitelma
Безопасность
Säilöt luodaan Linux-ytimen vakiomekanismeilla - cgroups, namespaces ja seccomp, ja niitä käytetään pakotettuna pääsynhallintajärjestelmänä eli lisäeristykseen.
Oletuksena käytännöt ovat käytössä resurssien jakamiseksi säilöjen ja ytimen välillä. Binaarit on suojattu lipuilla estämään käyttäjiä tai ohjelmia suorittamasta niitä. Ja jos pääset tiedostojärjestelmään, Bottlerocket tarjoaa työkalun tehtyjen muutosten tarkistamiseen ja seuraamiseen.
"Verified boot" -tila toteutetaan laite-mapper-verity-toiminnolla (
Järjestelmässä on myös suodatin
Toteutusmalli
Käyttäjän määrittelemä
Kokoelma
Безопасность
Virhetila
Pääsy resursseihin
käyttäjä
tehtävä
kyllä
kaikki
käyttöoikeudet
keskeyttää suoritus
järjestelmäkutsu, vika
Ydin
tehtävä
ei
staattinen
ei
ytimen paniikki
прямой
BPF
tapahtuma
kyllä
JIT, CO-RE
tarkastus, JIT
virheviesti
rajalliset avustajat
Miten BPF eroaa tavallisesta käyttäjä- tai ydintason koodista
AWS sanoi, että Bottlerocket "käyttää toimintamallia, joka lisää turvallisuutta entisestään estämällä yhteydet tuotantopalvelimiin, joilla on järjestelmänvalvojan oikeudet" ja "sopii suuriin hajautettuihin järjestelmiin, joissa kunkin yksittäisen isäntä on rajoitettu".
Järjestelmänvalvojille tarjotaan järjestelmänvalvojan säilö. Mutta AWS ei usko, että järjestelmänvalvojan tarvitsee usein työskennellä Bottlerocketin sisällä: "Erilliseen Bottlerocket-esiintymään kirjautuminen on tarkoitettu harvoin tapahtuviin toimintoihin: edistyneeseen virheenkorjaukseen ja vianetsintään."
Ruosteen kieli
Ytimen päällä oleva käyttöjärjestelmäinstrumentointi on enimmäkseen kirjoitettu Rustilla. Tämä kieli on luonteeltaan
Lippuja käytetään oletuksena rakennuksen aikana --enable-default-pie
и --enable-default-ssp
mahdollistaa suoritettavien tiedostojen osoiteavaruuden satunnaistaminen (
C/C++-paketteihin sisältyy lisälippuja -Wall
, -Werror=format-security
, -Wp,-D_FORTIFY_SOURCE=2
, -Wp,-D_GLIBCXX_ASSERTIONS
и -fstack-clash-protection
.
Rustin ja C/C++:n lisäksi osa paketeista on kirjoitettu Go-kielellä.
Integrointi AWS-palveluihin
Erona vastaaviin konttikäyttöjärjestelmiin on se, että Amazon on optimoinut Bottlerocketin toimimaan AWS:ssä ja integroitumaan muihin AWS-palveluihin.
Suosituin konttiorkesteri on Kubernetes, joten AWS on ottanut käyttöön integraation oman Enterprise Kubernetes -palvelunsa (EKS) kanssa. Orkesterityökalut toimitetaan erillisessä ohjauslaatikossa
On mielenkiintoista nähdä, lähteekö Bottlerocket nousuun, kun otetaan huomioon joidenkin vastaavien aloitteiden epäonnistuminen aiemmin. Esimerkiksi Vmwaren PhotonOS osoittautui lunastamattomaksi, ja RedHat osti CoreOS:n ja
Bottlerocketin integrointi AWS-palveluihin tekee tästä järjestelmästä ainutlaatuisen omalla tavallaan. Tämä on ehkä tärkein syy siihen, miksi jotkut käyttäjät saattavat suosia Bottlerocketia muihin distroihin, kuten CoreOS:ään tai Alpiseen. Järjestelmä on alun perin suunniteltu toimimaan EKS:n ja ECS:n kanssa, mutta toistamme, että tämä ei ole välttämätöntä. Ensinnäkin Bottlerocket voi
Bottlerocket-lähdekoodi on julkaistu GitHubissa Apache 2.0 -lisenssillä. Kehittäjät ovat jo
Mainonnan oikeuksista
VDSina tarjoukset
Lähde: will.com