Кубернетес є безкоштовна система управління контейнерами з відкритим кодом що забезпечує платформа для автоматизації розгортання, масштабування та роботи контейнерів програм на групах хост-комп’ютерів.
За допомогою Kubernetes вони можуть вільно використовувати локальну, громадську та гібридну хмарну інфраструктуру для виконання завдань розгортання своєї організації.
Встановлення Kubernetes на Ubuntu та похідних
Для практичної установки, ми будемо використовувати двовузловий кластер, який ми сформуємо в цій статті, і буде складатися з головного вузла та веденого вузла.
На обох вузлах потрібно встановити Kubernetes. Перше, що ми збираємося зробити, це встановити docker на них обох, для цього нам просто потрібно виконати наступну команду на них:
sudo apt install docker.io
Щоб перевірити, чи встановлено докер, ви можете запустити таку команду на обох вузлах:
docker --version
Зараз приступимо до включення докера на обох вузлах:
sudo systemctl enable docker
Тепер наступним кроком є додавання ключа Kubernetes до обох вузлів, ми робимо це за допомогою наступної команди:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Наступним кроком є додавання наступного сховища до обох систем:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Останнім кроком у процесі встановлення є встановлення Kubeadm на обидва вузли за допомогою наступної команди:
sudo apt install kubeadm
Вони можуть перевірити номер версії Kubeadm, а також перевірити встановлення за допомогою наступної команди:
kubeadm version
Розгортання Kubernetes
Тепер, щоб реалізувати розгортання Kubernetes в системі, ми повинні вимкнути пам'ять підкачки (якщо вона працює) в обох вузлах
Вони повинні відключити обмін пам'яттю на обох вузлахоскільки Kubernetes не працює належним чином у системі, яка використовує обмінну пам’ять.
Для цього просто запустіть:
sudo swapoff -a
Тепер наступний крок запустіть таку команду на головному вузлі, щоб надати йому унікальне ім'я хосту:
sudo hostnamectl set-hostname master-node
Хоча для веденого вузла ми повинні ввести:
sudo hostnamectl set-hostname slave-node
Зробив це зараз vПриступимо до ініціалізації головного вузла наступною командою:
sudo kubeadm init --pod-network-cidr = 10.244.0.0/16
Процес може зайняти хвилину або більше, залежно від підключення до Інтернету. Вихід цієї команди дуже важливий, тому вам слід записати інформацію у вихідний файл, оскільки вона містить ip, маркер та інші.
Щоб почати використовувати ваш кластер, їм потрібно запустити наступне як звичайний користувач:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Зараз вони можуть приєднатися до будь-якої кількості машин, запустивши на кожному вузлі від імені користувача root:
kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Де вони замінять інформацію про tutoken, tuip та ваш хеш інформацією, сказаною кілька хвилин тому, яку вони запишуть.
Отримання списку вузлів
Ви побачите, що статус головного вузла ще не готовий. Це пов’язано з тим, що на головному вузлі ще не розгорнуто жоден стручок, а тому мережевий інтерфейс контейнера порожній.
Щоб побачити список, нам потрібно лише виконати:
kubectl get nodes
Розгортання мережі pod через головний вузол
Мережа підсистем є засобом зв'язку між вузлами в мережі. У цьому підручнику ми реалізуємо мережу стручків Flannel у нашому кластері за допомогою такої команди:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Щоб дізнатись стан мережі, просто введіть:
kubectl get pods --all-namespaces sudo kubectl get nodes
Після того, як це зроблено, настав час додати підлеглий вузол до мережі, щоб сформувати кластер, так само, як вони повинні доповнювати інформацію, як у головному вузлі.
sudo kubeadm join tuip --token tutoken --discovery-token-ca-cert-hash sha256:tuhash
Тепер, коли ви запустите наступну команду на головному вузлі, вона підтвердить, що у вашій системі працюють два вузли - головний вузол та вузли сервера.
sudo kubectl get nodes
Це показує, що кластер із двома вузлами тепер працює і працює через систему управління контейнерами Kubernetes.