Хадамоти кашфи и DNS
Кашфи хидмати и DNS
1) Чаро ба шумо лозим аст
Дар системаҳои тақсимшуда гиреҳҳо пайдо мешаванд ва нопадид мешаванд ва муштариён бояд намунаҳои кории хидматро зуд ва боэътимод пайдо кунанд. DNS - қабати универсалии ном; кашфи хидмат - стратегияи мувофиқ кардани номи хидмат бо нуқтаҳои воқеӣ, бо назардошти сиёсати саломатӣ, вазн ва масир.
Ҳадафҳои асосӣ:- номҳои устувор ба ҷои суроғаҳои эфемерӣ,
- навсозии дақиқ, вале на ғавғо (тавозун байни тару тоза ва TTL),
- таназзул бе тирамоҳи пурра (нокомӣ/санҷиши саломатӣ),
- ҳадди аққали "фарзия" дар муштарӣ: танаффус, бозхонд, сиёсати кэш.
2) Моделҳои кашфи хидмат
2. 1 Мизоҷ-тараф
Худи муштарӣ ин номро ба маҷмӯи нуқтаҳои ниҳоӣ ва тавозун (мудаввар робин, EWMA, ҳаш аз рӯи калид) ҳал мекунад. Сарчашма - DNS (A/AAAA/SRV), феҳристи хизматрасонӣ (Консул/Эврика), рӯйхати статикӣ.
Тарафдор: камтар SPOF-ҳои марказӣ, алгоритмҳои фасеҳ.
Омӯз: гуногунрангии муштариён, нав кардани мантиқ мушкилтар аст.
2. 2 Сервер (тарафи сервер)
Мизоҷ ба пеши/LB (L4/L7 дарвоза/воридшавӣ) меравад. Мувозинат ва санҷиши саломатӣ - дар тарафи прокси/тавозун.
Тарафдор: ҷои ягонаи сиёсат, мушоҳида.
Омӯз: Периметри хеле дастрас лозим аст (N + 1, multi-AZ).
2. 3 Гибрид
DNS маҷмӯи нуқтаҳои воридшавиро (LB-ҳои минтақавӣ) медиҳад, баъд мувозинатро L7/mesh мекунад.
3) DNS: асосҳо, сабтҳо ва TTL
3. 1 Намудҳои асосӣ
A/AAAA - суроғаҳои IPv4/IPv6.
CNAME - тахаллус ба номи дигар (на ба боло).
SRV - '_ хидмат. _ прото. ном '→ мизбон/порт/вазн/афзалият (барои g: RPC/LDAP/SIP ва ғайра).
TXT/HTTP/HTTPS - метамаълумот/нишондиҳандаҳо (аз ҷумла барои HTTP-кашф).
NS/SOA - ҳайат ва сифатҳои минтақа.
3. 2 TTL ва кэш
Кэш аз инҳо дастрас аст: ҳалли OS, ҳалли маҳалли маҳал, гиреҳҳо (NodE Local DNS/Core-DNS), провайдер, рекурсерҳои фосилавӣ ва муштарии китобхона. Тозагии воқеӣ = min (TTL, сиёсати муштарӣ). Кэши манфӣ (NXDOMAIN) инчунин тавассути 'SOA нигоҳ дошта мешавад. MINIME '/' TTL '.
Тавсияҳо:- Prod - TTL 30-120s барои сабтҳои динамикӣ, 300-600s барои устувор.
- Барои коммутаторҳо (feilover) TTL-и пастшударо пешакӣ омода кунед, на "ҳангоми оташ".
- Кэши часпандаи китобхонаҳоро баррасӣ кунед (Java/Go/Node) - агар лозим бошад, TTL-и ҳалкунандаро дар вақти корӣ танзим кунед.
4) Сиёсати мувозинати DNS ва таҳаммулпазирии гуноҳ
Вазни RR - вазнҳо дар A/AAAA/SRV.
Нокомӣ - маҷмӯаҳои ибтидоӣ/миёна (санҷиши саломатӣ дар берун).
Geo/Latency - вокуниш ба "наздиктарин" POP/минтақа.
Anycast - як IP дар POP-и гуногун (BGP); тобовар ба халалдоршавии минтақавӣ.
Split-horizon - ҷавобҳои гуногун дар дохили VPC/on-prem ва Интернет.
GSLB як тавозуни глобалӣ бо санҷишҳо ва сиёсатҳо (ниҳонӣ, гео, қобилият) мебошад.
5) Санҷиши саломатӣ ва тару тоза
Худи DNS "гунг" аст: саломатии ақибмондаҳоро намедонад. Аз ин рӯ:- Ё як муоинаи берунаи тиббӣ сабтҳо/вазнҳоро идора мекунад (GSLB, Route53/Traffic-policy, беруна-dns + намунаҳо).
- Ё муштарии mesh/mesh як outlier-ejection фаъол месозад ва аз бисёр нуқтаҳои ниҳоӣ такрор мекунад.
6) Кубернетес: кашф аз қуттӣ
Номҳои хидмат: 'svc. фазои ном. svc. кластер. маҳаллӣ '.
Кластери IP: IP виртуалии устувор + kube-proxy/ebpf.
Хадамоти Headless ('кластери IP: Ҳеҷ'): A-сабтҳоро ба pods (ё subdomains онҳо), SRV барои бандарҳо медиҳад.
Нуқтаи ниҳоӣ: рӯйхати миқёси нуқтаҳои ниҳоӣ (ивазкунандаи нуқтаҳои ниҳоӣ).
Core-DNS: ҳалли кластери DNS; плагинҳо аз нав менависанд/қолаб/пеш/кэш; минтақаи 'kube-dns'.
DNSC Node Local DNSC bache: кэши маҳаллӣ дар гиреҳ → таъхири камтар ва дахолати мушкилоти ҳалли болооб.
Мисол: Headless + SRV
yaml apiVersion: v1 kind: Service metadata: { name: payments, namespace: prod }
spec:
clusterIP: None selector: { app: payments }
ports:
- name: grpc port: 50051 targetPort: 50051
Мизоҷ метавонад '_ grpc. _ tcp. пардохтҳо. прод. svc. кластер. маҳаллӣ '(SRV) ва гирифтани мизбон/порт/вазн.
Қисми DNS (порчаи харита)
yaml apiVersion: v1 kind: ConfigMap metadata: { name: coredns, namespace: kube-system }
data:
Corefile:
.:53 {
errors health ready cache 30 loop forward. /etc/resolv. conf prometheus:9153 reload
}
DNS-и маҳаллӣ (ғояҳо):
- Демон Сет бо ҳалкунандаи маҳаллӣ дар '169. 254. 20. 10`; кубелет ин нуктаро муайян мекунад.
- P99 ҳалли номро коҳиш медиҳад ва аз пардаи болоии DNS муҳофизат мекунад.
7) Кашфи хидмат вне K8s
Консул: агент, санҷиши саломатӣ, феҳристи хидматҳо, интерфейси DNS ('.consul'), КВ барои конфигуратсияҳо.
Эврика/Зоопарк/etcd: сабти ном барои JVM/мерос; аксар вақт дар якҷоягӣ бо sidecar/дарвоза.
Фиристанда/Истио: EDS/x-DS (Endpoint Discovery) ва SDS (асрҳо); хидматҳо тавассути ҳавопаймои назоратӣ эълон карда мешаванд.
8) Амнияти DNS
DNSSEC: тамомияти сабтро ҳифз кунед (имзои минтақа). Муҳим барои доменҳои ҷамъиятӣ.
Иҷро кардан/Иҷро кардан: канал ба рамзгузории рекурсия (сиёсати дохилӣ, мутобиқат).
ACL ва тақсимшавӣ: минтақаи хусусӣ - танҳо аз VPC/VPN.
Муҳофизат аз заҳролудшавӣ аз кэш: тасодуфии порт/ID, TTL-ҳои кӯтоҳ барои динамика.
Сиёсатҳо оид ба egress: DNS-ро танҳо дар ҳалкунандаҳои боэътимод иҷозат диҳед, сабт кунед.
9) Рафтори муштариён ва ақибнишинӣ
Эҳтиром TTL: бепоён нигоҳ надоред, бо қарорҳои зуд-зуд "ғайриқонунӣ" накунед (тӯфон ба рекурсивӣ).
Eyeballs хушбахт (IP .v4/IP * v6), пайвастҳои мувозӣ ба якчанд A/AAAA думро кам мекунанд.
Танҳо барои дархостҳои idempotent; jitter, маҳдудияти бозпардохти буҷа.
- Java: 'шабакасозӣ. кэш. tl ',' либоси шабакавӣ. кэш. манфӣ. тл '.
- Бирав: 'GODEBUG = netdns = go '/' cgo', 'Resolver. Афзалияти Go ',' Dialtimeout '.
- Гиреҳ: 'dns. Тартиби пешфарз ('ipv4first') ',' ҷустуҷӯ 's' all: true '.
10) Гузариши GSLB/DNS: амалия
TTL-ро аз 300 → 60 24-48 соат пеш аз гузариш ба нақша гиред.
Маҷмӯи канарейкаи нуқтаҳои вазни камро барои санҷиш нигоҳ доред.
Ба ҷои навсозии дастии A-records, вазни + санҷиши саломатиро истифода баред.
Барои статика/канор - Anycast; барои API - Geo/Latency + L7-feiler зуд.
11) Мушоҳида ва SLO барои ном
Нишондиҳандаҳо:- Сатҳи/таъхири дархостҳои DNS, таносуби хит кэш, хатогиҳо аз рӯи намуд (SERVFAIL/NXDOMAIN).
- Фоизи дархостҳо бо посухҳои кӯҳна (агар истифодаи кэши кӯҳна).
- Муваффақияти амалиёти корбар дар тағироти сабт (бизнес SLI).
- p95/p99 ҳалли вақт дар барномаҳо.
- Роҳро стратификатсия кунед: муштарӣ → кэши маҳаллӣ → кэши нодал → ҳалли кластер → рекурсияи провайдер.
- Пайгирии NXDOMAIN (Хатогиҳои ном/Typo) ва SERVFAIL (Масъалаҳои рекурсия/Маҳдудиятҳои захираҳо).
12) Намунаҳои конфигуратсия
Core-DNS: аз нав сабт кардан ва минтақаи stub
yaml
.:53 {
log errors cache 60 rewrite name suffix. svc. cluster. local. svc. cluster. local forward. 10. 0. 0. 2 10. 0. 0. 3
}
example. internal:53 {
file /zones/example. internal. signed dnssec
}
системаи ҳалшуда
ini
[Resolve]
DNS=169. 254. 20. 10
FallbackDNS=1. 1. 1. 1 8. 8. 8. 8
Domains=~cluster. local ~internal
DNSSEC=yes
Фиристанда: DNS-таровати динамикӣ
yaml dns_refresh_rate: 5s dns_failure_refresh_rate:
base_interval: 2s max_interval: 30s respect_dns_ttl: true
dns (дастгирии минтақаи ҷамъиятӣ)
yaml args:
- --source=service
- --source=ingress
- --domain-filter=example. com
- --policy=upsert-only
- --txt-owner-id=cluster-prod
13) Рӯйхати санҷиши амалисозӣ (0-30 рӯз)
0-7 рӯз
Феҳристи номи хидмат, интихоби модел (client-/server-side/гибрид).
Basic TTL, панели панели DNSC DNSC, DNS-ро фаъол созед.
Манъи "IP-и сахт" дар конфиг/код.
8-20 рӯз
Хидматҳои бефоида + SRV барои GRPC; Нуқтаи нуқта фаъол аст.
GSLB/вазн барои берунӣ; санҷишҳои тиббӣ ва канарӣ.
Вақт/бозпас гирифтани мизоҷон ва буҷети бозпас танзим карда мешавад.
21-30 рӯз
Тақсим-уфуқ ва минтақаҳои хусусӣ; Аз рӯи сиёсат До/ДО.
Гузаронидани санҷиш (аз ҷониби TTL) ва feilover; пас аз таҳлил.
Mesh/EDS, сиёсати берунӣ-ejection фаъол аст.
14) Анти-намунаҳо
TTL = 0 дар prod → тӯфон ба такрорӣ, таъхирҳои пешгӯинашаванда.
Рамзи IP/порт, барои сатҳҳо CNAME/тахаллус нест.
Тағир додани сабтҳо "дастӣ" бидуни муоинаи тиббӣ ва канарейкаҳо.
Як ҳалкунандаи глобалӣ бе кэши гиреҳ (зарфият).
Нодида гирифтани кэши манфӣ (хӯшаҳои NXDOMAIN).
Кӯшишҳо барои "шифо додан" -и нокомии пойгоҳи додаҳо тавассути DNS ба ҷои қабати додаҳо/feilover.
15) Нишондиҳандаҳои камолот
100% номҳо истифода мебаранд; сифр ҳолатҳои сахт-IP.
Core-DNS/NodE Local дар фурӯш, таносуби кэш> 90% дар гиреҳҳо.
GSLB бо санҷишҳои тиббӣ, тугмаҳои ҳуҷҷатгузории TTL ва runbook.
SRV/Endpoint Slice барои давлатӣ/GRPC, вақти ҳалли p99 дар барномаҳо ≤ 20-30 мс.
Огоҳиҳо барои таназзули хит-таносуби cache SERVFAIL/NXDOMAIN.
Санҷишҳо дар CI: манъ ': охирин' ва IP-и сахт дар диаграммаҳо/конфигуратсияҳо.
16) Хулоса
Кашфи хидмат як шартномаи устувор ва интизоми кэш мебошад. Сохтани модели гибридӣ: DNS воридшавии зуд ва осонро медиҳад, L7/mesh - сиёсати саломатӣ ва интеллектуалӣ. TTL интеллектуалӣ, кэши мизбон, хидматҳои бефосила ва SRV-ро дар ҷойҳои зарурӣ нигоҳ доред, GSLB/Anycast-ро барои сарҳадҳои минтақавӣ истифода баред, ба NXDOMAIN/SERVFAIL ва p99 ҳалли вақт нигоҳ кунед. Он гоҳ номи шумо ҳамчун дороии боэътимод ҳамчун худи хидмат хоҳад буд.