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
Wszyscy znamy i kochamy Docker, platformę do tworzenia, zarządzania i dystrybucji kontenerów aplikacji na wielu komputerach. Docker Inc. zapewnia usługę hostowania kontenerów typu open source do pobrania (lub ściągnięcia) jak repozytorium git znane jako „Rejestr Docker”. Pomyśl o tym jak o GitHub dla kontenerów Docker.
Ale co, jeśli chcesz hostować własny rejestr oddzielony od publicznego? Cóż, Docker Inc. otworzył źródło aplikacji rejestru na GitHub.
Ten samouczek przeprowadzi Cię przez proces konfigurowania prywatnego rejestru Docker przy użyciu CoreOS na nowym VPS.
Nie będziemy spędzać mnóstwo czasu zastanawiając się dokładnie, co mogą zrobić Docker i CoreOS, ponieważ jest to poza zakresem tego samouczka. Zasadniczo CoreOS jest przeznaczony dla ogromnych klastrów serwerów, jest mały, szybki i automatycznie otrzymuje regularne aktualizacje zabezpieczeń. Jego główny system plików jest również tylko do odczytu, co oznacza, że musisz używać Dockera, aby uruchamiać wszelkiego rodzaju oprogramowanie, które nie jest dołączone do instalacji podstawowej.
To sprawia, że Core OS jest idealnym systemem hosta dla Docker!
Firma Docker Inc. dostarczyła Rejestr jako obraz najwyższego poziomu, co oznacza, że możemy go ściągnąć w prosty sposób:
docker pull registry
Może to potrwać kilka minut w zależności od szybkości połączenia.
Zaletą bycia obrazem najwyższego poziomu jest także regularne wsparcie i aktualizacje.
Teraz przetestujmy rejestr. Możemy utworzyć nowy kontener za pomocą obrazu rejestru:
docker run -p 5000:5000 -d --name=basic_registry registry
Dla tych, którzy nie używali zbyt często Dockera, -p
flaga oznacza PORT
, że udostępniamy port 5000 z kontenera na port hosta 5000.
-d
Flaga oznacza daemon
, spowoduje to pojemnik do uruchomienia w tle, a nie drukować wyjście do bieżącej sesji SSH, chcemy również nazwać ten podstawowy pojemnik testowy używając --name
opcji, dzięki czemu możemy łatwo zarządzać później.
Upewnij się, że podstawowy kontener rejestru działa przy użyciu docker ps
. Dane wyjściowe powinny wyglądać podobnie do:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
edfb54e4a8c4 registry:0.8.1 "/bin/sh -c 'exec do 7 seconds ago Up 6 seconds 0.0.0.0:5000->5000/tcp basic_registry
Odwiedź też http://YOUR_IP:5000
swoją przeglądarkę internetową i powinieneś otrzymać następujący komunikat:
"docker-registry server (dev) (v0.8.1)"
Zwróć uwagę na słowo
dev
w nawiasie. Oznacza to, że na serwerze aktualnie działa konfiguracja deweloperska. Wkrótce omówimy więcej konfiguracji.
Masz teraz swój własny (bardzo podstawowy) rejestr kontenerów! Ale jeszcze nie skończyliśmy.
Może chcesz zachować prywatność przed wścibskimi oczami, a może przechowywać zdjęcia na Amazon S3 zamiast lokalnego magazynu. Omówmy różne opcje konfiguracji w następnej sekcji.
Zanim przejdziemy dalej, zabijmy pojemnik testowy, abyśmy nie wpadli na porty w konflikcie.
docker kill basic_registry
Istnieją dwa sposoby przekazania konfiguracji do rejestru Docker. Jednym ze sposobów jest przekazanie zmiennych środowiskowych do nowego kontenera, a drugim - dodanie pliku konfiguracyjnego.
Oto kilka typowych opcji konfiguracji, których będziemy używać:
loglevel
- Minimalna ilość informacji do zalogowania do konsoli. Domyślnie jest info
.standalone
- Czy ten rejestr powinien działać samodzielnie? (Nigdy nie sprawdza rejestru publicznego.) Domyślnie jest true
.index_endpoint
- Jeśli nie jest samodzielny, jaki inny indeks będziemy sprawdzać? Domyślnie index.docker.io
.cache
oraz cache_lru
- Opcje dotyczące używania pamięci podręcznej Redis dla małych plików, zajmiemy się tym później.storage
- Jakiego zaplecza magazynu należy użyć dla tego serwera? (W tym samouczku będziemy używać lokalnych).storage_path
- Jeśli korzystasz z pamięci lokalnej, w jakim katalogu powinniśmy przechowywać pliki?Zanim zaczniemy pracę z konfiguracją, potrzebujemy pliku podstawowego do pracy. Plik z repozytorium rejestru Docker na GitHub będzie działał dobrze:
wget https://raw.githubusercontent.com/docker/docker-registry/0.8/config/config_sample.yml
Plik powinien zostać pomyślnie zapisany z danymi wyjściowymi, takimi jak:
2014-09-14 14:09:01 (156 MB/s) - 'config_sample.yml' saved [5384/5384]
Świetny! Teraz możemy zmodyfikować ten plik, aby dopasować go do naszych potrzeb.
Jedynym edytorem tekstowym, który jest dostarczany z Core OS, jest vim
, ale nie martw się, jeśli nigdy wcześniej go nie używałeś, wyjaśni to krok po kroku, co edytować i jak to zrobić.
vim config_sample.yml
Po otwarciu pliku naciśnij I
i w prawym dolnym rogu powinien zostać wyświetlony: -- INSERT --
tryb wstawiania. Przewiń do samego końca pliku za pomocą klawiszy strzałek, powinieneś zobaczyć sekcję oznaczoną etykietą prod
.
Zmienimy dwie linie, zmiany są poniżej
prod:
<<: *local
storage_path: _env:STORAGE_PATH:/data
To, co zrobiliśmy, to zmiana prod
konfiguracji tak, aby pochodziła z local
sekcji zamiast z s3
sekcji. Następnie nadpisaliśmy, storage_path
aby użyć ścieżki /data
wewnątrz nowego kontenera.
Po potwierdzeniu, że wszystkie zmiany są poprawne, naciśnij, ESC
aby wyjść z trybu wstawiania i typu :wq
(oznacza to, że zapisz zmiany w pliku i wyjdź z vima.)
Teraz zmieńmy nazwę pliku na just config.yml
mv config_sample.yml config.yml
Jeśli chcesz użyć narzędzia redis do przyspieszenia rejestru kontenerów, wystarczy pobrać nowy kontener z rejestru publicznego i dodać kilka dodatkowych linii konfiguracji.
Najpierw narysuj obraz Redis na najwyższym poziomie:
docker pull redis
Po pomyślnym pobraniu obrazu możemy go uruchomić i nazwać tak, jak w przypadku rejestru testowego:
docker run -d --name registry-redis redis
Ponieważ redis jest w pamięci, nie musimy go konfigurować, ponieważ w późniejszych krokach połączymy go z kontenerem rejestru.
Ponownie upewnij się, że działa, używając docker ps
:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54f65641eccf redis:2.8 "redis-server" 2 seconds ago Up 1 seconds 6379/tcp registry-redis
Teraz ponownie otworzyć config.yml
się vim
i trybu Insert, tak jak po raz pierwszy pod redakcją go.
Dodaj następujące wiersze poniżej prod
sekcji, pamiętając o prawidłowym wcięciu. Tym razem dodajemy tylko cache
i cache_lru
.
cache:
host: _env:REDIS_PORT_6379_TCP_ADDR
port: _env:REDIS_PORT_6379_TCP_PORT
db: 0
cache_lru:
host: _env:REDIS_PORT_6379_TCP_ADDR
port: _env:REDIS_PORT_6379_TCP_PORT
db: 1
Zmienne środowiskowe REDIS_PORT_6379_TCP_ADDR
i REDIS_PORT_6379_TCP_PORT
są przekazywane do rejestru pojemnika na wiązanie z pojemnikiem Redis.
Dzięki temu masz teraz skonfigurowany kontener Redis, który będzie współpracował z kontenerem rejestru. Teraz budowanie rejestru!
Przygotowaliśmy całą konfigurację i jesteśmy gotowi, teraz musimy zbudować rzeczywisty kontener rejestru.
Odpal, vim Dockerfile
aby utworzyć nowy plik Docker. Wejdź w tryb wstawiania i postępuj zgodnie z poniższymi zmianami.
FROM registry:latest
# Add the custom configuration file we made
ADD ./config.yml /docker-registry/config/config.yml
# Create the data directory
RUN mkdir /data
# Set the configuration file to config.yml
env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
# Make sure we use the prod configuration settings
env SETTINGS_FLAVOR prod
To, co zrobiliśmy powyżej, zasadniczo rozszerza obraz rejestru, aby używał naszego pliku konfiguracyjnego i ustawień. Plik Docker to zestaw instrukcji kompilacji, które Docker może czytać i budować. Jeśli chcesz dowiedzieć się więcej o plikach Docker i ich składni, zapoznaj się z oficjalną dokumentacją witryny Docker.
Następnie musimy zbudować pojemnik do użytku.
docker build -t my_registry .
Sending build context to Docker daemon 13.82 kB
Sending build context to Docker daemon
Step 0 : FROM registry
---> e42d15ec8417
Step 1 : ADD ./config.yml /docker-registry/config/config.yml
---> 4339f026d459
Removing intermediate container 2d5138fbcd34
Step 2 : RUN mkdir /data
---> Running in a090f0bdbfd1
---> 8eb27ba6e12a
Removing intermediate container a090f0bdbfd1
Step 3 : env DOCKER_REGISTRY_CONFIG /docker-registry/config/config.yml
---> Running in 565b5bfb2b22
---> 914462e46dc0
Removing intermediate container 565b5bfb2b22
Step 4 : env SETTINGS_FLAVOR prod
---> Running in 31a92847b851
---> b5949575c374
Removing intermediate container 31a92847b851
Successfully built b5949575c374
Teraz jesteśmy gotowi do uruchomienia!
Zróbmy katalog w naszym systemie hosta, aby zamontować go w kontenerze jako /data
wolumin.
mkdir registry-data
Teraz możemy wykręcić nowy pojemnik. Jeśli planujesz używać pamięci podręcznej Redis, użyj drugiego polecenia poniżej.
# For a non-Redis cache registry
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg my_registry
# For a Redis cached registry (Must have followed Redis Caching section above)
docker run -d -p 5000:5000 -v /home/core/registry-data:/data --name=private_reg --link registry-redis:redis my_registry
Aby upewnić się, że serwer działa poprawnie, odwiedź stronę http://YOUR_IP:5000
. Zobaczysz następujący komunikat:
"docker-registry server (prod) (v0.8.1)"
Zauważ, że (prod)
nasze zmiany konfiguracji zakończyły się powodzeniem!
Teraz, gdy mamy już własny rejestr, chcemy, aby klient Docker na naszych komputerach lokalnych zaczął go używać. Zwykle używasz polecenia: docker login
ale do naszego użytku musimy dodać jeszcze jeden argument do polecenia logowania:
docker login YOUR_IP:5000
Wprowadź nazwę użytkownika i hasło (pomyśl o tym jak założenie nowego konta) i zignoruj wiadomość, że musisz ją aktywować.
Następnie wyciągnijmy obraz akcji i pchnijmy go do naszego własnego repozytorium.
# Pull the busybox image from the public registry
docker pull busybox
# Tag it with our IP/URL
docker tag busybox YOUR_IP:5000/busybox
# Push it to our newly made registry
docker push YOUR_IP:5000/busybox
Jeśli wszystko popycha poprawnie, końcowy komunikat powinien wyglądać następująco:
Pushing tag for rev [a9eb17255234] on
Gratulacje! Masz skonfigurowane własne repozytorium dokerów.
Oto kilka pomysłów na ulepszenie nowego rejestru prywatnego:
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
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.