د کوبرنیټس کلستر ته د بهرني خدماتو څارنه او ننوتل

د کوبرنیټس کلستر ته د بهرني خدماتو څارنه او ننوتل

ټولو ته دې مبارک وي.

ما د دریمې ډلې خدماتو څخه په سیسټمونو کې ګمارل شوي سیسټمونو ته د ننوتلو او میټریکونو راټولولو په اړه آنلاین عمومي لارښود ندی موندلی. کوبنیټس. زه خپل حل پوسټ کوم. دا مقاله داسې انګیرل کیږي چې تاسو دمخه کار کوئ Prometheus او نور خدمتونه. د بهرنۍ دولتي خدمت لپاره د معلوماتو سرچینې د مثال په توګه، DBMS به وکارول شي پوسټری ایس ایس ایل په یوه کانتینر کې ډاکر. شرکت د بسته بندۍ مدیر کاروي خولۍپه متن کې به لاندې مثالونه وي. د بشپړ حل لپاره، موږ خپل چارټ چمتو کوو، کوم چې د ټولو کارول شویو خدماتو نیست شوي چارټونه شامل دي.

ننوتل

ډیری شرکتونه د لاګونو راټولولو، لیدلو او مرکزي کولو لپاره د ټیکنالوژیو ذخیره کاروي الیسټسیکټ + لوټسټش + کبانا، د ELK په توګه لنډیز شوی. زموږ په قضیه کې ، د مینځپانګې شاخص کولو ته اړتیا نشته او ما ډیر سپک وزن کارولی لوکی. دا د هیلم کڅوړې په توګه شتون لري، موږ دا زموږ د سیسټم سره سم د ننوتلو او pv لپاره ارزښتونو بدلولو سره د فرعي چارټ په توګه اضافه کړل.

values.yaml

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: kube-loki.example.domain/loki/api/v1/push

میټریکونه

میټریکونه د PostgreSQL په کارولو سره راټول شوي postgres_exporter لپاره Prometheus. د پورته فایل دوام ناڅاپي د لوبو کتاب

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"
...

د لا زیات وضاحت لپاره، موږ به د پای ټکي په کارولو سره د بهرنیو دولتي خدماتو نومونه ولیکو.

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 }}

د postgres_exporter ډیټا ترلاسه کولو لپاره د پرومیټیوس تنظیم کول په فرعي چارټ کې د ارزښتونو ایډیټ کولو سره ترسره کیږي.

values.yaml

scrape_configs:
...
  - job_name: postgres-exporter
    static_configs:
      - targets: 
         - postgres-exporter.applicationnamespace.svc.cluster.local:9187
        labels:
          alias: postgres
...

د ترلاسه شوي معلوماتو لیدو لپاره ، مناسب ډشبورډ په کې نصب کړئ
ګرافانا او د معلوماتو سرچینې تنظیم کړئ. دا د ګرافانا فرعي چارټ کې د ارزښتونو له لارې هم ترسره کیدی شي.

دا څه ډول ښکاري
د کوبرنیټس کلستر ته د بهرني خدماتو څارنه او ننوتل

زه امید لرم چې دې لنډې مقالې تاسو سره د دې حل ترشا اصلي نظرونو په پوهیدو کې مرسته کړې او ستاسو وخت یې خوندي کړی کله چې د کوبرنیټس کلستر کې د لوکي / پرومیتیس لپاره د بهرني خدماتو نظارت او ننوتل تنظیم کړئ.

سرچینه: www.habr.com

Add a comment