Муваффақият ба ҳама.
Ман дар интернет дастури умумӣ оид ба сабт ва ҷамъоварии ченакҳо аз хидматҳои тарафи сеюм ба системаҳои ҷойгиршуда пайдо накардаам.
Бақайдгирӣ
Бисёр ширкатҳо барои ҷамъоварӣ, дидан ва мутамарказ кардани гузоришҳо як қатор технологияҳоро истифода мебаранд
арзишхо.ямл
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: nginx
hosts:
- host: kube-loki.example.domain
paths:
- /
tls: []
....
persistence:
type: pvc
enabled: true
accessModes:
- ReadWriteOnce
size: 100Gi
finalizers:
- kubernetes.io/pvc-protection
existingClaim: "pv-loki"
Барои фиристодани гузоришҳо ба як мисол
Шумо бояд ин иловаро дар ҳама чиз насб кунед
postgres.yaml
- name: Run containers
docker_compose:
project_name: main-postgres
definition:
version: '3.7'
services:
p:
image: "{{ postgres_version }}"
container_name: postgresql
restart: always
volumes:
- "{{ postgres_dir }}/data:/var/lib/postgresql/data"
- "{{ postgres_dir }}/postgres_init_scripts:/docker-entrypoint-initdb.d"
environment:
POSTGRES_PASSWORD: {{ postgres_pass }}
POSTGRES_USER: {{ postgres_user }}
ports:
- "{{ postgres_ip }}:{{ postgres_port }}:5432"
logging:
driver: "loki"
options:
loki-url: "{{ loki_url }}"
loki-batch-size: "{{ loki_batch_size }}"
loki-retries: "{{ loki_retries }}"
...
дар куҷо loki_url:
Метрикҳо
Метрикҳо аз PostgreSQL истифода бурда мешаванд
postgres.yaml
...
pexp:
image: "wrouesnel/postgres_exporter"
container_name: pexporter
restart: unless-stopped
environment:
DATA_SOURCE_NAME: "postgresql://{{ postgres_user }}:{{ postgres_pass }}@p:5432/postgres?sslmode=disable"
ports:
- "{{ postgres_ip }}:{{ postgres_exporter_port }}:9187"
logging:
driver: "json-file"
options:
max-size: "5m"
...
Барои возеҳи бештар, мо бо истифода аз Endpoints номҳои хидматҳои ҳолати берунаро менависем.
postgres-service.yaml
apiVersion: v1
kind: Endpoints
metadata:
name: postgres-exporter
subsets:
- addresses:
- ip: {{ .Values.service.postgres.ip }}
ports:
- port: {{ .Values.service.postgres.port }}
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: postgres-exporter
labels:
chart: "{{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}"
spec:
ports:
- protocol: TCP
port: {{ .Values.service.postgres.port }}
targetPort: {{ .Values.service.postgres.port }}
Танзими Prometheus барои гирифтани маълумоти postgres_exporter тавассути таҳрири арзишҳо дар зерчарт анҷом дода мешавад.
арзишхо.ямл
scrape_configs:
...
- job_name: postgres-exporter
static_configs:
- targets:
- postgres-exporter.applicationnamespace.svc.cluster.local:9187
labels:
alias: postgres
...
Барои тасаввур кардани маълумоти гирифташуда, панели мувофиқро насб кунед
Чӣ гуна аст
Умедворам, ки ин мақолаи кӯтоҳ ба шумо дар фаҳмидани ғояҳои асосии ин ҳалли масъала кӯмак кард ва ҳангоми ташкили мониторинг ва сабти хидматҳои беруна барои Loki/Prometheus дар кластери Kubernetes вақти шуморо сарфа кард.
Манбаъ: will.com