
- •Лабораторная работа №1 Создание и настройка виртуальной машины
- •Дополнительное задание
- •Контрольные вопросы
- •Лабораторная работа №2 Базовые команды Docker
- •Установка Docker в Ubuntu 22.04:
- •Запустим hello-world:
- •Метки и удаление образа - docker tag
- •Дополнительное задание
- •Контроольные вопросы
- •Лабораторная работа №3 Контейнер Adminer
- •Подключимся в браузере на хосте к http://127.0.0.1:8080/:
- •Сети - docker network
- •Теперь создадим новую сеть:
- •Теперь пересоздадим контейнеры субд и Adminer в этой сети:
- •Теперь грохнем все контейнеры:
- •Контрольные вопросы
- •Лабораторная работа №4 Знакомство с Kubernetes
- •Создание кластера Kubernetes с PostgreSql и Adminer
- •Контрольные вопросы
- •Лабораторная работа №5 Создание и настройка кластера Kubernetes с распределенной системой из трех взаимосвязанных компонентов
Создание кластера Kubernetes с PostgreSql и Adminer
Для создания кластера Kubernetes с PostgreSQL и Adminer, которые будут взаимодействовать между собой, мы используем kind для создания кластера и YAML-файлы для развертывания PostgreSQL и Adminer.
Создайте файл конфигурации для кластера, например, kind-cluster.yaml:
kind: Cluster apiVersion: kind.x-k8s.io/v1alpha4 nodes: - role: control-plane extraPortMappings: - containerPort: 30000 hostPort: 30000 protocol: TCP |
Создайте кластер:
kind create cluster --name my-cluster --config kind-cluster.yaml
Проверьте, что кластер создан:
kubectl get nodes
Создайте файл postgres-deployment.yaml для развертывания PostgreSQL:
apiVersion: apps/v1 kind: Deployment metadata: name: postgres spec: replicas: 1 selector: matchLabels: app: postgres template: metadata: labels: app: postgres spec: containers: - name: postgres image: postgres:13 env: - name: POSTGRES_USER value: admin - name: POSTGRES_PASSWORD value: password - name: POSTGRES_DB value: mydb ports: - containerPort: 5432 volumeMounts: - name: postgres-storage mountPath: /var/lib/postgresql/data volumes: - name: postgres-storage emptyDir: {} |
Создайте файл postgres-service.yaml для создания Service:
apiVersion: v1 kind: Service metadata: name: postgres spec: ports: - port: 5432 targetPort: 5432 selector: app: postgres |
Создайте файл adminer-deployment.yaml для развертывания Adminer:
apiVersion: apps/v1 kind: Deployment metadata: name: adminer spec: replicas: 1 selector: matchLabels: app: adminer template: metadata: labels: app: adminer spec: containers: - name: adminer image: adminer:latest ports: - containerPort: 8080 env: - name: ADMINER_DEFAULT_SERVER value: postgres |
Создайте файл adminer-service.yaml для создания Service:
apiVersion: v1 kind: Service metadata: name: adminer spec: type: NodePort ports: - port: 8080 targetPort: 8080 nodePort: 30000 selector: app: adminer |
Примените конфигурации для развертывания PostgreSQL и Adminer:
kubectl apply -f postgres-deployment.yaml
kubectl apply -f postgres-service.yaml
kubectl apply -f adminer-deployment.yaml
kubectl apply -f adminer-service.yaml
Проверьте, что все компоненты созданы:
kubectl get deployments
kubectl get pods
kubectl get svc
Adminer будет доступен через порт 30000 на вашем хосте. Откройте браузер и перейдите по адресу:
http://localhost:30000
(Не забудьте настроить проброс портов в ВМ)
На странице входа в Adminer:
Система: PostgreSQL
Сервер: postgres (имя сервиса PostgreSQL в Kubernetes)
Пользователь: admin
Пароль: password
База данных: mydb
Если кластер больше не нужен, удалите его:
kind delete cluster --name my-cluster