Загрузить файлы в «z2/k8s»

This commit is contained in:
Yan Kasabutski 2025-04-17 01:56:04 +00:00
parent 79dd761741
commit 40e38eaca1
15 changed files with 317 additions and 0 deletions

View File

@ -0,0 +1,20 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend-deployment
namespace: todo-app-ns-v2 # Указываем пространство имен
spec:
replicas: 1
selector:
matchLabels:
app: backend
template:
metadata:
labels:
app: backend
spec:
containers:
- name: backend
image: jank8000/backend-image:latest
ports:
- containerPort: 8081

View File

@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: backend-service
namespace: todo-app-ns-v2 # Указываем пространство имен
spec:
ports:
- port: 8081
targetPort: 8081
selector:
app: backend

30
z2/k8s/deployment.yaml Normal file
View File

@ -0,0 +1,30 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: todo-web-app
namespace: todo-app-ns-v2
labels:
app: todo-web-app
spec:
replicas: 2
selector:
matchLabels:
app: todo-web-app
template:
metadata:
labels:
app: todo-web-app
spec:
containers:
- name: todo-web-app
image: todo-web-app:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
resources:
limits:
cpu: "500m"
memory: "256Mi"
requests:
cpu: "100m"
memory: "128Mi"

View File

@ -0,0 +1,21 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend-deployment
namespace: todo-app-ns-v2
spec:
replicas: 1
selector:
matchLabels:
app: todo-web
template:
metadata:
labels:
app: todo-web
spec:
containers:
- name: todo-web
image: jank8000/todo-web:latest # Указываем Docker-образ фронтенда, который вы загрузили
ports:
- containerPort: 80

View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: frontend-service
namespace: todo-app-ns-v2
spec:
selector:
app: todo-web
ports:
- protocol: TCP
port: 80
type: ClusterIP # Сервис будет доступен внутри кластера

18
z2/k8s/ingress.yaml Normal file
View File

@ -0,0 +1,18 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: todo-ingress
namespace: todo-app-ns-v2
spec:
rules:
- host: 147.232.185.30 # Указан ваш внешний IP
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frontend-service
port:
number: 80

4
z2/k8s/namespace.yaml Normal file
View File

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: todo-app-ns-v2

12
z2/k8s/service.yaml Normal file
View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: backend-service
namespace: todo-app-ns-v2
spec:
selector:
app: todo-backend
ports:
- protocol: TCP
port: 80
targetPort: 5000

37
z2/k8s/statefulset.yaml Normal file
View File

@ -0,0 +1,37 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: todo-data-manager # Имя StatefulSet
namespace: todo-app-ns-v2 # Пространство имен
spec:
serviceName: "todo-data-service" # Сервис для StatefulSet
replicas: 1 # Количество реплик
selector:
matchLabels:
app: todo-data # Лейбл для выборки подов
template:
metadata:
labels:
app: todo-data # Лейблы для подов
spec:
imagePullSecrets:
- name: my-docker-secret # Секрет для загрузки образа Docker
containers:
- name: todo-data # Имя контейнера
image: jank8000/todo-data-image:latest # Docker образ
ports:
- containerPort: 8080 # Порт контейнера
volumeMounts:
- name: todo-app-pvc # PVC, которое будет монтироваться
mountPath: /data # Место, где данные будут храниться в контейнере
volumeClaimTemplates:
- metadata:
name: todo-app-pvc # PVC для хранения данных
namespace: todo-app-ns-v2 # Пространство имен для PVC
spec:
accessModes:
- ReadWriteOnce # Режим доступа к PVC
resources:
requests:
storage: 1Gi # Запрос на 1Gi хранилища
volumeMode: Filesystem # Монтирование как файловая система

View File

@ -0,0 +1,87 @@
---
apiVersion: v1
kind: Namespace
metadata:
name: todo-app-ns-v2
---
apiVersion: v1
kind: Service
metadata:
name: todo-web-service
namespace: todo-app-ns-v2
spec:
selector:
app: todo-web
ports:
- protocol: TCP
port: 80
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend-deployment
namespace: todo-app-ns-v2
spec:
replicas: 1
selector:
matchLabels:
app: todo-web
template:
metadata:
labels:
app: todo-web
spec:
containers:
- name: frontend
image: your-frontend-image:latest # Укажи свой образ для фронтенда
ports:
- containerPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: backend-deployment
namespace: todo-app-ns-v2
spec:
replicas: 1
selector:
matchLabels:
app: todo-backend
template:
metadata:
labels:
app: todo-backend
spec:
containers:
- name: backend
image: your-backend-image:latest # Укажи свой образ для бэкенда
ports:
- containerPort: 8080
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: todo-app-pv
namespace: todo-app-ns-v2
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: /mnt/data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: todo-app-pvc
namespace: todo-app-ns-v2
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeName: todo-app-pv

View File

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: todo-app-ns-v2

14
z2/k8s/todo-app-pv.yaml Normal file
View File

@ -0,0 +1,14 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: todo-app-pv
namespace: todo-app-ns-v2 # Указываем пространство имен
spec:
capacity:
storage: 1Gi
volumeMode: Filesystem
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/mnt/data/todo-app"

12
z2/k8s/todo-app-pvc.yaml Normal file
View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: todo-app-pvc
namespace: todo-app-ns-v2 # Указываем пространство имен
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeMode: Filesystem

View File

@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: todo-data-service
namespace: todo-app-ns-v2 # Указываем пространство имен
spec:
ports:
- port: 8080
targetPort: 8080
selector:
app: todo-data
clusterIP: None # Указывает на использование StatefulSet

View File

@ -0,0 +1,23 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: todo-data-manager
namespace: todo-app-ns-v2 # Указываем пространство имен
spec:
serviceName: "todo-data-service"
replicas: 1
selector:
matchLabels:
app: todo-data
template:
metadata:
labels:
app: todo-data
spec:
imagePullSecrets:
- name: my-docker-secret # Имя секрета для DockerHub
containers:
- name: todo-data
image: jank8000/todo-data-image:latest
ports:
- containerPort: 8080