
Установка и настройка kubernetes.
Немного теории
Kubernetes - open source решение для управления, развертывания и масштабирования контейнеризированных приложений.
Термины которыми оперируют при работе с kubernetes
Pod - Service -
Установка
Установим докер
sudo apt-get update
sudo apt-get install docker.io
sudo systemctl enable docker
sudo systemctl start docker
Установим kubernetes
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
Т.к. kubernetes не включен в официальный репозиторий то добавим новый репозиторий:
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
Установим kubead. Утилита, помогающая развернуть кластер.
sudo apt-get install kubeadm kubelet kubectl
sudo apt-mark hold kubeadm kubelet kubectl
Проверим что установка прошла успешно
kubeadm version
Повторяем на всех узлах.
Отключаем swap на мастер ноде и воркерах. (Необходимо для работы сетевой файловой системы).
sudo swapoff –a
Установим уникальное имя хостов для master ноды и воркеров
sudo hostnamectl set-hostname master-node
sudo hostnamectl set-hostname worker01
Инициализируем kubernetes на мастер ноде:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
Не забываем скопировать на выводе kubeadm join... (дальше будет необходимо для подключения воркеров) Создадим директорию для кластера, скопируем конфиги и установим необходимые права
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Создание виртуальной сети с помощью Flunnel
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Проверим что все поды запущены
kubectl get pods --all-namespaces
Теперь вводим, скопированный ранее, kubeadm join.. на воркере. Переключаемся на мастер ноду и проверяем доступные ноды:
kubectl get nodes
Установим web ui (по необходимости)
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
Подключаем docker registry
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>