Как установить Kubernetes на Proxmox и развернуть контейнер MySQL - полное руководство
Kubernetes - мощная платформа управления контейнерами с открытым исходным кодом, которая автоматизирует развертывание, масштабирование и управление контейнеризированными приложениями. Proxmox VE, с другой стороны, представляет собой гипервизор с открытым исходным кодом, основанный на Debian Linux, который предоставляет виртуализацию на уровне сервера и возможности управления виртуальными машинами и контейнерами.
В этом руководстве мы рассмотрим, как установить Kubernetes на Proxmox VE и развернуть контейнер MySQL с последующим управлением этим контейнером через Kubernetes.
Подготовка среды Proxmox
Прежде чем начать установку Kubernetes на Proxmox VE и развертывание контейнера MySQL, убедитесь, что у вас есть доступ к серверу Proxmox VE и что он удовлетворяет следующим требованиям:
- Установленный Proxmox VE: Убедитесь, что у вас есть доступ к установленному экземпляру Proxmox VE. Если вы еще не установили Proxmox VE, вы можете сделать это, следуя официальной документации.
- Ресурсы сервера: Убедитесь, что у вашего сервера достаточно ресурсов для запуска Kubernetes. Рекомендуется иметь по меньшей мере 2 ГБ оперативной памяти и несколько ядер процессора.
- Docker: Установите Docker на вашем сервере Proxmox VE. Kubernetes использует Docker в качестве своего контейнерного рантайма. Ниже приведены инструкции по установке Docker.
Установка Docker на Proxmox VE
-
Откройте терминал на вашем сервере Proxmox VE.
-
Удалите старые версии Docker (если они установлены):
bashsudo apt-get remove docker docker-engine docker.io containerd runc
-
Обновите индекс пакетов и установите пакеты для HTTPS:
bashsudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release
-
Добавьте официальный GPG-ключ Docker:
bashcurl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
-
Добавьте репозиторий Docker:
bashecho "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
-
Установите Docker Engine:
bashsudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
-
Проверьте установку Docker, запустив тестовый контейнер:
bashsudo docker run hello-world
После успешной установки Docker, вы можете перейти к установке Kubernetes.
Установка Kubernetes
После подготовки среды перейдем к установке Kubernetes на Proxmox VE. Мы будем использовать утилиту kubeadm для установки и настройки кластера Kubernetes.
Шаг 1: Установка утилиты kubeadm
-
Откройте терминал на вашем сервере Proxmox VE.
-
Установите необходимые пакеты:
bashsudo apt update
sudo apt install -y apt-transport-https curl
-
Добавьте официальный ключ GPG Kubernetes:
bashcurl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
-
Добавьте репозиторий Kubernetes:
bashecho "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
-
Обновите список пакетов и установите kubeadm:
bashsudo apt update
sudo apt install -y kubelet kubeadm kubectl
Шаг 2: Настройка мастер-ноды
Теперь настроим мастер-ноду Kubernetes на сервере Proxmox VE.
-
Инициализируйте кластер Kubernetes на мастер-ноде:
bashsudo kubeadm init --pod-network-cidr=10.244.0.0/16
-
После завершения инициализации кластера выполните команды, предложенные kubeadm, чтобы настроить ваше окружение для использования Kubernetes:
bashmkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Шаг 3: Установка сетевого плагина
Сетевой плагин необходим для обеспечения сетевой связности между контейнерами в кластере. Мы будем использовать сетевой плагин Calico.
-
Установите Calico:
bashkubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
Шаг 4: Присоединение рабочих узлов
Теперь у вас есть работающий мастер-узел Kubernetes на вашем сервере Proxmox VE.
Чтобы добавить рабочие узлы в кластер, выполните команду, предложенную после инициализации мастер-узла.
Создание и управление контейнером MySQL
Теперь, когда у вас установлен Kubernetes на Proxmox VE, давайте создадим и настроим контейнер MySQL с помощью Kubernetes.
Шаг 1: Создание манифеста MySQL
Создайте манифест для развертывания контейнера MySQL. Создайте файл с именем mysql-deployment.yaml
и добавьте в него следующий контент:
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql-deployment
spec:
replicas: 1
selector:
matchLabels:
app: mysql
template:
metadata:
labels:
app: mysql
spec:
containers:
- name: mysql
image: mysql:latest
env:
- name: MYSQL_ROOT_PASSWORD
value: "your_password_here"
ports:
- containerPort: 3306
Шаг 2: Применение манифеста
Примените манифест, чтобы создать развертывание MySQL:
kubectl apply -f mysql-deployment.yaml
Шаг 3: Проверка состояния развертывания
Проверьте состояние развертывания:
kubectl get deployments
kubectl get pods
Шаг 4: Управление контейнером MySQL
Теперь, когда контейнер MySQL развернут, мы можем управлять им через Kubernetes. Вот несколько примеров реального управления контейнером MySQL:
Пример 1: Подключение к контейнеру MySQL
-
Подключитесь к контейнеру MySQL:
bashkubectl exec -it $(kubectl get pods -l app=mysql -o jsonpath="{.items[0].metadata.name}") -- /bin/bash
-
Запустите интерактивный MySQL-клиент:
bashmysql -u root -p
-
Введите пароль, который вы указали в манифесте развертывания.
-
Теперь вы можете использовать стандартные команды MySQL для управления вашей базой данных.
Пример 2: Резервное копирование базы данных MySQL
-
Подключитесь к контейнеру MySQL:
bashkubectl exec -it $(kubectl get pods -l app=mysql -o jsonpath="{.items[0].metadata.name}") -- /bin/bash
-
Выполните команду для создания резервной копии базы данных:
bashmysqldump -u root -p your_database_name > /tmp/backup.sql
-
Скопируйте файл резервной копии на локальную машину:
bashkubectl cp $(kubectl get pods -l app=mysql -o jsonpath="{.items[0].metadata.name}"):/tmp/backup.sql ./backup.sql
Пример 3: Восстановление базы данных MySQL
-
Скопируйте файл резервной копии в контейнер:
bashkubectl cp ./backup.sql $(kubectl get pods -l app=mysql -o jsonpath="{.items[0].metadata.name}"):/tmp/backup.sql
-
Подключитесь к контейнеру MySQL:
bashkubectl exec -it $(kubectl get pods -l app=mysql -o jsonpath="{.items[0].metadata.name}") -- /bin/bash
-
Выполните команду для восстановления базы данных:
bashmysql -u root -p your_database_name < /tmp/backup.sql
Заключение
Поздравляем! Теперь у вас установлен Kubernetes на Proxmox VE, и вы успешно развернули и управляете контейнером MySQL через Kubernetes.
Вы узнали, как подключаться к контейнеру, выполнять резервное копирование и восстановление базы данных. Это отличный способ начать использовать мощные возможности оркестрации контейнеров, предоставляемые Kubernetes, на вашем сервере Proxmox VE.
При необходимости вы можете масштабировать свои приложения и управлять ими с помощью Kubernetes, обеспечивая высокую доступность и надежность вашей инфраструктуры.
Реклама Google |
|
Внимание! Данная статья не является официальной документацией.Использование информации необходимо выполнять с осторожностью, используя для этого тестовую среду.
Если у вас есть вопросы о построении современных систем резервного копирования, репликации, синхронизации данных и защиты от программ вымогателей обратитесь в нашу компанию для получения консультации о современных технологиях резервного копирования и восстановления данных. Наша компания имеет более чем 20-летний опыт в этой области. |
Десять лучших практик резервного копирования в Казахстане
- Защита гипервизора oVirt — глубокое погружение
- Перенос виртуальной машины из oVirt в Proxmox
- Как перенести виртуальную машину из Proxmox в oVirt
- Защита контейнеров Kubernetes — глубокое погружение
- Как защитить гипервизор Proxmox от взлома - Глубокое погружение
- Использование Fail2Ban для защиты oVirt - Глубокое погружение
- Организация резервного копирования гипервизора oVirt — Глубокое погружение
- Перенос виртуальной машины между гипервизорами Proxmox
- Конфигурация гипервизора Proxmox для оптимальной работы виртуальных машин
- Защита root после взлома SSH на Proxmox - глубокое погружение