Bosh sahifa Wiki Ingress

Ingress

Ingress — Kubernetes’da cluster tashqarisidan ichki HTTP va HTTPS xizmatlariga kirish qoidalarini ifodalovchi API obyekti. U host nomi va URL path asosida trafikni turli Service’larga yo‘naltirishi, TLS termination va virtual hostingni sozlashi mumkin. Ingress obyektining o‘zi trafik qayta ishlamaydi; clusterda uni amalga oshiruvchi Ingress controller bo‘lishi kerak.

Obyekt va controller

Foydalanuvchi Ingress manifestida desired routing qoidalarini yozadi. Controller API’ni kuzatib, NGINX, HAProxy, Envoy, cloud load balancer yoki boshqa data plane konfiguratsiyasini yangilaydi. Controller bo‘lmasa manifest qabul qilinadi, ammo tashqi endpoint ishlamaydi.

IngressClass qaysi controller obyektni boshqarishini belgilaydi. Bir clusterda ichki va tashqi controller yoki turli jamoaga tegishli classlar bo‘lishi mumkin. Default class noaniq bo‘lsa obyekt boshqaruvchisiz qolishi yoki noto‘g‘ri joyda ochilishi mumkin.

Host va path routing

Quyidagi qoida api.example.uz/v1 trafikini api-servicega yuboradi:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: public-api
spec:
  rules:
    - host: api.example.uz
      http:
        paths:
          - path: /v1
            pathType: Prefix
            backend:
              service:
                name: api-service
                port:
                  number: 80

Exact path faqat aynan mos yo‘lni, Prefix esa segment chegaralari asosidagi prefiksni qamraydi. Controllerga xos regex annotation portable bo‘lmasligi va security tekshiruvini murakkablashtirishi mumkin.

TLS

Ingress TLS secret’da sertifikat va private key’ga murojaat qiladi. Controller client bilan TLS handshake’ni tugatib, backend’ga HTTP yoki qayta TLS orqali ulanadi. TLS termination bo‘lsa backend source connection controllerdan keladi; original client ma’lumoti ishonchli proxy header orqali uzatilishi mumkin.

Sertifikat issuance va renewal cert-manager kabi controller bilan avtomatlashtiriladi. Secretga kirish cheklanadi, wildcard sertifikatning blast radius’i hisobga olinadi. Frontend TLS mavjudligi backend aloqa ham shifrlanganini anglatmaydi.

Tashqi trafik yo‘li

Qatlam Vazifa
DNS Host nomini tashqi IP’ga bog‘laydi
Load balancer Trafikni controller replica’lariga yetkazadi
Ingress controller TLS va L7 routingni bajaradi
Service Tayyor pod endpointlarini tanlaydi
Pod Application requestini qayta ishlaydi

Muammo yuz bersa bu qatlamlar alohida tekshiriladi. DNS to‘g‘ri bo‘lsa ham load balancer health check xato, controller qoidasi noto‘g‘ri yoki Service endpointsiz bo‘lishi mumkin.

Xavfsizlik siyosati

Ingress internet chegarasi bo‘lgani uchun request hajmi, timeout, header, rate limit va WAF siyosati muhim. Annotation orqali arbitrary snippet qo‘shishga ruxsat berish ko‘p tenantli clusterda controller konfiguratsiyasiga xavf tug‘dirishi mumkin. Admission policy ruxsat etilgan host, class va annotationlarni cheklaydi.

Authentication controllerda, alohida gateway’da yoki applicationda bajarilishi mumkin. Qatlamlar bir-biriga zid policy qo‘llamasligi va auth bypass qiladigan ikkinchi endpoint qolmasligi kerak. Internal Service tasodifan LoadBalancer bilan tashqi ochilsa Ingress himoyasi chetlab o‘tiladi.

Ishonchlilik va ishlash

Controller bir nechta replica bilan turli node yoki zonaga tarqatiladi. External load balancer readiness orqali faqat sog‘lom replica’ga yuboradi. Config reload yangi connectionlarni uzmasligi va eski connectionlarni graceful tugatishi kerak.

Connection pooling backend handshake xarajatini kamaytiradi. Timeout juda qisqa bo‘lsa qonuniy uzoq request uziladi, juda uzun bo‘lsa sekin client resursni band qiladi. Access log, request ID, status, upstream latency va retry soni diagnostika uchun yig‘iladi; token va maxfiy header logdan chiqariladi.

Ingress API chegarasi

Klassik Ingress asosan HTTP(S)ning umumiy routing modelini beradi. TCP/UDP, traffic splitting, murakkab header policy va ko‘p jamoali role modeli ko‘pincha controllerga xos extension talab qiladi. Kubernetes Gateway API bu ehtiyojlarni yanada ifodali va rollarga ajratilgan resurslar bilan qamrashga yo‘naltirilgan.

Bog‘liq tushunchalar

Kubernetes, Ingress controller, Service, Load balancer, TLS termination, Reverse proxy, Gateway API