‫W porządku. Ostatnie kilka wykładów, które rozpocząłeś,
‫aby zobaczyć wszystkie różne obszary Kubernetes, które się
‫rozwijają, prawda. Jeśli pomyślisz,
‫że to jak ten centralny mały glob tylko
‫binariów i podstawowa
‫infrastruktura Kubernetes, pierścienie stają się coraz większe,
‫prawda. Z
‫Ingress i wzorcem operatora oraz niestandardowymi definicjami zasobów.
‫Po prostu robi się coraz większy.
‫Teraz chcę z tobą porozmawiać o tym, jak
‫robi się jeszcze większy. W rzeczywistości jest to prawdopodobnie jedyny obszar, w
‫którym jest trochę szalony.
‫Dotyczy to opinii na
‫temat wdrażania YAML dla tych zasobów.
‫Do tej pory widziałeś, że zastosowanie ma kubectl.
‫Cóż, to pomoże Ci zacząć i prawdopodobnie poprowadzi
‫cię przez pierwsze wdrożenie orkiestratora kontenerów,
‫prawda. Będziesz ... bez
‫względu na to, czy używasz Swarma, czy Kubernetesa, dostaniesz
‫YAML, będziesz mieć repozytorium i będziesz je tam przechowywać, i
‫to będzie miało sens.
‫Gdy zaczniesz to rozszerzać i będziesz mieć zespoły, i
‫będziesz mieć uprawnienia i
‫różne rodzaje uprawnień, a także ludzi, którzy
‫będą musieli zarządzać lub zatwierdzać, wszystko staje się bardziej skomplikowane.
‫To, co wydarzyło się w tym świecie, w
‫jaki sposób wdrażać aplikacje na
‫Kubernetes, i na tym właśnie polega. Porozmawiamy o tym, że jest
‫ich teraz ponad 60, no cóż, naprawdę jest ich 80,
‫ale wiele z nich nie jest już prawdziwymi projektami, jest
‫martwych lub zarchiwizowanych.
‫Ale istnieje co najmniej
‫60 sposobów dodawania narzędzi na Kubernetes
‫po prostu do wdrażania aplikacji na Kubernetes.
‫Tak, jest wiele opinii.
‫W tym miejscu zaczynają pojawiać się opinie na temat
‫tego, jak powinieneś to robić. Wszystko od Jenkins X po Helm
‫i nie tylko. Istnieje wiele
‫różnych rzeczy i opinii na temat,
‫cóż, Kubernetes nie jest opiniotwórczą infrastrukturą, dlatego potrzebujemy opinii,
‫które poprowadzą ludzi przez
‫proces wdrażania i aktualizacji ich aplikacji.
‫Więc każdy ma jeden. Jeśli przeczytałeś coś
‫o tym, jak to zrobić w
‫Kubernetes, prawdopodobnie słyszałeś o Helmie. Helm do Kubernetes
‫to zasadniczo Kubernetes do kontenerów. Helm to de facto sposób,
‫w jaki
‫każdy chce tworzyć szablony i używać standardów
‫szablonów do wdrażania aplikacji innych firm lub
‫tworzenia własnych wykresów Helm.
‫Tak nazywają się wykresy.
‫Jest to w zasadzie szablonowa YAML, ale
‫pozwala Helmowi stworzyć lub
‫wypluć YAML, która następnie przejdzie do twojego
‫klastra Kubernetes. Ale to nie jedyna opinia, prawda.
‫Powiedziałem, że ostatnio mam ponad 60 lat.
‫W rzeczywistości jest link Google, który umieszczam w
‫linkach referencyjnych. Jest trochę przestarzały, ale jest to
‫ostatnia znana lista wszystkich miejsc, w których
‫można znaleźć różne sposoby wdrażania. Same Dockery mają własne zdanie,
‫które jest bardzo interesujące, zwłaszcza jeśli chcesz być
‫blisko ekosystemu Docker. To
‫jest Utwórz na Kubernetes.
‫Jeśli masz Docker Desktop, możesz
‫dziś włączyć Kubernetes, co prawdopodobnie już zrobiłeś dla
‫tej części kursu. Możesz użyć wdrożenia stosu
‫dokera, a zamiast przechodzenia do Swarm, możesz wysłać
‫go do Kubernetes.
‫Jeśli spojrzysz na komendę wdrażania stosu dokowania
‫i zajrzysz do pomocy, zobaczysz, że
‫istnieje opcja określania orkiestratora, którego
‫chcesz użyć. W rzeczywistości,
‫w ustawieniach Docker Desktop, możesz powiedzieć, aby preferował lub
‫domyślnie Kubernetes dla poleceń wdrażania stosu.
‫To dość interesujące, ponieważ myślałem, że Compose YAML różni
‫się od Kubernetes YAML.
‫Cóż, właśnie to robi teraz Compose on Kubernetes.
‫Zasadniczo jest to narzędzie innej firmy.
‫Jest to spekulatywny sposób, od Dockera, jak
‫wdrożyć, interpretować lub technicznie tłumaczyć YAML
‫Compose, format Compose, na YAML
‫formatu Kubernetes.
‫Dlatego umieściłem tutaj link, abyś mógł to
‫sprawdzić, jeśli jesteś kimś, kto będzie rozważał Docker Enterprise
‫jako narzędzie do zarządzania przedsiębiorstwem dla Kubernetes, Swarm
‫i Docker w ogóle.
‫Następnie zdecydowanie powinieneś to sprawdzić, ponieważ jest to
‫gotowe. Jedną z zalet tej
‫funkcji jest to, że przepływ pracy jest
‫bardzo prosty. Zasadniczo używasz
‫Compose YAML przez cały potok i możesz go używać
‫w Ops i Dev. Nie zmusza cię
‫to do powiedzenia: OK dla programistów, musisz mieć YAML
‫dla Compose oraz dla produkcji i serwerów, musisz mieć ten
‫Kubernetes YAML, i nie są kompatybilne, prawda.
‫Pomysł z Dockerem polegał na tym, że uznali to za
‫zbyt skomplikowane. Uprośćmy to.
‫Użyjmy tylko jednego standardu YAML dla całego
‫potoku sterowania.
‫I lubię to. Problem polega na
‫tym, że nie obsługuje wszystkiego pod
‫słońcem, co potrafi Kubernetes. Chodzi mi oczywiście
‫o to, że w Docker Docs mamy pojedynczą stronę z
‫listą wszystkich funkcji pliku tworzenia. Ale Kubernetes YAML jest
‫tak złożony, że musimy zagłębić się w wiele poleceń
‫i referencji API i tak dalej.
‫Tak wyraźnie, że nie może zrobić wszystkiego.
‫Fajną rzeczą jest to, że na stronie Compose
‫for Kubernetes rozmawiają o GitHubie o różnych funkcjach,
‫które obsługuje.
‫Tam obowiązuje zasada 80/20.
‫Innymi słowy, obsługuje 20 procent funkcji
‫Kubernetes, których 80 procent z nas prawdopodobnie potrzebuje.
‫Możesz więc zacząć od tego i sprawdzić, czy ten przepływ pracy
‫będzie dla Ciebie odpowiedni. Kolejną fajną
‫rzeczą jest pod koniec 2018 r., Że open
‫source, które komponują na Kubernetes, możesz więc wdrożyć je
‫na dowolnej posiadanej infrastrukturze Kubernetes, i działa to
‫po prostu jako interpreter. Tłumaczy za każdym razem,
‫gdy korzystasz z pliku Compose z Dockera i
‫używasz poleceń Docker, połączy klastra Kubernetes za
‫Ciebie, tłumaczy to automatycznie na YAML Kubernetes
‫i gotowe. W tym
‫momencie możesz faktycznie zignorować wiele YAML Kubernetes
‫dla swoich aplikacji. Wiesz, może
‫używasz Kubernetes YAML do infrastruktury, której nie
‫wdrażasz na co dzień. Ale być
‫może dla programistów, aby ułatwić im pisanie Compose
‫YAML i szybsze uruchomienie produkcji, możesz użyć Compose
‫na Kubernetes jako przepływu pracy.
‫Być może korzystasz z map Hełma,
‫które są rodzajem konkurującego standardu dla twojej
‫głównej infrastruktury. Ponieważ w Helm
‫chodzi o to, że jest on gotowy do pracy z
‫wieloma szablonami wykresów, abyś mógł wdrożyć rejestrowanie Prometheus
‫lub Elasticsearch za pomocą ELK, lub coś w tym rodzaju.
‫Będzie dostarczany z tymi szablonami od razu po wyjęciu
‫z pudełka, co pozwoli Ci szybciej zacząć.
‫Pamiętaj też, że wszystkie są opcjonalne, prawda.
‫Możesz zrobić Kubernetes ze standardowym YAML, z którym grałeś do
‫tej pory, i to jest w porządku.
‫Nie wymaga tych innych rzeczy.
‫To tylko opcjonalne narzędzia innych firm.
‫Tradycyjnie, gdy zespół się powiększa, kiedy dostajesz
‫wiele produkcyjnych klastrów Kubernetes i jest w
‫to zaangażowanych wiele zespołów, wtedy wszystko staje się
‫trudniejsze i prawdopodobnie skończysz z więcej niż
‫jednym rozwiązaniem. Możesz skończyć z Hełmem w niektórych klastrach.
‫Możesz skończyć z Compose na Kubernetes dla programistów lub
‫coś w tym rodzaju.
‫Lub jedno z pozostałych 60 narzędzi
‫w ekosystemie.
‫Ostatnią kwestią jest to, że ponieważ Helm jest obecnie liderem w
‫tej przestrzeni, prawie każda dystrybucja korzysta
‫z niego, obsługuje go, a nawet jest dostarczana po
‫wyjęciu z pudełka. Wystarczy wziąć
‫pod uwagę, że patrząc na te narzędzia, prawdopodobnie nie
‫można uniknąć Helma w dużym środowisku.
‫Musisz tylko z niego skorzystać.
‫Fajną rzeczą jest to, że obecnie jest na 3. 0 i że jest
‫o wiele prostsze opcje wdrażania w
‫3. 0 kontra 1. 0 i
‫2. 0. Tak więc przez
‫cały czas jest coraz lepiej. Wiele z tych narzędzi
‫wdrażania pomaga w tworzeniu szablonu YAML na różne
‫sposoby. Sam Kubernetes
‫tak naprawdę przez długi czas nic nie miał.
‫W ostatnich wydaniach pojawiło się coś o
‫nazwie Kustomize with K.
‫Kiedy zaczynasz widzieć to słowo za pomocą litery K, wiesz, że
‫jest to specjalna funkcja.
‫Pozwala robić rzeczy podobne do Helma i innych
‫rozwiązań wdrożeniowych, ale tak naprawdę nie
‫jest tak potężny
‫jak Helm.
‫Zatem Helm wciąż jest liderem.
‫Kustomize to coś w rodzaju nowego dziecka na bloku, ale jest gotowe
‫do użycia ze wszystkim, co robisz w Kubernetes.
‫Komenda kubectl obsługuje to.
‫Naprawdę to, co bierze, zamiast
‫szablonu YAML, to po prostu bierze YAML, który już masz,
‫czyli standardowy Kubernetes YAML, a następnie możesz wziąć ten
‫plik, a następnie uruchomić coś innego na nim
‫i zmienić go za pomocą przesłonięcia swego rodzaju.
‫Coś podobnego do tego, co robimy w Swarm.
‫W rzeczywistości mamy Swarm i Compose, mamy nadpisywane
‫pliki i takie tam.
‫Teraz mają to wbudowane.
‫Ma wiele funkcji.
‫Myślę, że mniej więcej nie ma go pod względem
‫zestawu funkcji Helma, ale przynajmniej wychodzi
‫z pudełka.
‫Pamiętaj, że jeśli masz Docker, najnowsze
‫wydanie, 19. 03 lub nowsza wersja
‫Docker, ma teraz podrzędną aplikację docker app, która wykonuje
‫własne tworzenie szablonów Compose YAML i
‫naprawdę jest bardzo porównywalna z tą dostosowaną opcją
‫dla Kubernetes. Ponownie, jeśli zamierzasz
‫pozostać przy ścieżce Docker i zastanowić się
‫nad Docker Enterprise lub po prostu naprawdę podoba ci się, jak
‫Docker skupia się na przepływie pracy programisty,
‫spójrz na podkomendę aplikacji dokera, a także repozytorium aplikacji dokera,
‫które Włożę tutaj zasoby.
‫Ponieważ mają dokumentację dotyczącą tego, w jaki sposób
‫możesz wziąć udział w komponowaniu YAML, wyodrębnij takie rzeczy, jak zmienne
‫środowiskowe i inne rzeczy. Spakuj wszystko w
‫jeden obraz, a następnie wyślij YAML jako obraz.
‫Co oznacza, że możesz teraz zaktualizować YAML i
‫wdrożyć go za pomocą pojedynczego wiersza,
‫bez konieczności ściągania YAML, a następnie wpisywania długich poleceń.
‫To całkiem interesujący sposób, aby to zrobić.
‫Korzysta z czegoś nowego, zwanego standardem CNAB, do którego nie
‫zamierzamy się tutaj dostać, ale to C
‫N A B.
‫Było to ogłoszenie, które Docker i Microsoft wydali w
‫2018 roku.
‫Możesz to wszystko sprawdzić na stronie aplikacji
‫Docker w zasobach. Ponownie, wszystkie te
‫rzeczy dotyczą opcjonalnych zewnętrznych sposobów dostosowywania i
‫rozszerzania domyślnego YAML, aby ułatwić zespołowi
‫rozwój.