Kubernetes - платформа с открытым исходным кодом для управления контейнерными приложениями
Позволяет управлять, масштабировать, автоматически развертывать контейнерные приложения в кластерной среде Kubernetes разработан Google
В этом уроке я покажу вам шаг за шагом, как установить и настроить Kubernetes в Ubuntu 18.04
Мы будем использовать 1 сервер 'k8s-master' в качестве хоста KubernetesHost Master 2 сервера в качестве рабочих Kubernetes, 'worker01' и 'worker02'
Задачи:
Установка Kubeadm
Настройка хостов
Установить докер
Отключить своп
Установить пакеты Kubeadm
Инициализация кластера Kubernetes
Добавление рабочих узлов в кластер Kubernetes
Тестирование
Шаг 1 - установка Kubeadm
На этом первом шаге мы подготовим эти 3 сервера для установки Kubernetes
Выполните все команды на главном и рабочем узлах
Настройка хостов
Отредактируйте файл hosts на всех серверах
cd /etc/apt/
sudo vi sources.list.d/kubernetes.list
Вставьте текст для kubernetes ниже:
deb http://apt.kubernetes.io/ kubernetes-xenial main
Замечания:
Мы все еще используем репозиторий Xenial Ubuntu 16.04 для нашей установки Kubeadm
Теперь обновите репозиторий, установите пакеты kubeadm, используя команды ниже:
sudo apt update
sudo apt install -y kubeadm kubelet kubectl
Шаг 2 - Инициализация кластера Kubernetes
На этом этапе мы инициализируем Kubernetes на узле «k8s-master»
На этом этапе запускайте все команды только на сервере «k8s-master»
Инициализируйте кластер Kubernetes, используя команду kubeadm ниже:
sudo kubeadm init --pod-network-cidr=10.244.10.0/16 --apiserver-advertise-address=192.168.0.128 --kubernetes-version "1.11.0"
--apiserver-advertise-address - определяет, на каком IP-адресе Kubernetes должен расшарить свой сервер API
--pod-network-cidr - диапазон IP-адресов для сети pod 'flannel' виртуальную сеть
Если вы хотите использовать другую сеть pod, такую как weave-net или calico, измените диапазон IP-адресов
Инициализируем кластер Kubernetes
Когда инициализация Kubernetes будет завершена, вы получите результат с выводом на экран
Скопируйте команду "kubeadm join ... ... ..." в ваш текстовый редактор
Команда будет использоваться для регистрации новых рабочих узлов в кластере kubernetes
Теперь, чтобы использовать Kubernetes, нам нужно выполнить несколько команд, как показано в результате:
Создайте новый каталог конфигурации '.kube'
Скопируйте файл конфигурации 'admin.conf' из каталога '/etc/kubernetes'
Затем разверните фланелевую сеть в кластере kubernetes с помощью команды kubectl:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Фланелевая сеть была развернута в кластере Kubernetes
Подождите минуту, а затем проверьте узел и модули kubernetes, используя команды ниже:
kubectl get nodes
kubectl get pods --all-namespaces
Получили: "k8s-master", работающий как кластер "master" со статусом "ready"
Все модули "kube-system", необходимые для кластера, запущены и работают
Инициализация и настройка мастера кластера Kubernetes завершена
Шаг 3 - Добавление рабочих узлов в кластер Kubernetes
На этом шаге мы добавим двух узловых работников "worker01" и "worker02" в кластер Kubernetes
Подключитесь к серверу worker01, выполните kubeadm join, полученную при инициализации кластера:
kubeadm join 192.168.0.128:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcd
Подключитесь к серверу worker02, выполните kubeadm join, полученную из инициализации кластера:
kubeadm join 192.168.0.128:6443 --token daync8.5dcgj6c6xc7l8hay --discovery-token-ca-cert-hash sha256:65a3e69531d323c335613dea1e498656236bba22e6cf3d5c54b21d744ef97dcd
Подождите несколько минут и вернитесь к мастеру узла «k8s-master» и проверьте состояние узла.
kubectl get nodes
Вы увидите, что эти рабочие узлы 'worker01' и 'worker02' являются частью кластера Kubernetes.
Шаг 4 - Тестирование
На этом этапе мы развернем веб-сервер Nginx внутри кластера
Мы развернем веб-сервер Nginx с использованием шаблона YAML
Создайте новый каталог с именем 'nginx' и перейдите в этот каталог:
mkdir -p nginx/
cd nginx/
Теперь создайте YAML-файл Nginx Deployment 'nginx-deployment.yaml' с помощью редактора vi:
sudo vi nginx-deploymentment.yaml
Замечания:
Мы создаем новый "Deployment" под названием "nginx-deploymentment"
Установите ярлык приложения как "nginx" с "3" репликами
"nginx-deploymentment" будет иметь контейнеры с именем "nginx" на основе образа докера "nginx: 1.14.0"
Будет предоставлять HTTP-порт по умолчанию 80
Теперь создайте развертывание, выполнив команду kubectl ниже:
kubectl create -f nginx-deploymentment.yaml
После создания нового nginx-deployment, проверьте список развертываний внутри кластера:
kubectl get deployments
kubectl describe deployment nginx-deploymentment
Теперь проверьте Kubernetes Pods, и вы увидите модуль 'nginx-deployment-xxx', проверьте детали модуля:
kubectl get pods
kubectl describe pods nginx-deploymentment-6cb5f7bf4f-t5xfh
Вы получите модули nginx для развертывания с 3 репликами на рабочих узлах
Далее нам нужно создать новый сервис для нашего 'nginx-deploymentment'
Создайте новый файл YAML с именем 'nginx-service.yaml':
vi nginx-service.yaml