diff --git a/z2/k8s/backend-deployment.yaml b/z2/k8s/backend-deployment.yaml new file mode 100644 index 0000000..b288cd7 --- /dev/null +++ b/z2/k8s/backend-deployment.yaml @@ -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 diff --git a/z2/k8s/backend-service.yaml b/z2/k8s/backend-service.yaml new file mode 100644 index 0000000..c3aadec --- /dev/null +++ b/z2/k8s/backend-service.yaml @@ -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 diff --git a/z2/k8s/deployment.yaml b/z2/k8s/deployment.yaml new file mode 100644 index 0000000..580357a --- /dev/null +++ b/z2/k8s/deployment.yaml @@ -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" diff --git a/z2/k8s/frontend-deployment.yaml b/z2/k8s/frontend-deployment.yaml new file mode 100644 index 0000000..e3272de --- /dev/null +++ b/z2/k8s/frontend-deployment.yaml @@ -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 + diff --git a/z2/k8s/frontend-service.yaml b/z2/k8s/frontend-service.yaml new file mode 100644 index 0000000..035e08e --- /dev/null +++ b/z2/k8s/frontend-service.yaml @@ -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 # Сервис будет доступен внутри кластера diff --git a/z2/k8s/ingress.yaml b/z2/k8s/ingress.yaml new file mode 100644 index 0000000..f1a803c --- /dev/null +++ b/z2/k8s/ingress.yaml @@ -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 + diff --git a/z2/k8s/namespace.yaml b/z2/k8s/namespace.yaml new file mode 100644 index 0000000..1666873 --- /dev/null +++ b/z2/k8s/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: todo-app-ns-v2 diff --git a/z2/k8s/service.yaml b/z2/k8s/service.yaml new file mode 100644 index 0000000..1da18b0 --- /dev/null +++ b/z2/k8s/service.yaml @@ -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 diff --git a/z2/k8s/statefulset.yaml b/z2/k8s/statefulset.yaml new file mode 100644 index 0000000..ce62de2 --- /dev/null +++ b/z2/k8s/statefulset.yaml @@ -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 # Монтирование как файловая система diff --git a/z2/k8s/todo-app-deployment.yaml b/z2/k8s/todo-app-deployment.yaml new file mode 100644 index 0000000..76b5c25 --- /dev/null +++ b/z2/k8s/todo-app-deployment.yaml @@ -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 diff --git a/z2/k8s/todo-app-ns-v2.yaml b/z2/k8s/todo-app-ns-v2.yaml new file mode 100644 index 0000000..a631544 --- /dev/null +++ b/z2/k8s/todo-app-ns-v2.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: todo-app-ns-v2 diff --git a/z2/k8s/todo-app-pv.yaml b/z2/k8s/todo-app-pv.yaml new file mode 100644 index 0000000..07824b4 --- /dev/null +++ b/z2/k8s/todo-app-pv.yaml @@ -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" diff --git a/z2/k8s/todo-app-pvc.yaml b/z2/k8s/todo-app-pvc.yaml new file mode 100644 index 0000000..39d9cbd --- /dev/null +++ b/z2/k8s/todo-app-pvc.yaml @@ -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 diff --git a/z2/k8s/todo-data-service.yaml b/z2/k8s/todo-data-service.yaml new file mode 100644 index 0000000..9a091e0 --- /dev/null +++ b/z2/k8s/todo-data-service.yaml @@ -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 diff --git a/z2/k8s/todo-data-statefulset.yaml b/z2/k8s/todo-data-statefulset.yaml new file mode 100644 index 0000000..abf474c --- /dev/null +++ b/z2/k8s/todo-data-statefulset.yaml @@ -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