CoreOS Tectonic: Container Linux, Quay.io, rkt i etcd

Lekka dystrybucja Linuksa dla natywnych klastrów serwerów WWW Kubernetes & Aplikacje SaaS

CoreOS, firma zajmująca się tworzeniem oprogramowania chmurowego, która zarządza dystrybucją Container Linux, wydała niedawno Tectonic w wersji 1.64 (31.05.2017), który zapewnia szybki i łatwy sposób wdrożenia klastra Kubernetes do obsługi aplikacji internetowych / mobilnych w AWS lub samodzielnie hostowana sieć serwerów w chmurze. Core OS ma w ofercie GitHub ponad 100 projektów oprogramowania typu open source, w tym etcd, flannel, rkt, Ignition, Clair, Matchbox, dex i prometheus-operators. Tectonic jest darmowy dla klastrów Kubernetes zawierających do 10 węzłów, po których szereg różnych przedsiębiorstw, centrum danych, & licencje biznesowe są dostępne z profesjonalnym wsparciem technicznym. Quay.io to kolejny produkt SaaS w chmurze oferowany przez CoreOS na podstawie zastrzeżonej licencji, który pomaga zespołom DevOps zarządzać migawkami kontenerów za pomocą Dockera lub rkt, klastrów Kubernetes, Linuxa kontenerowego, & CoreOS Tectonic w produkcji na dużą skalę. Quay.io zawiera funkcje zarządzania migawkami kontenerów ze zintegrowanymi zabezpieczeniami, analizami, rozliczeniami, monitorowaniem, kompilacjami repozytoriów, automatycznymi kopiami zapasowymi oraz kontrolą wersji oprogramowania stosu serwerów WWW z zaawansowaną obsługą GitHub, Bitbucket lub Gitlab (Trigger kompilacji Dockerfile).


Lekka dystrybucja Linux dla natywnych klastrów serwerów WWW Kubernetes i aplikacji SaaS

CoreOS jest jedną z wiodących firm programistycznych opracowujących nowe rozwiązania chmurowe typu open source w systemie Linux, a firma została założona w garażu Palo Alto w Kalifornii przez Alexa Polvi (CEO), Brandona Philipsa (CTO) i Michaela Marineau w 2013 roku. Polvi sprzedał jego firma Cloudkick do Rackspace w 2010 roku, a następnie utworzyła Core OS z Philips (były programista jądra SUSE Linux) & Programista w chmurze Rackspace) & Marineau (od Google). Pierwotnym celem firmy było zbudowanie lekkiej dystrybucji Linuksa dla kontenerów, która replikowałaby to, z czym Google działał w swoich centrach danych "Borg". W tym czasie Kubernetes nie został jeszcze wydany publicznie ani na zasadach open source, ale po 2014/15, kiedy Linux Foundation przejęło zarządzanie platformą Kubernetes, CoreOS odegrał ważną rolę w Cloud Native Computing Foundation (CNCF) w celu “pomóc w ułatwieniu współpracy między programistami i operatorami w zakresie popularnych technologii.” Google następnie uruchomił także Google Container Engine dla Kubernetes i Docker (GKE) z wykorzystaniem obu standardów przyjętych na konkurencyjnych platformach chmurowych w AWS, Azure, OCP, VMware, RHEL itp. Prawie każda duża firma produkująca oprogramowanie chmurowe ma Kubernetes klastrowe rozwiązanie serwera sieciowego w 2017 r. z powszechnym użyciem etcd & Oprogramowanie rkt CoreOS (CloudFoundry, Fedora, ArchLinux). CoreOS Tectonic w dużej mierze konkuruje z GKE, RancherOS, Docker Swarm lub wykorzystując Kubespray jako opcję hostowanej chmury hybrydowej do samodzielnego zarządzania klastrami serwerów sieciowych bez systemu operacyjnego ("niezależny od dostawcy") sprzęt do centrum danych.

Lekka dystrybucja Linuksa dla natywnych klastrów serwerów WWW Kubernetes i aplikacji SaaS

CoreOS Container Linux został opracowany w celu zaspokojenia potrzeb określonych w słynnym artykule badawczym opublikowanym przez Google w 2013 roku, znanym jako "Centrum danych jako komputer: wprowadzenie do projektowania maszyn o skali magazynu." (Barroso, Clidaras, & Hölzle) W niniejszym dokumencie przedstawiono zasady tworzenia infrastruktury centrum danych w modelu chmurowym w przeciwieństwie do projektu z jednym serwerem. Dysponując sprzętem towarowym i milionami serwerów we wdrożeniach korporacyjnych, administratorzy sieci w chmurze muszą zaplanować nieunikniony procesor i pamięć RAM, & awaria innego sprzętu systemowego. Wiele kopii zapasowych i wiarygodność każdej z nich w przypadku awarii jednostki to główna część pamięci RAID, w której te same zasady dotyczą serwerów w chmurze w elastycznych klastrach za pomocą twierdzenia CAP & Algorytm Paxos. CoreOS rozwiązał te problemy za pomocą etcd, umożliwiając aktualizację klastrów Kubernetes poprzez samodzielną aktualizację & naprawianie procesów, które wypychają skoordynowane aktualizacje asynchroniczne na serwery przy użyciu blokad ponownego uruchamiania. Pozwala to na łatwiejsze stosowanie masowych aktualizacji poprawek zabezpieczeń w centrum danych na ogromnej liczbie serwerów montowanych w szafie jednocześnie. etcd ma lepsze aplikacje do przechowywania danych do zapisywania konfiguracji, kluczy prywatnych, zmian haseł i innych zmiennych środowiskowych dla serwerów WWW w przypadku awarii sprzętu, co uczyniło go głównym standardem w branży na różnych platformach na warunkach licencji open source. etcd jest używany przez Google (CFS, GFS, Big Table, Chubby, Spanner), Amazon (Replikowane logi E2), Microsoft (Boxwood), Hadoop (ZooKeeper) i wiele innych firm zajmujących się oprogramowaniem w chmurze do rozwiązania problemu Paxos w wyborach na lidera , dzielenie serwerów WWW, utrata prywatnych kluczy szyfrowania, & inne zmienne konfiguracyjne z awarią sprzętu centrum danych. Doker & Kontenery rkt izolują kod aplikacji internetowej / mobilnej, w tym dane wejściowe uruchamiane przez użytkownika ze sprzętowego systemu operacyjnego w celu lepszego ogólnego bezpieczeństwa odizolowanych danych w chmurze.

Film demonstracyjny: Brandon Philips (Linux Conference 2015 – Auckland, NZ)

CoreOS: Wprowadzenie – "Zmieniają się wzorce architektoniczne platformy na dużą skalę. Dedykowane maszyny wirtualne i narzędzia do zarządzania konfiguracją są zastępowane przez konteneryzację i nowe technologie zarządzania usługami, takie jak systemd. Ta prezentacja będzie zawierać przegląd ich kluczowych technologii, w tym etcd, floty i dokerów. Przyjdź i dowiedz się, jak korzystać z tych nowych technologii do tworzenia wydajnych, niezawodnych, dużych systemów rozproszonych." Dowiedz się więcej o CoreOS, Kubernetes, & Kontener Linux

Ważne jest zrozumienie różnic między kontenerami aplikacji a kontenerami systemowymi, które działają jako VM, takie jak VPS działający na platformach OpenVZ, KVM, Xen, Parallels, VMware itp. Kontenery stanowią alternatywny hiperwizor wirtualizacji, którego można użyć do tworzenia obiektowych rozwiązań w różnych warstwach centrum danych za pomocą izolowanych partycji. Maszyny VPS / VM można instalować i skalować w elastycznych klastrach w kontenerach i odwrotnie. Połączenie konfiguracji kontenerów z szeroką gamą innych platform wirtualizacyjnych dostępnych na rynku można wykorzystać do tworzenia kompleksowych rozwiązań dla firm IT, dostawców SaaS / PaaS / IaaS, aplikacji mobilnych i firm hostingowych. Większość rozwiązań kontenerowych nie obejmuje dedykowanego SSH & narzędzia sieciowe charakterystyczne dla instancji VPS lub VM, ale jest to część tego, co powoduje, że kontenery aplikacji używane w produkcji są oparte na najlżejszych dostępnych dystrybucjach Linuksa. Obecna praktyka w DevOps polega na włączeniu pełnego stosu Linuksa dla górnej warstwy kodu produkcyjnego w pakiecie ze wszystkimi określonymi rozszerzeniami serwera wymaganymi przez sieć & aplikacje mobilne poprzez pakiety kompilacyjne lub pliki binarne. Unikalny sposób, w jaki Docker i kontenery rkt wykorzystują jądro Unixa i Unix API, prowadzi do kombinacji izolowanych & globalne przestrzenie nazw, których można użyć do mapowania zmiennych konfiguracyjnych wewnątrz / na zewnątrz kontenerów w celu lepszego izolowanego zużycia zasobów na sprzęcie serwera WWW w centrach danych.

Lekka dystrybucja Linuksa dla natywnych klastrów serwerów WWW Kubernetes i aplikacji SaaS

rkt z CoreOS, Fedora, ArchLinux, & NixOS – "Podstawową jednostką wykonawczą rkt jest kapsuła, zbiór jednej lub więcej aplikacji wykonujących się we wspólnym kontekście (kapsuły rkt są synonimem koncepcji w systemie aranżacji Kubernetes). rkt umożliwia użytkownikom stosowanie różnych konfiguracji (takich jak parametry izolacji) zarówno na poziomie pod, jak i na bardziej szczegółowym poziomie na aplikację. Architektura rkt oznacza, że ​​każda kapsuła działa bezpośrednio w klasycznym modelu procesu uniksowego (tzn. nie ma centralnego demona), w niezależnym, izolowanym środowisku. rkt implementuje nowoczesny, otwarty, standardowy format kontenera, specyfikację App Apper (appc), ale może również wykonywać inne obrazy kontenerów, takie jak te utworzone za pomocą Dockera." Dowiedz się więcej o rkt Container Engine

Lekka dystrybucja Linuksa dla natywnych klastrów serwerów WWW Kubernetes i aplikacji SaaS

Budować & Wdróż pojemniki w skali: "Użyj Quay.io do automatyzacji kompilacji kontenerów, z integracją z GitHub, Bitbucket i nie tylko … Quay stale skanuje twoje kontenery w poszukiwaniu luk, dając ci pełny wgląd w znane problemy i sposoby ich naprawy." Dowiedz się więcej o Quay.io

Film demonstracyjny: Kelsey Hightower (CoreOS Workshop 2015 – Geekdom, SF)

Orkiestracja kontenerów przy użyciu CoreOS i Kubernetes – "Ten praktyczny warsztat … nauczy nowoczesnych praktyk w zakresie aranżacji kontenerów i pokaże przykłady współpracy komponentów w zarządzaniu klastrem kontenerów Linux. Dzięki możliwości zasilania infrastruktury w chmurze lub bez systemu, sesja wykorzysta Kubernetes z CoreOS jako przykład pokazujący uczestnikom, jak wdrażać i zarządzać wielowarstwową aplikacją internetową." Dowiedz się więcej o CoreOS & Kubernetes

Według Kelsey Hightower, znanego ewangelisty Kubernetesa, który pracował w Google & CoreOS, Kubernetes nie konkuruje z CloudFoundry, Heroku lub OpenDeis jako "pełna ścieżka" dla DevOps i rozwiązań hostingowych w chmurze w produkcji. Jest to raczej struktura wirtualizacji specjalizująca się przede wszystkim w zarządzaniu kontenerami, planowaniu i wykrywaniu usług, dzięki której wiele konkurujących firm PaaS / SaaS może tworzyć nowe rozwiązania typu open source z większą interoperacyjnością między platformami i przenośnością danych między dostawcami hostingu w chmurze. Wykrywanie usług Kubernetes dotyczy przede wszystkim monitorowania i regulowania liczby węzłów serwera w elastycznym klastrze oraz używania etcd do synchronizacji między kopiami z aktualizacjami zmiany stanu. W przeciwieństwie do Dockera, który używa wspólnych adresów IP dla kontenerów, Kubernetes zapewnia unikalny adres IP dla każdego zasobnika, utrzymując komunikację między wszystkimi węzłami serwera w sieci. Unikalne adresy IP oddzielają kod aplikacji internetowej / mobilnej od bazowego systemu operacyjnego kontenera, umożliwiając uruchamianie dowolnych rozszerzeń języka programowania, platformy serwera WWW lub niestandardowego stosu w produkcji, która jest zintegrowana z narzędziami do ciągłej publikacji lub kontroli wersji w DevOps. Inne alternatywy dla Dockera & Kontenery rkt to:

  • LXC
  • Cloud Foundry Garden
  • Mesos Containerizer
  • systemd-nspawn
  • Google lmctfy (zlikwidowany)

Planowanie zadań, wykrywanie usług, & zarządzanie klastrami to główne aspekty architektury centrów danych, które usprawniają kontenery w sieciach serwerów WWW. Przed wprowadzeniem postępów w CoreOS, RancherOS i innych rozwiązaniach Container Linux, programiści w pierwszym etapie hostingu w chmurze używali skryptów Chef / Puppet do udostępniania migawek kompilacji dla automatycznych instalacji kontenerów na dużą skalę. Kontenery ułatwiają obsługę wielu dzierżawców aplikacji Python, Java, Nginx, MySQL, OpenSSL itp. W czasie wykonywania. Kontenery zapewniają również większą elastyczność dla programistów w utrzymywaniu aktywnego kodu między aktualizacjami platformy rozszerzeń, aby łatać serwery WWW, zapewniając jednocześnie, że ciągłe aktualizacje zabezpieczeń nie psują kodu produkcyjnego. Ponieważ w praktyce jest to przysłowiowo trudne, zasadą aplikacji Container Linux jest uproszczenie systemu operacyjnego. Utrzymując tylko bezpieczeństwo jądra i nigdy nie psując interfejsu API jądra w Linuksie, kontenery mogą działać w przestrzeni użytkownika ze wszystkimi rozszerzeniami & narzędzia w izolacji z większym ogólnym bezpieczeństwem w zarządzaniu siecią wielu dzierżawców.

Lekka dystrybucja Linuksa dla natywnych klastrów serwerów WWW Kubernetes i aplikacji SaaS

CoreOS Container Linux – "Kubernetes to potężne oprogramowanie do zarządzania kontenerami inspirowane Google’doświadczenie operacyjne z kontenerami. Wbudowane są podstawowe funkcje, takie jak wykrywanie usług, automatyczne równoważenie obciążenia, replikacja kontenerów i inne. Plus, to’Wszystkie są zasilane przez interfejs API HTTP … Kontenery Linux zapewniają wiele korzyści zarówno twórcom aplikacji, jak i zespołom operacyjnym. Container Linux pozwala tylko na instalowanie oprogramowania jako kontenerów, co jest ważną warstwą abstrakcji między systemem operacyjnym a aplikacjami (i zależnościami) działającymi na wierzchu." Dowiedz się więcej o Container Linux

Wideo koncepcyjne: etcd v 3 – Brandon Philips (CTO / współzałożyciel CoreOS)

Raft: Distributed Consensus Protocol – "etcd jest napisany w Go, który ma doskonałą obsługę wielu platform, małe pliki binarne i wspaniałą społeczność. Komunikacja między maszynami etcd odbywa się za pomocą algorytmu konsensusowego Raft." Dowiedz się więcej o Raft DCP

System Kubernetes pozwala na stosowanie różnych komponentów w automatycznym skalowaniu poziomów klastrów węzłów serwera WWW, na przykład przy użyciu Terraform, Fleet (podobny do Systemu D), Mesos, CoreOS Tectonic, Docker Swarm itp., Gdzie etcd jest istotnym składnikiem ( podobny do Locksmith), który koordynuje zmiany stanu od zmian zmiennych wprowadzanych przez użytkownika w elastycznych klastrach z wieloma równoległymi procesami w izolacji. Marionetka & Można również wdrożyć skrypty szefa kuchni. W ten sposób administratorzy systemów mogą ustalić parametry, takie jak uruchomienie 100 instancji aplikacji SaaS (strona internetowa lub aplikacja mobilna) z 1 GB pamięci RAM, a program planujący Kubernetes utrzyma poziomy w zasobach systemowych, takie jak termometr skalujący serwery i zamykający węzły zgodnie z wymaganiami stanu sieci. Z tego powodu nie zaleca się używania dużych kompilacji z wieloma przechowywanymi plikami statycznymi w replikowanych serwerach kontenerowych opartych na kontenerach, co prowadzi do większej funkcjonalności pamięci masowej w chmurze opartej na API, z której mogą korzystać wszystkie serwery WWW z elastycznym węzłem, zgodnie z wymaganiami żądań ruchu https . Umożliwia to także mechanizmom wykrywania usług (SkyDNS, Discoverd, Confd, magicznym serwerom proxy itp.) Powiązanie geolokalizacji użytkownika z żądań przeglądarki w sieciach publicznych w celu lepszego równoważenia obciążenia, a także budowanie nowych rozwiązań dla wewnętrznego buforowania plików odwrotnego proxy w centrach danych dla lepsza wydajność hostingu.

Lekka dystrybucja Linuksa dla natywnych klastrów serwerów WWW Kubernetes i aplikacji SaaS

Kompilacja Dockerfile w chmurze – "Lubisz używać Dockerfiles do budowania swoich zdjęć? Po prostu prześlij plik Docker (i wszelkie dodatkowe potrzebne pliki), a my zbudujemy Twój plik Docker w obraz i wrzucimy go do Twojego repozytorium. Jeśli przechowujesz plik Dockerfile w GitHub, Bitbucket lub Gitlab, dodaj wyzwalacz kompilacji do swojego repozytorium, a my uruchomimy kompilację Dockerfile dla każdej wprowadzonej zmiany … Udostępniaj dowolne repozytorium tylu (lub tak niewielu) użytkownikom, jak Ty wybierać. Potrzebujesz repozytorium tylko dla swojego zespołu? Łatwo udostępniaj członkom swojego zespołu … Chcesz dzielić się ze światem? Ustaw swoje repozytorium w pełni publiczne." Dowiedz się więcej o Quay.io

Lekka dystrybucja Linuksa dla natywnych klastrów serwerów WWW Kubernetes i aplikacji SaaS

etcd & Stany klastra Kubernetes – "etcd to rozproszony magazyn wartości klucza, który zapewnia niezawodny sposób przechowywania danych w klastrze maszyn. To’s open source i dostępne na GitHub. etcd z wdzięcznością obsługuje wybory lidera podczas partycji sieciowych i toleruje awarie komputera, w tym lidera." Dowiedz się więcej o CoreOS & Kubernetes (etcd)

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me