Внедряване на Kubernetes с Kubeadm на CentOS 7

Общ преглед

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

Какво е kubeadm?

Kubeadm е инструмент, разработен от Kubernetes, който ви позволява да създадете и работите минимално жизнеспособен клъстер, като следвате най-добрите практики. Той само ще зареди вашия клъстер, а не предоставя машини. Неща като добавки, таблото за управление на Kubernetes, решения за мониторинг и така нататък не са нещо, което kubeadm ще направи за вас.

Предпоставки

Има няколко изисквания към сървърите, които ще разположим. Една или повече машини, работещи с операционна система, съвместима с deb/rpm. Ще използваме CentOS.

  • 2 GB или повече RAM на машина
  • 2 или повече процесора на главния

Пълна мрежова свързаност между всички машини в клъстера

Двата сървъра, внедрени в това ръководство, са следните: - 1 CPU 2GB RAM с CentOS 7 (работен възел) - 2 CPU 4GB RAM с CentOS 7 (главен възел)

С това количество RAM и на двата сървъра Kubernetes ще има достатъчно място за дишане.

Конфигуриране на работника и капитана

Ето стъпките, които ще трябва да предприемем както за главния, така и за работния възел:

  • Yum актуализация и пакети
  • Инсталирайте docker
  • Деактивирайте selinux
  • Деактивирайте размяната
  • Деактивирайте защитната стена
  • Актуализирайте IPTables
  • Инсталирайте kubelet/kubeadm/kubectl

Инсталиране на Docker

1.14В този урок ще използваме версия на Kubernetes. За тази версия Kubernetes препоръчва да стартирате версия на Docker 18.06.2. Не забравяйте да проверите препоръчаната версия на Docker за вашата версия на Kuberenetes

Ще добавим хранилището на Docker към yum и специално ще инсталираме 18.06.2. След като Docker бъде инсталиран, ще трябва да конфигурираме демона на docker според настройките, препоръчани от Kubernetes.

###Add yum-utils, if not installed already
yum install yum-utils

###Add Docker repository.
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

###Install Docker CE.
yum update && yum install docker-ce-18.06.2.ce

###Create /etc/docker directory.
mkdir /etc/docker

###Setup daemon.
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

mkdir -p /etc/systemd/system/docker.service.d

###Restart Docker
systemctl daemon-reload
systemctl enable docker.service
systemctl restart docker

Деактивирайте SELinux

Тъй като използваме CentOS, трябва да деактивираме SELinux. Това е необходимо, за да се позволи на контейнерите достъп до файловата система на хоста.

setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disable/' /etc/selinux/config

Деактивирайте размяната

Swap трябва да бъде деактивиран, за да позволи на kubelet да работи правилно.

sed -i '/swap/d' /etc/fstab
swapoff -a

Деактивирайте защитната стена

Kubernetes използва IPTables за обработка на входящия и изходящия трафик - така че за да избегнем проблеми, деактивираме firewalld.

systemctl disable firewalld
systemctl stop firewalld

Актуализирайте IPTables

Kubernetes препоръчва да гарантираме, че net.bridge.bridge-nf-call-iptablesе зададено на 1. Това се дължи на проблеми, при които REHL/CentOS 7 е имал проблеми с неправилно пренасочване на трафик поради заобикаляне на iptables.

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

Инсталирайте kubelet/kubeadm/kubectl

Ще трябва да добавим repo kubernetes към yum. След като направим това, просто трябва да изпълним командата за инсталиране и да активираме kubelet.

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kube*
EOF

yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable --now kubelet

Сега сме конфигурирали напълно нашия главен и работен възел. Вече можем да инициализираме нашия главен възел и да присъединим нашите работни възли към главния!

Забележка Ако искате да добавите още работни възли, процесът по-горе ще трябва да се извърши и на всички тези възли.

Настройка на главния възел

Искаме да инициализираме нашия главен възел, като изпълним следната команда. Ще искате да замените IP адреса на вашия главен възел в командата по-долу. Освен това ще предадем pod-network-cidr, за да ни улесним по-късно, когато инсталираме мрежовото наслагване на Flannel.

kubeadm init --apiserver-advertise-address=YOUR_IP_HERE --pod-network-cidr=10.244.0.0/16

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

kubeadm join YOUR_IP:6443 --token 4if8c2.pbqh82zxcg8rswui \
--discovery-token-ca-cert-hash sha256:a0b2bb2b31bf7b06bb5058540f02724240fc9447b0e457e049e59d2ce19fcba2

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

Следващата е фланела. Фланелът е това, което позволява комуникацията на шушулките. Има различни други видове мрежови наслагвания, които можете да инсталирате, но за простота това ръководство ще използва фланел.

Копирайте kube/configфайла във вашия, $Homeза да можете да изпълнявате kubectlкоманди.

mkdir $HOME/.kube
cp /etc/kubernetes/admin.conf $HOME/.kube/config

Една последна стъпка на главния възел е инсталирането на Flannel. Изпълнете следната команда.

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

С тази копирана конфигурация ще можете да стартирате kubectl get csи да получите отговор.

NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok
controller-manager   Healthy   ok
etcd-0               Healthy   {"health":"true"}

Вашият главен възел е настроен и готов за работа. Към работния възел!

Работен възел

В този момент няма допълнителна работа, която е необходима за работния възел. Всичко, което трябва да направим, е да kubeadm joinизпълним командата, която получихме от нашия kubeadm initизход.

Ако по някаква случайност сте загубили командата kubeadm join, можете да генерирате друга на главния възел, като изпълните kubeadm token create --print-join-command

След като изпълните командата kubeadm join, ако стартирате kubectl get nodesна master, ще видите изход, подобен на следния.

NAME          STATUS   ROLES    AGE    VERSION
k8-master   Ready    master   107m   v1.14.2
k8-worker   Ready    <none>   45m    v1.14.2

Обобщавайки

Точно така сте заредили Kubernetes клъстер с помощта на kubeadm. Можете също да направите това с частни мрежи. Vultr, както и други облачни доставчици, позволяват частни мрежи. Освен това, ако искате да изпълнявате kubectl команди от вашата локална машина срещу вашия клъстер, можете да постигнете това, като инсталирате kubectl локално и издърпате .kube/configфайла от клъстера на вашата локална машина в $HOME/.kube/config.

Надяваме се това ръководство да ви помогне да преминете през kubeadm и да ви накара да играете с kubernetes за нула време!

Полезни връзки:


Инсталирайте Plesk на CentOS 7

Инсталирайте Plesk на CentOS 7

Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни

Как да инсталирате Squid Proxy на CentOS

Как да инсталирате Squid Proxy на CentOS

Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Как да инсталирате Apache Cassandra 3.11.x на CentOS 7

Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока

Как да инсталирате Microweber на CentOS 7

Как да инсталирате Microweber на CentOS 7

Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати

Позволява криптиране на cPanel

Позволява криптиране на cPanel

Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие ​​и вашият клиент

Как да инсталирате Concrete5 на CentOS 7

Как да инсталирате Concrete5 на CentOS 7

Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате YOURLS на CentOS 7

Как да инсталирате YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Как да инсталирате и конфигурирате ArangoDB на CentOS 7

Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е

Използване на Etckeeper за контрол на версиите на /etc

Използване на Etckeeper за контрол на версиите на /etc

Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Защо трябва да използвате SSHFS? Как да монтирате отдалечена файлова система със SSHFS на CentOS 6

Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок

Настройване на сървър на Half Life 2 на CentOS 6

Настройване на сървър на Half Life 2 на CentOS 6

Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

Технологична сингулярност: далечно бъдеще на човешката цивилизация?

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

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече