Sobes.tech
Junior

Фарқи байни хидмати headless ва дигар намудҳои хидматҳо чист?

sobes.tech AI

Ҷавоб аз AI

Хедлесс-сервисҳо 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: хидмати-бе-сар
spec:
  selector:
    app: барномаи-ман # Селектор барои подҳо
  clusterIP: None # Тафовут асосӣ - IP-и кластер нест
  ports:
    - protocol: TCP
      port: 80
      targetPort: 8080

Ба ҷои дастрасӣ ба хидмати-бе-сар тавассути 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-ҳоро интихоб кунад барои барқарор кардани пайвастӣ.