Содержание:
Давно мечтал развернуть кластер Kubernetes(или k8s) у себя на ноутбуке. Этим хотел понять как этот кластер работает. Когда искал информацию по этой теме, то нашёл только инструкцию Kelsey Hightower под названием “Kubernetes The Hard Way”(KTHW) на английском языке. Не нашёл ничего подходящего и решил написать пошаговую инструкцию, как запустить кластер kubernetes на ноутбуке.
Эти знание мне потом помогли сдать экзамен Certified Kubernetes Administrator(CKA)
Материал получился большим, поэтому я разделил на несколько частей.
Совет
Перед продолжением рекомендую почитать о концепциях Kubernetes(на английском), тогда эти посты будут ещё понятнее. Тем не менее, если возникнут вопросы, пишите в комментариях - обсудим.
Содержимое:
- Введение. Схема устройства кластера. Подготовка рабочей среды.
- Установка и настройка Vagrant, VirtualBox. Создание виртуальных машин.
- Создание файлов конфигураций, сертификатов.
- Установка и настройка
etcd
. Запуск Панели управления Kubernetes(Kubernetes Control Plane) - Настройка рабочих нод
- Настройка kubectl, установка плагинов и аддонов. Проверка работоспособности.
Схема устройства кластера.
worker0, worker1 - ноды, на которых будут запускаться контейнеры.
controller0, controller1, controller2 - Панель управления Kubernetes. Место хранения информации о кластере, можно назвать центр управления.
lb - балансировщик нагрузки. Все обращения к панели управления идут через него.
При такой структуре можно не только запустить кластер на ноутбуке, но и поиграться с доступностью сервиса, если любая виртуалка упадёт.
Ip-адреса (192.168.50.*) - это адреса, по которым соединяемся с нужной виртуальной машиной.
Подготовка рабочего окружения на ноутбуке.
Перед тем как настраивать виртуальные машины, сперва установим кое-какие программы на ноутбук.
kubectl
Клиент, позволяет работать с кластером Kubernetes.
Установка на MacOS
brew install kubectl
Установка Linux
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
Проверяем, что работает
kubectl version
В результате будет что-нибудь такое:
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", GitTreeState:"clean", BuildDate:"2020-05-21T14:51:23Z", GoVersion:"go1.14.3", Compiler:"gc", Platform:"darwin/amd64"}
cfssl
Программа для генерирования сертификатов.
Установка на MacOS
curl -LO https://pkg.cfssl.org/R1.2/cfssl_darwin-amd64
chmod +x cfssl_darwin-amd64
sudo mv cfssl_darwin-amd64 /usr/local/bin/cfssl
Установка Linux
curl -LO https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
chmod +x cfssl_linux-amd64
sudo mv cfssl_linux-amd64 /usr/local/bin/cfssl
Проверяем, что работает
cfssl version
В результате будет что-нибудь такое:
Version: dev
Runtime: go1.14
cfssljson
Программа, генерирующая ключи, сертификаты и многое другое из конфига в JSON формате.
Установка на MacOS
curl -LO https://pkg.cfssl.org/R1.2/cfssljson_darwin-amd64
chmod +x cfssljson_darwin-amd64
sudo mv cfssljson_darwin-amd64 /usr/local/bin/cfssl
Установка Linux
curl -LO https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
chmod +x cfssljson_linux-amd64
sudo mv cfssljson_linux-amd64 /usr/local/bin/cfssl
Проверяем, что работает
cfssljson --version
В результате будет что-нибудь такое:
Version: dev
Runtime: go1.14
Что дальше
В следующей части мы с вами создадим виртуалки, на которых будет работать кластер. Подписывайтесь на RSS ленту и вы точно не пропустите выхода новых статей по этой теме.
До встречи.