Wdróż Kubernetes za pomocą Kubeadm na CentOS 7
Omówienie Ten artykuł ma na celu pomóc ci w szybkim uruchomieniu klastra Kubernetes z kubeadm. W tym przewodniku zostaną wdrożone dwa serwery
W tym przewodniku pokazano, jak utworzyć i skonfigurować rój Docker przy użyciu wielu serwerów Alpine Linux 3.9.0 i Portainer. Należy pamiętać, że Vultr oferuje aplikację dokującą One-Click, która obecnie obsługuje zarówno CentOS 7 x64, jak i Ubuntu 16.04 x64.
Aby rozpocząć, potrzebujesz co najmniej dwóch serwerów VC2 z systemem Alpine Linux 3.9.0. W roju Docker jeden z tych serwerów będzie działał jako manager node
interfejs z sieciami zewnętrznymi i delegowanie zadań do węzłów roboczych. Drugi serwer będzie wówczas działał jako worker node
- wykonywanie zadań przekazanych mu przez węzeł menedżera.
Pamiętaj, że możesz uruchomić więcej niż dwa serwery, jeśli aplikacja wymaga redundancji i / lub większej mocy obliczeniowej, a kroki opisane w tym przewodniku nadal będą miały zastosowanie.
Odwiedź interfejs wdrażania serwera Vultr .
Upewnij się, że Vultr Cloud (VC2)
karta jest zaznaczona u góry strony.
Możesz wybrać dowolną lokalizację z Server Location
sekcji, jednak wszystkie serwery muszą znajdować się w tej samej lokalizacji , w przeciwnym razie nie będzie można zainstalować na nich roju Docker.
Wybierz ISO Library
zakładkę Server Type
sekcji i wybierz Alpine Linux 3.9.0 x86_64
obraz.
Wybierz odpowiednią opcję z Server Size
sekcji. W tym przewodniku zostanie wykorzystany rozmiar serwera SSD 25 GB, ale może to być niewystarczające do spełnienia wymagań dotyczących zasobów aplikacji. Podczas gdy Vultr ułatwia aktualizację rozmiaru serwera po jego uruchomieniu, nadal powinieneś dokładnie zastanowić się, który rozmiar serwera musi optymalnie działać.
W Additional Features
sekcji musisz wybrać Enable Private Networking
opcję. Podczas gdy inne opcje nie są wymagane, aby postępować zgodnie z tym przewodnikiem, należy rozważyć, czy każda z nich ma sens w kontekście aplikacji.
Jeśli wcześniej włączyłeś tę Multiple Private Networks
opcję na swoim koncie, musisz albo wybrać istniejącą, albo utworzyć nową prywatną sieć dla swoich serwerów. Jeśli go nie włączyłeś, możesz zignorować tę sekcję. Aby uzyskać informacje na temat ręcznej konfiguracji sieci prywatnych, zobacz ten przewodnik .
Na razie pomiń tę Firewall Group
sekcję. Tylko serwer działający jako węzeł menedżera w roju Docker będzie potrzebował odsłoniętych portów, co należy skonfigurować po wdrożeniu serwera.
Na samym dole strony musisz wpisać Server Qty
co najmniej dwa. Jak wspomniano wcześniej, możesz potrzebować więcej niż dwóch serwerów, ale dwa wystarczą, aby postępować zgodnie z tym przewodnikiem.
Na koniec w Server Hostname & Label
sekcji wprowadź znaczące i niezapomniane nazwy hostów i etykiety dla każdego serwera. Dla celów tego przewodnika, nazwa hosta i etykieta z pierwszego serwera będzie docker-manager
i Docker Manager
, respectively- a docker-worker
i Docker Worker
za sekundę, odpowiednio.
Po dwukrotnym sprawdzeniu wszystkich konfiguracji możesz kliknąć Deploy Now
przycisk u dołu strony, aby uruchomić serwery.
Ponieważ wybrałeś system operacyjny z biblioteki ISO Vultr, musisz ręcznie zainstalować i skonfigurować Alpine Linux 3.9.0 na każdym serwerze.
Po przyznaniu Vultrowi minuty lub dwóch na przydzielenie serwerów, kliknij ikonę potrójnej kropki more options
dla Docker Manager
serwera w interfejsie zarządzania serwerem , a następnie wybierz View Console
opcję.
Powinieneś zostać przekierowany do konsoli z monitem logowania. Jeśli nie, poczekaj minutę, aż Vultr zakończy wdrażanie serwerów.
Po wyświetleniu monitu wprowadź root
nazwę użytkownika. Wersja na żywo Alpine Linux 3.9.0 (która jest obecnie uruchomiona przez twoje serwery) nie wymaga od administratora wprowadzenia hasła podczas logowania.
Po pomyślnym zalogowaniu się do konta root zobaczysz komunikat powitalny, a następnie monit powłoki, który wygląda następująco:
localhost:~#
Aby uruchomić instalator Alpine Linux, wprowadź następujące polecenie:
# setup-alpine
Najpierw wybierz odpowiedni układ klawiatury. W tym przewodniku zostanie użyty us
układ i wariant.
Ustawiając nazwę hosta, wybierz tę samą nazwę hosta, którą ustawiłeś dla tego serwera podczas wdrażania. Jeśli dokładnie przestrzegałeś tego przewodnika, nazwa hosta powinna być docker-manager
.
Powinny być dostępne dwa interfejsy sieciowe: eth0
i eth1
. Jeśli widzisz tylko eth0
, oznacza to, że nie skonfigurowałeś poprawnie sieci prywatnej swoich serwerów. Zainicjuj eth0
za pomocą dhcp
i zainicjuj eth1
za pomocą prywatnego adresu IP, maski sieci i bramy, do której serwer ten został przypisany podczas wdrażania. Możesz uzyskać dostęp do tych danych z interfejsu ustawień swojego serwera. Po wyświetleniu monitu nie wykonuj ręcznej konfiguracji sieci.
Wprowadź nowe hasło do konta root, a następnie wybierz strefę czasową odpowiednią dla lokalizacji, w której chcesz wdrożyć te serwery.
Jeśli zamierzasz używać serwera proxy HTTP / FTP, wprowadź jego adres URL, w przeciwnym razie nie ustawiaj adresu URL serwera proxy.
Wybierz klienta NTP do zarządzania synchronizacją zegara systemowego. Ten przewodnik będzie korzystać busybox
.
Gdy zostaniesz poproszony o użycie kopii dystrybucyjnej repozytorium pakietów, wybierz jedną jawnie, wprowadzając jej numer; automatycznie wykrywa i wybiera najszybszy, wprowadzając f
; lub ręcznie edytuj plik konfiguracyjny repozytorium, wprowadzając e
, co nie jest zalecane, chyba że znasz Alpine Linux. Ten przewodnik użyje pierwszego lustra.
Jeśli planujesz używać SSH do uzyskiwania dostępu do serwerów lub do obsługi systemu plików opartego na SSH, wybierz serwer SSH, którego chcesz użyć. Ten przewodnik będzie korzystać openssh
.
Po wyświetleniu monitu o użycie dysku wybierz dysk vda
jako sys
typ.
Alpine Linux 3.9.0 powinien być teraz zainstalowany na twoim serwerze. Powtórz ten proces dla wszystkich innych serwerów, które wdrożyłeś wcześniej, upewniając się, że podałeś poprawne wartości dla nazwy hosta i eth1
interfejsu sieciowego.
W tym momencie na twoich serwerach nadal działa wersja ISO Alpine Linux 3.9.0 na żywo. Aby uruchomić z instalacji SSD, przejdź do interfejsu ustawień serwera, przejdź do pozycji Custom ISO
menu bocznego i kliknij Remove ISO
przycisk. To powinno zrestartować serwer. Jeśli nie, to ręcznie uruchom ponownie.
Po zrestartowaniu serwera przejdź z powrotem do konsoli internetowej serwera Docker Manager
.
Zaloguj się do konta root przy użyciu hasła ustawionego wcześniej podczas procesu instalacji.
Włącz repozytorium pakietów społeczności, odznaczając trzecią linię /etc/apk/repositories
korzystania vi
. Możesz włączyć repozytorium brzegowe i testowe w podobny sposób, ale nie muszą one postępować zgodnie z tym przewodnikiem.
Zsynchronizuj indeks lokalnego pakietu serwera ze zdalnym repozytorium, które wybrałeś wcześniej, wprowadzając następujące polecenie powłoki:
# apk update
Następnie zaktualizuj nieaktualne pakiety:
# apk upgrade
Tak jak poprzednio, powtórz ten proces konfiguracji dla każdego wcześniej wdrożonego serwera.
Przed zainstalowaniem samego pakietu Docker możesz utworzyć osobnego docker
użytkownika. Możesz to zrobić za pomocą następującego polecenia:
# adduser docker
Uwaga: Ten nowy użytkownik i wszyscy użytkownicy dodani do nowej docker
grupy będą mieli uprawnienia roota po zainstalowaniu pakietu Docker. Zobacz następujący problem z repozytorium Moby Github:
Ze względu na
--privileged
wbudowane okno dokowane każda osoba dodana do grupy „dokera” jest odpowiednikiem root. Każdy w grupie dokerów ma tylne drzwi wokół wszystkich zasad eskalacji uprawnień i kontroli w systemie.Różni się to od tego, że ktoś jest w stanie uruchomić sudo w celu rootowania, gdzie mają zasady i stosuje się do nich audyt.
Jeśli chcesz zezwolić docker
użytkownikowi na sudo , najpierw zainstaluj sudo
pakiet:
# apk add sudo
Następnie utwórz sudo
grupę:
# addgroup sudo
Na koniec dodaj docker
użytkownika do sudo
grupy:
# adduser docker sudo
Teraz możesz wykonać krok 4 tego przewodnika, aby zakończyć konfigurację sudo.
W tym momencie możesz już zainstalować pakiet Docker. Należy pamiętać, że osobny docker
użytkownik z obsługą sudo nie musi instalować i konfigurować Dockera, ale ten przewodnik jest zgodny z tą konwencją.
Zainstaluj pakiet Docker za pomocą następującego polecenia:
# apk add docker
Następnie włącz skrypt inicjujący Docker:
# rc-update add docker
Na koniec uruchom demona Dockera:
# rc-service docker start
Możesz sprawdzić, czy Docker działa za pomocą tego polecenia:
# docker info
Podobnie jak ostatnio, powtórz ten proces instalacji Dockera dla każdego serwera, który został wdrożony na początku.
Po wykonaniu wszystkich tych czynności w końcu jesteś gotowy do stworzenia roju Dockerów.
Wróć do konsoli internetowej swojego Docker Manager
serwera. Skonfigurujesz ten serwer jako węzeł menedżera w swoim roju. Jeśli zdecydowałeś się utworzyć docker
użytkownika wcześniej, zaloguj się przy użyciu tego konta, a nie administratora.
Wpisz następujące polecenie, ale zamień 192.0.2.1
na prywatny (nie publiczny) adres IP, który Docker Manager
został przypisany Twojemu serwerowi:
$ docker swarm init --advertise-addr 192.0.2.1
Docker wyświetli polecenie, które można wykonać na innych serwerach w sieci prywatnej, aby dodać je jako węzły robocze do tego nowego roju. Zapisz to polecenie.
Teraz przejdź do konsoli internetowej swojego Docker Worker
serwera, logując się z docker
użytkownikiem, jeśli go utworzyłeś.
Aby dodać ten serwer jako węzeł roboczy do właśnie utworzonego roju, wykonaj polecenie zapisane w danych wyjściowych polecenia tworzenia roju. Będzie wyglądał podobnie do następującego:
$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377
Docker wyświetli informację, czy węzeł mógł dołączyć do roju. Jeśli wystąpią problemy z dodawaniem węzłów roboczych do roju, sprawdź dwukrotnie konfigurację sieci prywatnej i zapoznaj się z tym przewodnikiem, aby uzyskać informacje na temat rozwiązywania problemów.
Jeśli wdrożyłeś więcej niż dwa serwery na początku, możesz dodać resztę jako węzły robocze do swojego roju za pomocą powyższego polecenia, zwiększając ilość zasobów dostępnych dla twojej aplikacji. Alternatywnie możesz dodać dodatkowe węzły menedżera, ale wykracza to poza zakres tego przewodnika.
W tym momencie rój Dockerów jest gotowy do użycia. Możesz jednak opcjonalnie uruchomić stos Portainera w węźle menedżera w swoim roju. Portainer oferuje wygodny interfejs sieciowy do zarządzania twoim rojem i zawartymi w nim węzłami.
Nadszedł czas, aby utworzyć grupę zapory dla twojego roju. O ile aplikacja tego nie wymaga, ujawniaj porty tylko w węzłach menedżera . Ujawnienie portów w węzłach roboczych bez starannego rozważenia może wprowadzić luki w zabezpieczeniach.
Przejdź do interfejsu zarządzania zaporą i utwórz nową grupę zapory. Twoja aplikacja powinna dyktować, które porty mają zostać ujawnione, ale musisz przynajmniej ujawnić port 9000
dla Portainer. Zastosuj tę grupę zapory na Docker Manager
serwerze.
Chociaż nie jest to wymagane, zdecydowanie zaleca się zabezpieczenie Portainer za pomocą protokołu SSL. Ze względu na ten przewodnik będziesz używać tylko podpisanego certyfikatu OpenSSL, ale powinieneś rozważyć użycie Let's Encrypt w środowisku produkcyjnym.
Przejdź do konsoli internetowej Docker Manager
serwera, zaloguj się za pomocą docker
użytkownika i użyj następujących poleceń, aby wygenerować samopodpisany certyfikat OpenSSL:
$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650
Utwórz nowy plik ~/portainer-agent-stack.yml
o następującej treści:
version: '3.2'
services:
agent:
image: portainer/agent
environment:
AGENT_CLUSTER_ADDR: tasks.agent
CAP_HOST_MANAGEMENT: 1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
- /:/host
networks:
- agent_network
deploy:
mode: global
portainer:
image: portainer/portainer
command: -H tcp://tasks.agent:9001 --tlsskipverify --ssl --sslcert /certs/portainer.pem --sslkey /certs/portainer.key
ports:
- target: 9000
published: 9000
protocol: tcp
mode: host
volumes:
- portainer_data:/data
- /home/docker/certs:/certs
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
Po zmodyfikowaniu tego pliku konfiguracyjnego stosu Docker zgodnie z wymaganiami można go wdrożyć:
$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer
Aby sprawdzić, czy Portainer działa, wykonaj następujące polecenie po tym, jak Docker poświęcił minutę lub dwie na wdrożenie stosu:
$ docker ps
Zobaczysz dwa kontenery z obrazami portainer/portainer:latest
i portainer/agent:latest
, sprawdzając, czy Portainer zaczął poprawnie.
Możesz teraz konfigurować i zarządzać swoim rojem Docker, odwiedzając publiczny adres IP swojego Docker Manager
serwera na porcie 9000
za pomocą HTTPS.
Omówienie Ten artykuł ma na celu pomóc ci w szybkim uruchomieniu klastra Kubernetes z kubeadm. W tym przewodniku zostaną wdrożone dwa serwery
Wprowadzenie Docker to aplikacja, która pozwala nam wdrażać programy działające jako kontenery. Został napisany w popularnym języku programowania Go
Używasz innego systemu? Docker to aplikacja umożliwiająca wdrażanie oprogramowania w wirtualnych kontenerach. Został napisany w programie Go
Używasz innego systemu? Wprowadzenie Rancher to platforma typu open source do uruchamiania kontenerów i budowania prywatnej usługi kontenerowej. Ranczer jest podstawą
W tym artykule wyjaśniono, jak zainstalować program dokujący-komponuj w CoreOS. W CoreOS folder / usr / jest niezmienny, więc standardowa ścieżka / usr / local / bin jest niedostępna
Wszyscy znamy i kochamy Docker, platformę do tworzenia, zarządzania i dystrybucji kontenerów aplikacji na wielu komputerach. Docker Inc. świadczy usługę t
Używasz innego systemu? Wprowadzenie Rancher to platforma typu open source do uruchamiania kontenerów i budowania prywatnej usługi kontenerowej. Ranczer jest podstawą
Używasz innego systemu? Wprowadzenie Sentry to rozwiązanie typu open source do śledzenia błędów. Sentry śledzi wyjątki i inne przydatne wiadomości
Harbor to serwer rejestru klasy korporacyjnej typu open source, który przechowuje i dystrybuuje obrazy Docker. Harbor rozszerza dystrybucję Docker typu open source b
Używasz innego systemu? Wprowadzenie Docker Swarm zamienia poszczególne serwery w klaster komputerów, ułatwiając skalowanie, wysoką dostępność i
Za pomocą aplikacji Vultr Docker można łatwo wdrożyć Docker na instancji serwera Vultr. W międzyczasie możesz ułatwić zadanie zarządzania Docker
Przegląd RancherOS to niezwykle lekki system operacyjny (tylko około 60 MB), który uruchamia demona Docker systemowego jako PID 0 do uruchamiania usług systemowych
Kontenery LXC (kontenery Linux) to funkcja systemu operacyjnego w systemie Linux, której można używać do uruchamiania wielu izolowanych systemów Linux na jednym hoście. Thes
Aplikacje PHP zwykle składają się z serwera WWW, systemu relacyjnej bazy danych i samego tłumacza języka. W tym samouczku będziemy korzystać z dźwigni
Kubernetes to platforma open source opracowana przez Google do zarządzania aplikacjami kontenerowymi w klastrze serwerów. Opiera się na dekadzie i
W tym samouczku wyjaśniono podstawy rozpoczęcia korzystania z Docker. Zakładam, że masz już zainstalowany Docker. Kroki w tym samouczku będą działać na
Podczas uruchamiania aplikacji sieciowej zwykle chcesz maksymalnie wykorzystać zasoby bez konieczności konwertowania oprogramowania na wielowątkowość
Wymagania wstępne Silnik Docker 1.8+. Minimum 4 GB miejsca na dysku. Minimum 4 GB pamięci RAM. Krok 1. Zainstaluj Docker Aby zainstalować SQL-Server, Docker mus
Używasz innego systemu? Wprowadzenie Docker to aplikacja umożliwiająca wdrażanie oprogramowania w wirtualnych kontenerach. Został napisany w G
Używasz innego systemu? Docker to aplikacja umożliwiająca wdrażanie programów uruchamianych jako kontenery. Został napisany w popularnym programie Go
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.