Kubernetes jest darmowy i otwarty system zarządzania kontenerami zapewniający platforma do automatyzacji wdrażania, skalowania i operacji kontenerów aplikacji w grupach komputerów-hostów.
Dzięki Kubernetes mogą swobodnie wykorzystywać lokalną, publiczną i hybrydową infrastrukturę chmury do wykonywania zadań wdrożeniowych organizacji.
Instalacja Kubernetes na Ubuntu i pochodnych
Aby uzyskać praktyczną instalację, zamierzamy użyć klastra z dwoma węzłami, który utworzymy w tym artykule, będzie składał się z węzła głównego i węzła podrzędnego.
Oba węzły muszą mieć zainstalowany Kubernetes. Pierwszą rzeczą, którą zamierzamy zrobić, jest zainstalowanie dockera na obu z nich, w tym celu wystarczy wykonać na nich następującą komendę:
sudo apt install docker.io
Aby sprawdzić, czy jest zainstalowany docker, możesz uruchomić następujące polecenie na obu węzłach:
docker --version
Teraz przejdźmy do włączenia dockera na obu węzłach:
sudo systemctl enable docker
Teraz następnym krokiem jest dodanie klucza Kubernetes do obu węzłów, robimy to za pomocą następującego polecenia:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Następnym krokiem jest dodanie następującego repozytorium do obu systemów:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Ostatnim krokiem procesu instalacji jest zainstalowanie Kubeadm na obu węzłach za pomocą następującego polecenia:
sudo apt install kubeadm
Mogą sprawdzić numer wersji Kubeadm, a także zweryfikować instalację za pomocą następującego polecenia:
kubeadm version
Wdrożenie Kubernetes
Teraz, aby zaimplementować wdrożenie Kubernetes w systemie, musimy wyłączyć pamięć wymiany (jeśli jest uruchomiona) w obu węzłach
Powinny wyłączyć pamięć wymiany w obu węzłachponieważ Kubernetes nie działa poprawnie w systemie, który używa pamięci wymiany.
Aby to zrobić, po prostu uruchom:
sudo swapoff -a
Teraz następny krok to uruchom następujące polecenie na węźle głównym, aby nadać mu unikalną nazwę hosta:
sudo hostnamectl set-hostname master-node
Podczas gdy dla węzła slave musimy wpisać:
sudo hostnamectl set-hostname slave-node
Zrobione teraz vPrzejdźmy do zainicjowania węzła głównego za pomocą następującego polecenia:
sudo kubeadm init --pod-network-cidr = 10.244.0.0/16
W zależności od połączenia internetowego proces może potrwać minutę lub dłużej. Dane wyjściowe tego polecenia są bardzo ważne, dlatego należy zapisać informacje w wynikach, ponieważ zawierają one adres IP, token i inne.
Aby rozpocząć korzystanie z twojego klastra, muszą uruchomić następujące elementy jako zwykły użytkownik:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Teraz mogą dołączyć do dowolnej liczby maszyn, uruchamiając na każdym węźle jako użytkownicy root:
kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Gdzie zastąpią informacje o tokenie, tuipie i twoim skrócie informacjami, które zostały powiedziane kilka chwil temu, które zapiszą.
Pobieranie listy węzłów
Zobaczysz, że stan węzła głównego nie jest jeszcze gotowy. Dzieje się tak, ponieważ żaden pod nie został jeszcze wdrożony w węźle głównym, a zatem interfejs sieciowy kontenera jest pusty.
Aby zobaczyć listę, musimy tylko wykonać:
kubectl get nodes
Wdrażanie sieci pod za pośrednictwem węzła głównego
Sieć pod jest środkiem komunikacji między węzłami sieci. W tym samouczku implementujemy sieć Flannel pod w naszym klastrze za pomocą następującego polecenia:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Aby poznać stan sieci, po prostu wpisz:
kubectl get pods --all-namespaces sudo kubectl get nodes
Po wykonaniu tej czynności nadszedł czas, aby dodać węzeł slave do sieci, aby utworzyć klaster, w taki sam sposób, w jaki muszą one uzupełniać informacje, jak w węźle nadrzędnym.
sudo kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Teraz, gdy uruchomisz następującą komendę na węźle głównym, potwierdzi ona, że w systemie działają dwa węzły, węzeł główny i węzły serwera.
sudo kubectl get nodes
To pokazuje, że klaster z dwoma węzłami działa teraz w systemie zarządzania kontenerami Kubernetes.