Как да

Инсталирайте Kubernetes Cluster на Ubuntu 20.04 с помощта на K3s

Инсталирайте Kubernetes Cluster на Ubuntu 20.04 с помощта на K3s

Kubernetes е инструмент за оркестрация на контейнери за хибридни облачни платформи. Проектиран е от Google. Kubernetes позволява на потребителите да управляват докер контейнери в различни платформи за облак и виртуализация. K3s е лек двоичен файл за внедряване на kubernetes, който има за цел да намали „силно натовареното“ внедряване на k8s. K3s се разработва от Rancher.

В тази публикация ще разгледаме как да инсталирате клъстер Kubernetes на Ubuntu 20.04 LTS, използвайки k3s. Можете да проверите как да инсталирате k8s на Ubuntu 20.04 с kubeadm за алтернатива.

Архитектурата на Kubernetes включва главен възел и работни възли. Техните функции са следните:

Така че за да настроите k3s клъстер ви трябват поне два хоста, майстор възел и един работник възел. В тази публикация ще използваме един главен възел и два работни възела.

Трябва да подготвим нашите хостове, за да могат да изпълняват k3s в клъстер. Използвайте следните стъпки, за да инсталирате k3s клъстер на Ubuntu 20.04:

Стъпка 1: Актуализирайте системата Ubuntu

С вашите сървъри, инсталирани с Ubuntu 20.04, актуализирайте ги и ги надстройте:

sudo apt актуализация sudo apt -y надстройка && sudo systemctl рестартиране

Стъпка 2: Съставете имената на хостовете на всеки възел

Уверете се, че имената на хостове са картографирани на всеки възел. Това става чрез добавяне на IP и име на хост на всеки възел в / etc / hosts файл на всеки хост.

В нашата настройка това е както следва:

172. $ sudo vim / etc / hosts.16.10.3 серия.16.10.4 17 работник.16.10.10 работник 02 

Това трябва да се направи на всички хостове, за да използвате DNS имена.

Стъпка 3: Инсталирайте Docker на Ubuntu 20.04

Следващата стъпка е да инсталирате докер на хостовете. Както беше обсъдено по-рано, Kubernetes се използва за управление на Docker контейнери в хибридна облачна инфраструктура. По този начин трябва да имаме докер и да работи на всички възли, преди да можем да настроим K3s.

Добавяне на хранилище APT на Docker:

sudo apt актуализация sudo apt инсталиране apt-transport-https ca-сертификати curl софтуер-свойства-често -y curl -fsSL https: // изтегляне.докер.com / linux / ubuntu / gpg | sudo apt-key add - sudo add-apt-repository "deb [arch = amd64] https: // изтегляне.докер.com / linux / ubuntu фокусно стабилно "

Инсталирайте Docker CE на Ubuntu 20.04:

sudo apt актуализация sudo apt инсталиране docker-ce -y

Това трябва да се направи на всички хостове, включително главния възел. След успешна инсталация стартирайте и активирайте услугата.

sudo systemctl старт докер sudo systemctl разреши докер

Можете също да проверите дали услугата е стартирана и работи:

$ sudo systemctl статус докер ● докер.услуга - Docker Application Container Engine Loaded: заредена (/ lib / systemd / system / docker.обслужване; активиран; предварително зададен от доставчика: активиран) Активен: активен (работи) от петък 2020-10-30 08:30:39 CET; Преди 19 години TriggeredBy: ● докер.socket Docs: https: // docs.докер.com Основен PID: 9275 (dockerd) Задачи: 8 Памет: 35.6M CGroup: / система.парче / докер.услуга └─9275 / usr / bin / dockerd -H fd: // --containerd = / run / containerd / containerd.sock 30 октомври 08:30:39 ubuntu dockerd [9275]: time = "2020-10-30T08: 30: 39.460569874 + 01: 00 "ниво = предупреждение msg =" Вашето ядро ​​не поддържа cgroup rt runtime "30 октомври 08:30:39 ubuntu dockerd [9275]: time =" 2020-10-30T08: 30: 39.460672730 + 01: 00 "ниво = предупреждение msg =" Вашето ядро ​​не поддържа cgroup blkio weight "30 октомври 08:30:39 ubuntu dockerd [9275]: time =" 2020-10-30T08: 30: 39.460820506 + 01: 00 "ниво = предупреждение msg =" Вашето ядро ​​не поддържа cgroup blkio weight_device "30 октомври 08:30:39 ubuntu dockerd [9275]: time =" 2020-10-30T08: 30: 39.461286028 + 01: 00 "ниво = информация msg =" Зареждане на контейнери: старт."30 октомври 08:30:39 ubuntu dockerd [9275]: time =" 2020-10-30T08: 30: 39.620849970 + 01: 00 "ниво = информация msg =" Мостът по подразбиране (docker0) е зададен с IP адрес 172.17.0> 30 октомври 08:30:39 ubuntu dockerd [9275]: time = "2020-10-30T08: 30: 39.717281156 + 01: 00 "ниво = информация msg =" Зареждане на контейнери: готово."30 октомври 08:30:39 ubuntu dockerd [9275]: time =" 2020-10-30T08: 30: 39.754253372 + 01: 00 "ниво = информация msg =" демон на Docker "commit = 4484c46d9d graphdriver (s) = overlay2 версия> 30 октомври 08:30:39 ubuntu dockerd [9275]: time =" 2020-10-30T08: 30: 39.755461813 + 01: 00 "level = info msg =" Daemon завърши инициализацията "30 октомври 08:30:39 ubuntu systemd [1]: Стартиран Docker Application Container Engine.

Добавете потребителя си в групата на Docker, за да избегнете да пишете sudo всеки път, когато стартирате команди на docker.

sudo usermod -aG докер $ ПОТРЕБИТЕЛ newgrp докер

Стъпка 4: Инсталирайте Master k3s Node

В тази стъпка ще инсталираме и подготвим главния възел. Това включва инсталиране на услугата k3s и стартиране.

curl -sfL https: // get.k3s.io | sh -s - --docker

Изпълнете командата по-горе, за да инсталирате k3s на главния възел. Скриптът инсталира k3s и го стартира автоматично.

[INFO] Намиране на версия за стабилен канал [INFO] Използване на v1.18.9 + k3s1 като версия [INFO] Изтегляне на хеш https: // github.com / rancher / k3s / releases / download / v1.18.9 + k3s1 / sha256sum-amd64.txt [INFO] Изтегляне на двоичен https: // github.com / rancher / k3s / releases / download / v1.18.9 + k3s1 / k3s [INFO] Проверка на двоично изтегляне [INFO] Инсталиране на k3s в / usr / local / bin / k3s [INFO] Създаване / usr / local / bin / kubectl символна връзка към k3s [INFO] Създаване / usr / local / bin / crictl symlink към k3s [INFO] Пропускане / usr / local / bin / ctr symlink към k3s, съществува команда в PATH на / usr / bin / ctr [INFO] Създаване на killall script / usr / local / bin / k3s-killall.sh [INFO] Създаване на скрипт за деинсталиране / usr / local / bin / k3s-uninstall.sh [INFO] env: Създаване на файл на околната среда / etc / systemd / system / k3s.обслужване.env [INFO] systemd: Създаване на служебен файл / etc / systemd / system / k3s.услуга [INFO] systemd: Активиране на k3s единица Създадена symlink / etc / systemd / system / multi-user.мишена.иска / k3s.услуга → / etc / systemd / system / k3s.обслужване. [INFO] systemd: Стартиране на k3s

За да проверите дали услугата е инсталирана успешно, можете да използвате:

$ sudo systemctl статус k3s ● k3s.услуга - Леки Kubernetes Заредени: заредени (/ etc / systemd / system / k3s.обслужване; активиран; предварително зададен от доставчика: активиран) Активен: активен (работи) от петък 2020-10-30 08:32:46 CET; Преди 53 години Документи: https: // k3s.io Процес: 11151 ExecStartPre = / sbin / modprobe br_netfilter (код = излязъл, статус = 0 / УСПЕХ) Процес: 11152 ExecStartPre = / sbin / modprobe наслагване (код = излязъл, статус = 0 / УСПЕХ) Основен PID: 11153 (k3s- сървър) Задачи: 0 Памет: 420.9M CGroup: / система.парче / k3s.услуга └─11153 / usr / local / bin / k3s сървър --docker 30 октомври 08:33:32 ubuntu k3s [11153]: I1030 08:33:32.532935 11153 помирител.go: 196] operationExeecuter.UnmountVolume стартира за том "helm-traefik-token-dmfz6"> 30 октомври 08:33:32 ubuntu k3s [11153]: I1030 08:33:32.533481 11153 помирител.go: 196] operationExeecuter.UnmountVolume стартира за том "стойности" (UniqueName: "kub> 30 октомври 08:33:32 ubuntu k3s [11153]: W1030 08:33:32.533849 11153 празен_дир.go: 453] Предупреждение: Неуспешно изчистване на квотата на / var / lib / kubelet / pods / d1fae0b1-f3ac-481a-b6a> 30 октомври 08:33:32 ubuntu k3s [11153]: I1030 08:33:32.538649 11153 операция_генератор.go: 782] UnmountVolume.TearDown успя за том "kubernetes.io / configmap> 30 октомври 08:33:32 ubuntu k3s [11153]: I1030 08:33:32.555370 11153 операция_генератор.go: 782] UnmountVolume.TearDown успя за том "kubernetes.io / secret / d1> 30 октомври 08:33:32 ubuntu k3s [11153]: I1030 08:33:32.653113 11153 помирител.go: 319] Том, отделен за том "helm-traefik-token-dmfz6" (UniqueName: "kubernete> 30 октомври 08:33:32 ubuntu k3s [11153]: I1030 08:33:32.653137 11153 помирител.go: 319] Обем, отделен за томове "стойности" (UniqueName: "kubernetes.io / configmap / d1f> 30 октомври 08:33:33 ubuntu k3s [11153]: W1030 08:33:33.978774 11153 pod_container_deletor.go: 77] Контейнер "23d34e0acde3f4ab7e41d99e9cff16e7ba8cd76122158dfc18b64ae0> 30 октомври 08:33:33 ubuntu k3s [11153]: W1030 08:33:33.997821 11153 pod_container_deletor.go: 77] Контейнер "a52fe91aa3e7b137ebe4dd993e358c382f96b5df342cb1c098acadb6> 30 октомври 08:33:35 ubuntu k3s [11153]: W1030 08:33:35.022454 11153 pod_container_deletor.go: 77] Контейнер "2b9f302427059276bc2e1d012db5cbcaeb72ed373cb52218edb6eb4b

Можете да проверите дали главният възел работи, като:

sudo kubectl получи възли -o широк

Резултатът трябва да бъде нещо подобно:

[имейл защитен]: ~ # sudo kubectl получаване на възли -o широко ИМЕ СТАТУТ РОЛИ ВЪЗРАСТ ВЕРСИЯ ВЪТРЕШЕН-IP ВЪНШЕН-IP ОС-ИЗОБРАЖЕНИЕ КЕРНЕЛ-ВЕРСИЯ КОНТЕЙНЪР-RUNTIME master Ready master 3m2s v1.18.9 + k3s1 172.16.10.3  Ubuntu 20.04.1 LTS 5.4.0-52-родов докер: // 19.3.8

Стъпка 5: Позволете портовете на защитната стена

Трябва да разрешим портове, които ще се използват за комуникация между главния и работния възел. Пристанищата са 443 и 6443.

sudo ufw позволяват 6443 / tcp sudo ufw позволяват 443 / tcp

Трябва да извлечете маркер от главния шаблон, който ще се използва за присъединяване на възлите към главния.

На главния възел:

sudo cat / var / lib / rancher / k3s / server / node-token

След това ще получите жетон, който изглежда така:

K1078f2861628c95aa328595484e77f831adc3b58041e9ba9a8b2373926c8b034a3 :: сървър: 417a7c6f46330b601954d0aaaa1d0f5b

Стъпка 6: Инсталирайте k3s на работни възли и ги свържете с главния

Следващата стъпка е да инсталирате k3s на работните възли. Изпълнете командите по-долу, за да инсталирате k3s на работни възли:

curl -sfL http: // get.k3s.io | K3S_URL = https: //: 6443 K3S_TOKEN = sh -s - --docker

Където master_IP е IP на главния възел и join_token е жетонът, получен от капитана. д.g:

curl -sfL http: // get.k3s.io | K3S_URL = https: // 172.16.10.3: 6443 K3S_TOKEN = K1078f2861628c95aa328595484e77f831adc3b58041e9ba9a8b2373926c8b034a3 :: сървър: 417a7c6f46330b601954d0aaaa1d0f5b sh -s - --docker

Можете да проверите дали k3s-агентът на работните възли се изпълнява от:

sudo systemctl статус k3s-агент

За да проверите дали нашите възли са добавени успешно към клъстера, изпълнете:

sudo kubectl вземете възли

Резултатът ви трябва да изглежда така:

[имейл защитен]: ~ # kubectl получи възли -широко ИМЕ СТАТУТ РОЛИ ВЪЗРАСТ ВЕРСИЯ ВЪТРЕШЕН-IP ВЪНШЕН-IP OS-ИЗОБРАЖЕНИЕ КЕРНЕЛ-ВЕРСИЯ КОНТЕЙНЪР-RUNTIME master Готово master 14m v1.18.9 + k3s1 172.16.10.3  Ubuntu 20.04.1 LTS 5.4.0-52-родов докер: // 19.3.8 работник02 Готов  90-те v1.18.9 + k3s1 172.16.10.10  Ubuntu 20.04.1 LTS 5.4.0-52-родов докер: // 19.3.8 работник01 Готов  41s v1.18.9 + k3s1 172.16.10.4  Ubuntu 18.04.5 LTS 4.15.0-122-генеричен докер: // 19.3.6 

Това показва, че успешно сме настроили нашия к3 клъстер, готов да внедри приложения в него.

Разположете Addons в K3s

K3s е лек инструмент за кубернети, който не се доставя с всички инструменти, но можете да ги инсталирате отделно.

Инсталирайте Helm Commandline инструмент на k3s

$ mv linux-amd64 / helm / usr / local / bin / helm

Проверете версията

 $ helm версия

Добавете хранилището на диаграмата на шлема, за да разрешите инсталирането на приложения, използващи шлем:

$ helm repo добавете стабилни https: // charts.шлем.sh / stable $ helm repo update

Разгърнете приложение на k3s

Вече можем да разположим тестово приложение на клъстера K3s.

Разположете Nginx Web-прокси на K3s

Nginx може да се използва като уеб прокси за излагане на входящи маршрути за уеб трафик във и извън клъстера.

Можем да инсталираме nginx web-proxy с помощта на Helm:

 $ helm инсталиране nginx-ingress stable / nginx-ingress --namespace kube-system \ --set defaultBackend.разрешено = невярно

Можем да тестваме дали приложението е инсталирано от:

$ kubectl получи шушулки -n kube-system -l app = nginx-ingress -o wide

Резултатът трябва да бъде като:

[имейл защитен]: ~ # kubectl get pods -n kube-system -l app = nginx-ingress -o wide ИМЕ ГОТОВ СЪСТОЯНИЕ ВЪЗСТАНОВЯВА ВЪЗРАСТ IP IP NODE НОМИНИРАН ГОДИШНОСТ ГОТОВОСТИ nginx-ingress-controller-56547fb57-vsjdm 1/1 Running 0 28s 10.42.2.6 работник01  

Успешно внедрихме nginx web-proxy на k3s.

Премахнете k3s

За да премахнете k3s на работните възли, изпълнете:

$ sudo / usr / local / bin / k3s-agent-uninstall.sh $ sudo rm -rf / var / lib / rancher

За да премахнете k3s на главния възел, изпълнете:

$ sudo / usr / local / bin / k3s-деинсталиране.sh $ sudo rm -rf / var / lib / rancher 

Заключение

В тази статия успяхме да разположим k3s в самостоятелно хоствана среда. Разположихме също helm и nginx в нашия к3 клъстер.

Можете да намерите повече статии за Kubernetes по-долу:

Сигурен достъп до Linux системи и Kubernetes с Teleport

Инсталирайте Kubernetes Cluster на Ubuntu 20.04 с kubeadm

Как да инсталирате клъстер Kubernetes на MicroK8s на CentOS 8

Активирайте хранилището на PowerTools на CentOS 8 / RHEL 8
Как мога да активирам хранилището на PowerTools на машината CentOS 8 / RHEL 8 Linux?. Хранилището PowerTools не е активирано по подразбиране в CentOS ...
Как технологията за смартфони преобрази живота ни
През последните две десетилетия видяхме драстични иновации в цифровия свят. Изобретяването на мобилния телефон вече имаше огромен успех и непрекъснати...
Как да инсталирате Kanboard на Ubuntu 20.04 с Nginx
Kanboard е софтуер за управление на проекти с отворен код, фокусиран върху методологията Kanban. Kanban е методология за управление на проекти, първон...