Files
fission-console/metrics-collector/deploy/metrics-collector.yaml
T

90 lines
2.4 KiB
YAML

apiVersion: apps/v1
kind: Deployment
metadata:
name: metrics-collector
namespace: fission
labels:
app: metrics-collector
spec:
replicas: 1
selector:
matchLabels:
app: metrics-collector
template:
metadata:
labels:
app: metrics-collector
spec:
containers:
- name: metrics-collector
image: naeel/metrics-collector:v0.1.3
ports:
- containerPort: 8091
env:
- name: PORT
value: "8091"
livenessProbe:
httpGet:
path: /health
port: 8091
initialDelaySeconds: 5
periodSeconds: 20
readinessProbe:
httpGet:
path: /health
port: 8091
initialDelaySeconds: 3
periodSeconds: 10
resources:
requests:
cpu: 10m
memory: 16Mi
limits:
cpu: 100m
memory: 64Mi
---
apiVersion: v1
kind: Service
metadata:
name: metrics-collector
namespace: fission
spec:
selector:
app: metrics-collector
ports:
- port: 8091
targetPort: 8091
---
# ⛔ АРХИТЕКТУРА: три независимые сущности:
# 1. croned (функция) — шлёт метрики POST /metrics → metrics-collector:8091
# 2. metrics-collector (этот сервис) — хранит и отдаёт метрики, UI на /cron
# 3. fission-console — управление функциями, НЕ ЗНАЕТ про метрики
#
# ⛔ НЕ ПЕРЕНОСИТЬ /cron в ingress fission-console — это ломает архитектуру.
# ⛔ НЕ УБИРАТЬ этот Ingress — без него /cron страница недоступна снаружи.
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: metrics-collector
namespace: fission
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
spec:
ingressClassName: nginx
rules:
- host: fission.kube5s.ru
http:
paths:
- path: /cron
pathType: Prefix
backend:
service:
name: metrics-collector
port:
number: 8091
tls:
- hosts:
- fission.kube5s.ru
secretName: fission-tls