added conf files for k8s
This commit is contained in:
191
cluster1/configmap-init-scripts.yaml
Normal file
191
cluster1/configmap-init-scripts.yaml
Normal file
@@ -0,0 +1,191 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: cluster1-init-scripts
|
||||
namespace: cluster1
|
||||
data:
|
||||
db1-init.sql: |
|
||||
-- from Практика 3/init-scripts/db1-init.sql
|
||||
-- Инициализация БД 1
|
||||
-- Создание пользователей
|
||||
|
||||
-- Пользователь 1: видит только свою БД (database1)
|
||||
CREATE USER user1_local WITH PASSWORD 'user1pass';
|
||||
GRANT CONNECT ON DATABASE database1 TO user1_local;
|
||||
GRANT USAGE ON SCHEMA public TO user1_local;
|
||||
GRANT CREATE ON SCHEMA public TO user1_local;
|
||||
|
||||
-- Пользователь 1: может видеть БД в соседнем контейнере (database2)
|
||||
-- Этот пользователь будет создан также в db2, что позволит ему подключаться к обеим БД
|
||||
CREATE USER user1_cross WITH PASSWORD 'user1pass';
|
||||
GRANT CONNECT ON DATABASE database1 TO user1_cross;
|
||||
GRANT USAGE ON SCHEMA public TO user1_cross;
|
||||
GRANT CREATE ON SCHEMA public TO user1_cross;
|
||||
|
||||
-- Создание таблиц
|
||||
CREATE TABLE IF NOT EXISTS products (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL,
|
||||
price DECIMAL(10, 2) NOT NULL,
|
||||
quantity INTEGER NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS orders (
|
||||
id SERIAL PRIMARY KEY,
|
||||
customer_name VARCHAR(100) NOT NULL,
|
||||
total_amount DECIMAL(10, 2) NOT NULL,
|
||||
status VARCHAR(50) NOT NULL,
|
||||
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Выдача прав на таблицы для user1_local
|
||||
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user1_local;
|
||||
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user1_local;
|
||||
|
||||
-- Выдача прав на таблицы для user1_cross
|
||||
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user1_cross;
|
||||
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user1_cross;
|
||||
|
||||
-- Настройка прав по умолчанию для будущих таблиц
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO user1_local;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO user1_cross;
|
||||
ALTER DEFAULT PRIVИЛЕGES IN SCHEMA public GRANT ALL ON SEQUENCES TO user1_local;
|
||||
ALTER DEFAULT PRIVИЛЕGES IN SCHEMA public GRANT ALL ON SEQUENCES TO user1_cross;
|
||||
|
||||
db1-data.sql: |
|
||||
-- from Практика 3/init-scripts/db1-data.sql
|
||||
-- Заполнение таблиц случайными данными для БД 1
|
||||
|
||||
-- Вставка случайных данных в таблицу products
|
||||
INSERT INTO products (name, price, quantity) VALUES
|
||||
('Ноутбук Dell XPS', 89999.99, 15),
|
||||
('Мышь Logitech MX', 3499.50, 42),
|
||||
('Клавиатура Mechanical', 5999.00, 28),
|
||||
('Монитор LG 27"', 24999.99, 12),
|
||||
('Наушники Sony WH-1000XM4', 19999.00, 35),
|
||||
('Веб-камера Logitech C920', 4999.00, 18),
|
||||
('Микрофон Blue Yeti', 8999.99, 8),
|
||||
('Коврик для мыши', 599.00, 100),
|
||||
('USB-C кабель', 1299.00, 55),
|
||||
('Внешний SSD 1TB', 8999.99, 22),
|
||||
('Планшет Samsung Galaxy', 29999.00, 14),
|
||||
('Смартфон iPhone 15', 79999.99, 9),
|
||||
('Умные часы Apple Watch', 24999.00, 20),
|
||||
('Портативная колонка JBL', 4999.00, 30),
|
||||
('Беспроводные наушники AirPods', 14999.00, 25);
|
||||
|
||||
-- Вставка случайных данных в таблицу orders
|
||||
INSERT INTO orders (customer_name, total_amount, status) VALUES
|
||||
('Иван Петров', 125999.99, 'completed'),
|
||||
('Мария Сидорова', 3499.50, 'pending'),
|
||||
('Алексей Иванов', 5999.00, 'completed'),
|
||||
('Елена Козлова', 24999.99, 'processing'),
|
||||
('Дмитрий Смирнов', 19999.00, 'completed'),
|
||||
('Ольга Волкова', 4999.00, 'pending'),
|
||||
('Сергей Лебедев', 8999.99, 'completed'),
|
||||
('Анна Новикова', 599.00, 'completed'),
|
||||
('Павел Морозов', 1299.00, 'processing'),
|
||||
('Татьяна Федорова', 8999.99, 'completed'),
|
||||
('Николай Соколов', 29999.00, 'pending'),
|
||||
('Юлия Попова', 79999.99, 'completed'),
|
||||
('Андрей Васильев', 24999.00, 'processing'),
|
||||
('Наталья Павлова', 4999.00, 'completed'),
|
||||
('Владимир Семенов', 14999.00, 'pending'),
|
||||
('Ирина Григорьева', 89999.99, 'completed'),
|
||||
('Роман Орлов', 3499.50, 'processing'),
|
||||
('Екатерина Зайцева', 5999.00, 'completed'),
|
||||
('Максим Егоров', 24999.99, 'pending'),
|
||||
('Светлана Михайлова', 19999.00, 'completed');
|
||||
|
||||
db2-init.sql: |
|
||||
-- from Практика 3/init-scripts/db2-init.sql
|
||||
-- Инициализация БД 2
|
||||
-- Создание пользователей
|
||||
|
||||
-- Пользователь 2: видит только свою БД (database2)
|
||||
CREATE USER user2_local WITH PASSWORD 'user2pass';
|
||||
GRANT CONNECT ON DATABASE database2 TO user2_local;
|
||||
GRANT USAGE ON SCHEMA public TO user2_local;
|
||||
GRANT CREATE ON SCHEMA public TO user2_local;
|
||||
|
||||
-- Пользователь 1: может видеть БД в соседнем контейнере (database1)
|
||||
-- Этот пользователь создан также в db1, что позволяет ему подключаться к обеим БД
|
||||
CREATE USER user1_cross WITH PASSWORD 'user1pass';
|
||||
GRANT CONNECT ON DATABASE database2 TO user1_cross;
|
||||
GRANT USAGE ON SCHEMA public TO user1_cross;
|
||||
GRANT CREATE ON SCHEMA public TO user1_cross;
|
||||
|
||||
-- Создание таблиц
|
||||
CREATE TABLE IF NOT EXISTS employees (
|
||||
id SERIAL PRIMARY KEY,
|
||||
first_name VARCHAR(50) NOT NULL,
|
||||
last_name VARCHAR(50) NOT NULL,
|
||||
position VARCHAR(100) NOT NULL,
|
||||
salary DECIMAL(10, 2) NOT NULL,
|
||||
hire_date DATE NOT NULL,
|
||||
department VARCHAR(50) NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS departments (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(100) NOT NULL UNIQUE,
|
||||
budget DECIMAL(12, 2) NOT NULL,
|
||||
manager_id INTEGER,
|
||||
location VARCHAR(100) NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- Выдача прав на таблицы для user2_local
|
||||
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user2_local;
|
||||
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user2_local;
|
||||
|
||||
-- Выдача прав на таблицы для user1_cross
|
||||
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO user1_cross;
|
||||
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO user1_cross;
|
||||
|
||||
-- Настройка прав по умолчанию для будущих таблиц
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO user2_local;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO user1_cross;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO user2_local;
|
||||
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON SEQUENCES TO user1_cross;
|
||||
|
||||
db2-data.sql: |
|
||||
-- from Практика 3/init-scripts/db2-data.sql
|
||||
-- Заполнение таблиц случайными данными для БД 2
|
||||
|
||||
-- Вставка случайных данных в таблицу departments
|
||||
INSERT INTO departments (name, budget, location) VALUES
|
||||
('Отдел разработки', 5000000.00, 'Москва, офис 1'),
|
||||
('Отдел продаж', 3000000.00, 'Санкт-Петербург, офис 2'),
|
||||
('Отдел маркетинга', 2000000.00, 'Москва, офис 1'),
|
||||
('Отдел HR', 1500000.00, 'Новосибирск, офис 3'),
|
||||
('Отдел финансов', 4000000.00, 'Москва, офис 1'),
|
||||
('Отдел поддержки', 1800000.00, 'Екатеринбург, офис 4'),
|
||||
('Отдел тестирования', 2500000.00, 'Москва, офис 1'),
|
||||
('Отдел аналитики', 2200000.00, 'Казань, офис 5');
|
||||
|
||||
-- Вставка случайных данных в таблицу employees
|
||||
INSERT INTO employees (first_name, last_name, position, salary, hire_date, department) VALUES
|
||||
('Александр', 'Иванов', 'Senior Developer', 150000.00, '2020-03-15', 'Отдел разработки'),
|
||||
('Елена', 'Петрова', 'Product Manager', 120000.00, '2019-06-20', 'Отдел разработки'),
|
||||
('Дмитрий', 'Сидоров', 'Sales Manager', 80000.00, '2021-01-10', 'Отдел продаж'),
|
||||
('Мария', 'Козлова', 'Marketing Specialist', 70000.00, '2021-08-05', 'Отдел маркетинга'),
|
||||
('Сергей', 'Смирнов', 'HR Manager', 90000.00, '2020-11-12', 'Отдел HR'),
|
||||
('Ольга', 'Волкова', 'Financial Analyst', 110000.00, '2019-09-18', 'Отдел финансов'),
|
||||
('Андрей', 'Лебедев', 'Support Engineer', 65000.00, '2022-02-22', 'Отдел поддержки'),
|
||||
('Татьяна', 'Новикова', 'QA Engineer', 75000.00, '2021-04-30', 'Отдел тестирования'),
|
||||
('Павел', 'Морозов', 'Data Analyst', 85000.00, '2020-07-14', 'Отдел аналитики'),
|
||||
('Юлия', 'Федорова', 'Junior Developer', 60000.00, '2022-05-08', 'Отдел разработки'),
|
||||
('Николай', 'Соколов', 'Senior Sales Manager', 95000.00, '2018-12-03', 'Отдел продаж'),
|
||||
('Анна', 'Попова', 'Marketing Manager', 100000.00, '2020-10-25', 'Отдел маркетинга'),
|
||||
('Владимир', 'Васильев', 'Lead Developer', 180000.00, '2017-05-11', 'Отдел разработки'),
|
||||
('Наталья', 'Павлова', 'Recruiter', 55000.00, '2021-11-19', 'Отдел HR'),
|
||||
('Роман', 'Семенов', 'CFO', 200000.00, '2016-08-07', 'Отдел финансов'),
|
||||
('Екатерина', 'Григорьева', 'Senior Support Engineer', 80000.00, '2019-03-28', 'Отдел поддержки'),
|
||||
('Максим', 'Орлов', 'Test Lead', 130000.00, '2018-09-15', 'Отдел тестирования'),
|
||||
('Светлана', 'Зайцева', 'Senior Data Analyst', 120000.00, '2019-12-01', 'Отдел аналитики'),
|
||||
('Игорь', 'Егоров', 'DevOps Engineer', 140000.00, '2020-04-16', 'Отдел разработки'),
|
||||
('Людмила', 'Михайлова', 'Sales Director', 160000.00, '2017-11-23', 'Отдел продаж');
|
||||
|
||||
|
||||
47
cluster1/configmap-replication-scripts.yaml
Normal file
47
cluster1/configmap-replication-scripts.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: cluster1-replication-scripts
|
||||
namespace: cluster1
|
||||
data:
|
||||
entrypoint-replica.sh: |
|
||||
#!/bin/sh
|
||||
set +e # Не останавливаться при ошибках в фоновых процессах
|
||||
|
||||
# Запускаем PostgreSQL в фоновом режиме
|
||||
echo "Запуск PostgreSQL..."
|
||||
docker-entrypoint.sh postgres &
|
||||
POSTGRES_PID=$!
|
||||
|
||||
# Ждем запуска PostgreSQL
|
||||
echo "Ожидание запуска PostgreSQL..."
|
||||
sleep 15
|
||||
|
||||
# Проверяем, что PostgreSQL запущен
|
||||
RETRY_COUNT=0
|
||||
MAX_RETRIES=30
|
||||
until PGPASSWORD=postgres123 psql -h localhost -U postgres -c '\q' 2>/dev/null; do
|
||||
RETRY_COUNT=$((RETRY_COUNT + 1))
|
||||
if [ $RETRY_COUNT -ge $MAX_RETRIES ]; then
|
||||
echo "Ошибка: PostgreSQL не запустился за отведенное время"
|
||||
exit 1
|
||||
fi
|
||||
echo "Ожидание PostgreSQL... ($RETRY_COUNT/$MAX_RETRIES)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo "PostgreSQL запущен!"
|
||||
|
||||
# Настраиваем репликацию
|
||||
echo "Настройка репликации..."
|
||||
/replication-scripts/setup-replica.sh
|
||||
|
||||
# Запускаем периодическую репликацию в фоне
|
||||
echo "Запуск службы периодической репликации..."
|
||||
/replication-scripts/replication-cron.sh &
|
||||
REPLICATION_PID=$!
|
||||
|
||||
# Ждем завершения PostgreSQL (главный процесс)
|
||||
wait $POSTGRES_PID
|
||||
|
||||
|
||||
5
cluster1/namespace.yaml
Normal file
5
cluster1/namespace.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: cluster1
|
||||
|
||||
37
cluster1/pvc-db.yaml
Normal file
37
cluster1/pvc-db.yaml
Normal file
@@ -0,0 +1,37 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: db1-data
|
||||
namespace: cluster1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: db2-data
|
||||
namespace: cluster1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: replica-data
|
||||
namespace: cluster1
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
|
||||
|
||||
13
cluster1/secrets-db.yaml
Normal file
13
cluster1/secrets-db.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: cluster1-postgres-secret
|
||||
namespace: cluster1
|
||||
type: Opaque
|
||||
stringData:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres123
|
||||
DB1_NAME: database1
|
||||
DB2_NAME: database2
|
||||
|
||||
|
||||
71
cluster1/statefulset-db1.yaml
Normal file
71
cluster1/statefulset-db1.yaml
Normal file
@@ -0,0 +1,71 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: db1
|
||||
namespace: cluster1
|
||||
spec:
|
||||
serviceName: db1
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: db1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: db1
|
||||
spec:
|
||||
containers:
|
||||
- name: postgres
|
||||
image: postgres:15-alpine
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
env:
|
||||
- name: POSTGRES_DB
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cluster1-postgres-secret
|
||||
key: DB1_NAME
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cluster1-postgres-secret
|
||||
key: POSTGRES_USER
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cluster1-postgres-secret
|
||||
key: POSTGRES_PASSWORD
|
||||
- name: PGDATA
|
||||
value: /var/lib/postgresql/data/pgdata
|
||||
volumeMounts:
|
||||
- name: db1-data
|
||||
mountPath: /var/lib/postgresql/data
|
||||
- name: init-scripts
|
||||
mountPath: /docker-entrypoint-initdb.d/01-init.sql
|
||||
subPath: db1-init.sql
|
||||
- name: init-scripts
|
||||
mountPath: /docker-entrypoint-initdb.d/02-data.sql
|
||||
subPath: db1-data.sql
|
||||
volumes:
|
||||
- name: db1-data
|
||||
persistentVolumeClaim:
|
||||
claimName: db1-data
|
||||
- name: init-scripts
|
||||
configMap:
|
||||
name: cluster1-init-scripts
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: db1
|
||||
namespace: cluster1
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: db1
|
||||
ports:
|
||||
- name: postgres
|
||||
port: 5432
|
||||
targetPort: 5432
|
||||
|
||||
|
||||
71
cluster1/statefulset-db2.yaml
Normal file
71
cluster1/statefulset-db2.yaml
Normal file
@@ -0,0 +1,71 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: db2
|
||||
namespace: cluster1
|
||||
spec:
|
||||
serviceName: db2
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: db2
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: db2
|
||||
spec:
|
||||
containers:
|
||||
- name: postgres
|
||||
image: postgres:15-alpine
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
env:
|
||||
- name: POSTGRES_DB
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cluster1-postgres-secret
|
||||
key: DB2_NAME
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cluster1-postgres-secret
|
||||
key: POSTGRES_USER
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cluster1-postgres-secret
|
||||
key: POSTGRES_PASSWORD
|
||||
- name: PGDATA
|
||||
value: /var/lib/postgresql/data/pgdata
|
||||
volumeMounts:
|
||||
- name: db2-data
|
||||
mountPath: /var/lib/postgresql/data
|
||||
- name: init-scripts
|
||||
mountPath: /docker-entrypoint-initdb.d/01-init.sql
|
||||
subPath: db2-init.sql
|
||||
- name: init-scripts
|
||||
mountPath: /docker-entrypoint-initdb.d/02-data.sql
|
||||
subPath: db2-data.sql
|
||||
volumes:
|
||||
- name: db2-data
|
||||
persistentVolumeClaim:
|
||||
claimName: db2-data
|
||||
- name: init-scripts
|
||||
configMap:
|
||||
name: cluster1-init-scripts
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: db2
|
||||
namespace: cluster1
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: db2
|
||||
ports:
|
||||
- name: postgres
|
||||
port: 5432
|
||||
targetPort: 5432
|
||||
|
||||
|
||||
71
cluster1/statefulset-replica.yaml
Normal file
71
cluster1/statefulset-replica.yaml
Normal file
@@ -0,0 +1,71 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: replica
|
||||
namespace: cluster1
|
||||
spec:
|
||||
serviceName: replica
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: replica
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: replica
|
||||
spec:
|
||||
containers:
|
||||
- name: postgres
|
||||
image: postgres:15-alpine
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
env:
|
||||
- name: POSTGRES_DB
|
||||
value: replica_db
|
||||
- name: POSTGRES_USER
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cluster1-postgres-secret
|
||||
key: POSTGRES_USER
|
||||
- name: POSTGRES_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: cluster1-postgres-secret
|
||||
key: POSTGRES_PASSWORD
|
||||
- name: PGDATA
|
||||
value: /var/lib/postgresql/data/pgdata
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
chmod +x /replication-scripts/entrypoint-replica.sh
|
||||
exec /replication-scripts/entrypoint-replica.sh
|
||||
volumeMounts:
|
||||
- name: replica-data
|
||||
mountPath: /var/lib/postgresql/data
|
||||
- name: replication-scripts
|
||||
mountPath: /replication-scripts
|
||||
volumes:
|
||||
- name: replica-data
|
||||
persistentVolumeClaim:
|
||||
claimName: replica-data
|
||||
- name: replication-scripts
|
||||
configMap:
|
||||
name: cluster1-replication-scripts
|
||||
defaultMode: 0755
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: replica
|
||||
namespace: cluster1
|
||||
spec:
|
||||
type: ClusterIP
|
||||
selector:
|
||||
app: replica
|
||||
ports:
|
||||
- name: postgres
|
||||
port: 5432
|
||||
targetPort: 5432
|
||||
|
||||
|
||||
Reference in New Issue
Block a user