Kulawa da shigar da sabis na waje zuwa gungu na Kubernetes

Kulawa da shigar da sabis na waje zuwa gungu na Kubernetes

Fatan alheri ga kowa.

Ban sami cikakken jagora akan layi akan shiga da tattara ma'auni daga sabis na ɓangare na uku cikin tsarin da aka tura a ciki ba. Kubernetes. Ina posting mafitata. Wannan labarin yana ɗauka cewa kun riga kuna da aiki Prometheus da sauran ayyuka. A matsayin misali na tushen bayanai don sabis na zahiri na waje, za a yi amfani da DBMS PostgreSQL a cikin akwati Docker. Kamfanin yana amfani da mai sarrafa kunshin Hanya, a ƙasa a cikin rubutun za a sami misalai akansa. Don cikakken bayani, muna shirya namu ginshiƙi, wanda ya haɗa da ginshiƙai na duk ayyukan da aka yi amfani da su.

Shiga

Kamfanoni da yawa suna amfani da tarin fasahohi don tattarawa, duba da kuma daidaita rajistan ayyukan Elasticsearch + Logstash + kiban, an rage shi da ELK. A cikin yanayinmu, babu buƙatar yin lissafin abubuwan da ke ciki kuma na yi amfani da mafi nauyi Loki. Ana samun shi azaman kunshin Helm, mun ƙara shi azaman ƙaramin kwatancen ta hanyar canza ƙimar ingress da pv don dacewa da tsarin mu.

dabi'u.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"

Don aika rajistan ayyukan zuwa misali Loki amfani Direban Loki Docker.

Dole ne ku shigar da wannan add-on akan komai Docker runduna daga waɗanda kuke son karɓar rajistan ayyukan. Akwai hanyoyi da yawa don gaya wa daemon yadda ake amfani da padding. Na zabi direba a cikin yaml Docker Shirya, wanda bangare ne Mai yiwuwa littafin wasa.

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

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

Ma'auni

Ana tattara ma'auni daga PostgreSQL ta amfani da postgres_exporter to Prometheus. Ci gaba da fayil ɗin da ke sama Mai yiwuwa littafin wasa.

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

Don ƙarin haske, za mu rubuta sunayen sabis na jaha na waje ta amfani da 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 }}

Saita Prometheus don karɓar bayanan postgres_exporter ana yin ta ta hanyar gyara dabi'u a cikin ƙaramin jadawalin.

dabi'u.yaml

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

Don ganin bayanan da aka karɓa, shigar da Dashboard ɗin da ya dace a ciki
Grafana da kuma saita tushen bayanai. Hakanan za'a iya yin hakan ta hanyar ƙima a cikin ƙa'idar Grafana.

Me yayi kama
Kulawa da shigar da sabis na waje zuwa gungu na Kubernetes

Ina fatan wannan ɗan gajeren labarin ya taimaka muku fahimtar manyan ra'ayoyin da ke bayan wannan bayani kuma ya cece ku lokaci yayin kafa sa ido da shiga ayyukan waje don Loki/Prometheus a cikin gungu na Kubernetes.

source: www.habr.com

Add a comment