Sobes.tech
Junior

Headless кызмат менен башка кызмат түрлөрүнүн айырмасы эмнеде?

sobes.tech AI

AIден жооп

Headless кызматы кластердик IP дарегине ээ эмес жана жүктү теңдештирүүнү жүргүзбөйт. Ал эми, DNS түздөн-түз кызматтын селекторуна туура келген бардык поддардын IP даректерин кайтарат. Бул кардарга өзү кайсы подга туташуу керектигин тандоого же өзүнүн жүктү теңдештирүү алгоритмин колдонууга мүмкүндүк берет.

Көп колдонулган варианттар:

  • StatefulSets: Уникалдуу тармактык идентификация жана туруктуу маалымат сактоо талап кылган колдонмолор үчүн.
  • Discovery: Кардарлар түздөн-түз поддарды таба алат жана байланыштарды башкаруу мүмкүнчүлүгүнө ээ болот.
  • Өзүнчө жүктү теңдештирүү: Колдонмолор өзүнүн жүктү теңдештирүү алгоритмин ишке ашыра алат.

ClusterIP жана NodePort кызматтары менен салыштыруу:

Кызмат түрү Кластердик IP Жүктү теңдештирүү DNS
ClusterIP Ооба Kubernetes Кызмат IP-насилин кайтарат
NodePort Ооба Kubernetes Кызмат IP-насилин кайтарат
Headless Жок Жок (кардар) Поддордун IP-даректерин кайтарат

YAMLда headless кызматтын аныктамасы:

apiVersion: v1
kind: Service
metadata:
  name: менин-Headless-услуга
spec:
  selector:
    app: менин-аппликация # Поддор үчүн селектор
  clusterIP: None # Негизги айырмачылык - кластер IP жок
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

менин-Headless-услугага бир IP аркылуу кирүү ордуна, кардар поддордун IP-даректеринин тизмесин алат:

$ kubectl get pods -l app=менин-аппликация -o custom-columns=NAME:.metadata.name,IP:.status.podIP
NAME            IP
менин-аппликация-abcde    10.42.0.10
менин-аппликация-fghij    10.42.0.11
менин-аппликация-klmno    10.42.0.12

Андан соң, кардар бул IP-даректердин каалаганын тандап, байланыш түзө алат.