Добавил:
мой вк: vk.com/truecrimebitch больше работ здесь: https://github.com/alisadex Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_по_контейнерам_все_5_лаб.docx
Скачиваний:
0
Добавлен:
11.05.2025
Размер:
1.13 Mб
Скачать
  1. Создание кластера 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