La socodka iyo galitaanka adeegyada dibadda ee kooxda Kubernetes

La socodka iyo galitaanka adeegyada dibadda ee kooxda Kubernetes

Nasiib wacan qof walba.

Maan helin hagaha guud ee internetka ee ku saabsan gaynta iyo ururinta cabbirada adeegyada dhinac saddexaad ee nidaamyada la geeyay Kubureteska. xalkeyga ayaan soo dhigayaa. Maqaalkani waxa uu u malaynayaa in aad hore u leedahay shaqo Prometheus iyo adeegyo kale. Tusaale ahaan isha xogta ee adeeg dawladeed oo dibadeed, DBMS ayaa la isticmaali doonaa PostgreSQL weel ku jira Docker. Shirkaddu waxay isticmaashaa maamulaha xirmada Helm, hoos qoraalka waxaa ku jiri doona tusaalooyin. Xalka oo dhan, waxaan diyaarineynaa jaantus noo gaar ah, kaas oo ay ku jiraan jaantusyada buulka ah ee dhammaan adeegyada la isticmaalo.

Goynta

Shirkado badan ayaa adeegsada tiro tignoolajiyada si ay u ururiyaan, u arkaan oo ay meel dhexe uga dhigaan diiwaanka Elasticsearch + Logstash + kiban, oo loo soo gaabiyo ELK. Xaaladeena, looma baahna in la tilmaamo waxa ku jira waxaanan isticmaalay mid ka khafiifsan Loki. Waxaa loo heli karaa sidii xirmo Helm ah, waxaan ku darnay jaantus-hoosaad annagoo beddelayna qiyamka soo gelista iyo pv si ay ugu habboonaato nidaamkayaga.

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

Si aad u dirto qoraallada tusaale ahaan Loki isticmaal Loki Docker Logging Dirawalka.

Waa inaad wax walba ku rakibto wax-ku-darkan Docker martigeliyayaasha kuwaas oo aad rabto in aad ka hesho logyada. Waxaa jira dhowr siyaabood oo loo sheego daemon sida loo isticmaalo suufka. Waxaan ku doortay darawalka yaml Qodobbada, oo ah qayb Caqli ahaan buug-ciyaareed

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

halka loki_url: kube-loki.example.domain/loki/api/v1/push

Metrics

Metrics waxaa laga soo ururiyaa PostgreSQL iyadoo la isticmaalayo postgres_dhoofin si ay u Prometheus. Sii wadida faylka kore Caqli ahaan buug-ciyaareed

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

Si loo caddeeyo, waxaanu qori doonaa magacyada adeegyada dawlad-goboleedka dibadda ah anagoo adeegsanayna Endpoints.

postgres-adeeg.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 }}

Habaynta Prometheus si ay u hesho xogta postgres_exporter waxaa lagu sameeyaa iyadoo la tafatiraayo qiyamka shaxda hoose.

qiyamka.yaml

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

Si loo sawiro xogta la helay, ku rakib Dashboard-ka ku habboon gudaha
Grafana iyo habeeyaan ilaha xogta. Tan waxa kale oo lagu samayn karaa iyada oo loo marayo qiyamka Grafana.

Maxay u egtahay
La socodka iyo galitaanka adeegyada dibadda ee kooxda Kubernetes

Waxaan rajeynayaa in maqaalkan gaaban uu kaa caawiyo inaad fahamto fikradaha ugu muhiimsan ee ka dambeeya xalkan oo ay kuu badbaadisay wakhti markaad dejinayso kormeerka iyo gelitaanka adeegyada dibadda ee Loki/Prometheus ee kutlada Kubernetes.

Source: www.habr.com

Add a comment