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