GH GambleHub

Хадамоти Mesh: Истио, Линкерд

Хадамоти Mesh: Истио, Линкерд

1) Service Mesh чист ва кай лозим аст

Service Mesh як қабати ҳавопаймои шабакавӣ/назоратӣ мебошад, ки M-TLS-и ниҳоӣ, масир, таҳаммулпазирии хато ва мушоҳидаҳоро дар байни хидматҳо бидуни навиштани код таъмин мекунад.

Вазифаҳо:
  • Амнияти пешфарз (сифр-эътимод, мушаххасоти хидмат, сиёсати дастрасӣ).
  • Идоракунии ҳаракат (Canary/Blue-Green, A/B, соя).
  • Эътимоднокӣ (ретрас, танаффус, шикастани ноҳиявӣ).
  • Мушоҳида (ченакҳо, гузоришҳо, роҳҳо).
  • Стандартизатсияи амалиётӣ (сиёсатҳо ҳамчун код, GIT-ҳо).
Кай бояд фикрию:
  • Бисёре аз microservices бо бисёрзабонӣ ва талаботи MTLS.
  • Сенарияҳои пешрафтаи масир/таҷриба бидуни тағир додани барнома ниёз доранд.
  • Дар сатҳи шабака талаботҳои аудит/сиёсат мавҷуданд.

2) Истио vs Линкерд - муқоисаи кӯтоҳ

ҶанбаИстиоЛинкерд
ПроксиФиристанда (L7)занг-прокси (L7 dlya http/grpc) + минималист
НасбкунӣИстио Оператор/чарх'linkerd насб '/чарх
БехатарӣМТЛС, Авторизатсияи сиёсат, Аутентификатсия, WASM-фильтрыMTLS пешфарз, сиёсатҳои оддӣ ('сиёсат', 'сервер', 'serverauthorization')
Трафик-менеҷментВиртуалии Хидматрасонӣ, DestinAtion Rule, Gateway, Envoy- FilterХадамоти Профил, Траффик Сплит (SMI), такрорӣ/танаффус
МушоҳидакорӣPrometheus, Telemetry API, гузоришҳои дастрасӣ ба фиристодагон, Open'linkerd viz' (ламс/кунҷҳо/хатсайрҳо), Прометей, ҳамгироии OTEL
MulticlusterМиллатҳои бисёр кластер, дарвозаи шарқу ғарб'linkerd multicluster' (дарвозаҳо + оинаи хидматрасонӣ)
Модели ҷойгиркунӣSidecar i Ambient Mesh (ztunnel + waypoint)Сидекар
МураккабӣАз ҷиҳати функсионалӣ бой, душвортарСоддатар, минималистӣ, сарбории камтар
ВасеъшавӣWASM/Фиристодаи Филтр, муаллифони берунаМаҳдудтар, вале пешгӯишаванда

3) Моделҳои меъморӣ ва густариш

3. 1 Фикрию Sidecar (классикӣ)

Ҳар як Pod sidecar прокси мегирад.
Тарафдор: камолот, назорати пурраи L7.
Омӯз: сарбории CPU/RAM, мураккабии фарсудашавӣ/debugging.

3. 2 Истио Амбиент Mesh

ztunnel (L4) дар гиреҳ + proxies waypoint (L7) мувофиқи талабот.
Тарафдор: арзиши камтар ва мураккабӣ, тадриҷан дохил кардани L7.
Омӯз: Навтар, на ҳама парвандаҳои L7 бидуни нуқта дастрасанд.

4) Ҳувият ва MTLS (ба сифр эътимод)

4. 1 SPIFFE/SPIRE ва шаҳодатномаҳо

Ба ҳар як машқ ID SPIFFE дода мешавад: 'spiffe ://claster. маҳаллӣ/ns/NS/sa/SA '.
Аутентификатсия: TLS мутақобила байни хидматҳо.
Гардиши калидҳо - ба таври худкор (TTL кӯтоҳ).

4. 2 Истио (Аутентификатсия + Маҳалли таъинот)

yaml apiVersion: security. istio. io/v1 kind: PeerAuthentication metadata: { name: default, namespace: payments }
spec:
mtls: { mode: STRICT }
apiVersion: networking. istio. io/v1 kind: DestinationRule metadata: { name: payments-dr, namespace: payments }
spec:
host: payments. svc. cluster. local trafficPolicy:
tls: { mode: ISTIO_MUTUAL }

4. 3 Linkerd - Бо нобаёнӣ MTLS

Баъд аз насби 'linkerd' + 'inkerd inject' фаъол аст.
Кластерҳо - эътимод-лангари худ, гардиши автоматӣ.

5) Идоракунии ҳаракат

5. 1 Истио: Хадамоти виртуалӣ (хатсайрҳо, канарейкаҳо)

yaml apiVersion: networking. istio. io/v1 kind: VirtualService metadata: { name: payments }
spec:
hosts: ["payments"]
http:
- route:
- destination: { host: payments, subset: v1 } # stable weight: 90
- destination: { host: payments, subset: v2 } # canary weight: 10 retries: { attempts: 2, perTryTimeout: 300ms }
timeout: 2s
Макони таъинот (LB/CB):
yaml apiVersion: networking. istio. io/v1 kind: DestinationRule metadata: { name: payments }
spec:
host: payments subsets:
- name: v1 labels: { version: v1 }
- name: v2 labels: { version: v2 }
trafficPolicy:
loadBalancer: { simple: LEAST_CONN }
outlierDetection:
consecutive5xx: 5 interval: 5s baseEjectionTime: 30s maxEjectionPercent: 50

5. 2 Linkerd: Профили хидматрасонӣ + Traffic

yaml apiVersion: linkerd. io/v1alpha2 kind: ServiceProfile metadata:
name: payments. default. svc. cluster. local spec:
routes:
- name: POST /withdraw condition:
method: POST pathRegex: "/withdraw"
isRetryable: true timeout: 2s apiVersion: split. smi-spec. io/v1alpha2 kind: TrafficSplit metadata: { name: payments }
spec:
service: payments backends:
- service: payments-v1 weight: 90
- service: payments-v2 weight: 10

6) Дарвозаҳои Ingress/Egress ва API

Istio Gateway (ingress/egress) - трафики воридшаванда/баромадро назорат мекунад, қатъи TLS, гузаргоҳи M TLS.
Linkerd бо контроллерҳои мавҷудаи воридшавӣ кор мекунад (NGINX/Contour/Traefik); egress - тавассути шабакаҳо/шабакаҳо.
Сиёсати Egress: сафедпӯстони домейн, сиёсати SNI, манъи мустақими интернет.

7) Авторизатсия ва сиёсат

7. 1 Авторизатсияи Истио (RBAC/ABAC)

yaml apiVersion: security. istio. io/v1 kind: AuthorizationPolicy metadata: { name: allow-withdraw, namespace: payments }
spec:
selector: { matchLabels: { app: payments } }
action: ALLOW rules:
- from:
- source:
principals: ["spiffe://cluster. local/ns/api/sa/gateway"]
to:
- operation:
methods: ["POST"]
paths: ["/withdraw"]
when:
- key: request. auth. claims[role]
values: ["cashout"]

7. 2 Сиёсати Linkerd (сервер + serverauthorization)

yaml apiVersion: policy. linkerd. io/v1beta3 kind: Server metadata: { name: payments-server, namespace: payments }
spec:
podSelector: { matchLabels: { app: payments } }
port: 8080 apiVersion: policy. linkerd. io/v1beta3 kind: ServerAuthorization metadata: { name: allow-gateway, namespace: payments }
spec:
server: { name: payments-server }
client:
meshTLS:
identities: [".ns. api. serviceaccount. identity. linkerd. cluster. local"]

8) Мушоҳида ва телеметрия

8. 1 Ченак

Istio Telemetry API → Prometheus: 'istio _ quests _ total', 'istio _ request _ dertation _ milliseconds _ bucket', 'istio _ tcp _ geted _ bytes _ total'.
Linkerd viz: 'дархост _ total', таъхири p50/p95/p99, 'муваффақият _ дараҷа'.

8. 2 Роҳҳо ва гузоришҳо

Контексти пайгирии W3C-ро пахш кунед.
Истио/Фиристанда → OTLP v Коллектори Open Telemetry; Linkerd - тавассути регистрҳои sidecar/барнома SDK.

8. 3 Мисолҳо

Илова кардани trace _ id ба гистограммаҳои давомдор барои ҷаҳидан ба пайгирӣ.

9) Меъёри меъёрҳо, WAF, филтрҳои фармоишӣ

Истио: Envoy ​ ​ Filter/WASM барои маҳдудиятҳои сатҳи маҳаллӣ, хадамоти маҳдудияти eksternal (Redis) ва инчунин мантиқи WAF (Lua/WASM).
Linkerd: дастгирии маҳдуди маҳаллӣ; меъёри меъёр - дар сатҳи воридшавӣ/дарвоза.

10) Кластери бисёр

Истио: дарвозаи шарқу ғарб, муштараки PKI ё бастаи эътимод, кашфи хидмат тавассути Service

Linkerd: 'пайванди бисёрҷанбаи пайвандак', дарвоза барои як кластер, контроллери хидматрасонӣ.

Ҳолатҳои истифода: минтақаҳои дороиҳо, маҳаллисозии ҳаракат, эътимоднокии сифр.

11) Иҷро ва арзиши

Торҳои Sidecar: CPU/RAM аз як Pod, таъхири зиёд (одатан + 1-3 мс дар як хоп дар ҳолати устувор).
Муҳити атроф (Истио): истеъмоли камтар барои L4, L7 нуқтаи фурӯзон аст.
Linkerd: Прокси сабук одатан сарбории камтар дорад, аммо қобилияти шадидтари L7.
Амал: пеш аз/баъд аз p95/CPU чен кунед, дарвозаҳои SLO-ро барои таназзул нигоҳ доред.

12) Бехатарӣ

MTLS дар ҳама ҷо, TTL кӯтоҳ, гардиши худкор.
Сиёсат ҳамчун Кодекс (OPA/Gatekeeper, Kyverno) барои 'иҷозат додан: LANST' prohibitions.
Асрҳо - тавассути CSI/Vault, на дар манифест.
Назорати Egress: рад бо нобаёнӣ, рӯйхати иҷозатномаҳои возеҳ.
Соҳаҳои алоҳидаи эътимод барои муҳит (prod/stage).

13) Ҳамгироӣ бо релизҳо ва дарвозаҳои SLO

Канария/Кабуд-Грин тавассути хатсайрҳои фикрию амалӣ карда мешаванд (ба мисолҳо нигаред).
Таҳлили ченакҳо (Prometheus/SpAN Metrics) дар Argo Rollouts Analysis - Hitchhicking/Rollback at burn-rate/p95/5xx.
Эзоҳҳои релизҳо дар Графана: муқоиса 'версия = устувор' канарӣ '.

14) Анти-намунаҳо

Дохил кардани фикрию "дар ҳама ҷо ва якбора" → зарбаи инфрасохторӣ.
Кардинализатсияи ченакҳо/гузоришҳоро аз прокси → аз ҳад зиёд бор кардани анбори TSDB/log сарфи назар кунед.
MTLS-ро дар ҳолати PERMISSIVE/ношаффоф то абад гузоред.

Кӯшиш кунед, ки ба ҷои дарвоза/барнома мантиқи мураккаби WAF/business -ро дар дохили Envoy

Ягон сиёсати egress - ихроҷи интернет/гузариши мувофиқат.
Проксиҳо бо ': 15000' debug барои берун кушода.

15) Рӯйхати назорати амалисозӣ (0-60 рӯз)

0-15 рӯз

Интихоби модел: Sidecar vs Ambient (Istio )/Linkerd аз рӯи профили сарборӣ.
Даргиронидани MTLS STRICT, сиёсати асосии авторизатсия барои 1-2 хидматҳои муҳим.
Хатсайрҳои асосӣ (вақт/такрорӣ), панелҳои RED/SLO.

16-30 рӯз

Canary/Traffical .Split, муайянкунии берунӣ/шикастани гардиш дар роҳҳои гарм.
Интегратсияи OTEL: роҳҳо + Намунаҳо; ҳушдори сӯхтан.
Egress-дарвозаҳо ва сафедпӯстони домейн; инкор бо нобаёнӣ.

31-60 рӯз

Пайвасти бисёр кластерӣ (агар лозим бошад), федератсия эътимод дорад.
Сиёсат ҳамчун Кодекс на Авторизатсия/Сиёсат/Сервер Авторизатсия.
Рӯзи бозӣ: моделиронии ҳодиса ва хатсайр/сиёсат.

16) Нишондиҳандаҳои камолот

фарогирии MTLS (STRICT/auto-rotate) 95% хидматҳоро фаро мегирад.
Ҳиссаи трафик тавассути релизҳои канарӣ/прогрессивӣ ≥ 80%.
Маблағи миёнаи ҳавопаймо p95 <+ 5% (пас аз оптимизатсия).

0 egress кушода бидуни иҷозат, 100% хидматҳо бо Auth

RCA "аз ҷадвал то пайгирӣ" ≤ 2 дақиқа (саҳ. 50).

17) Намунаҳои "сиёсат ҳамчун рамз"

Дарвозабон (манъи PERMISSIVE дар мамнӯъ)

yaml apiVersion: constraints. gatekeeper. sh/v1beta1 kind: K8sIstiomTLSStrict metadata: { name: deny-permissive-prod }
spec:
match:
kinds: [{ apiGroups: ["security. istio. io"], kinds: ["PeerAuthentication"] }]
namespaces: ["prod-"]
parameters:
allowedModes: ["STRICT"]

Kyverno (нишонаҳои зарурӣ барои VS/DR)

yaml apiVersion: kyverno. io/v1 kind: ClusterPolicy metadata: { name: require-mesh-labels }
spec:
rules:
- name: vs-dr-labels match:
any:
- resources:
kinds: ["VirtualService","DestinationRule"]
validate:
message: "owner and service labels required"
pattern:
metadata:
labels:
owner: "?"
service: "?"

18) Маслиҳатҳои амалиётӣ

Сиёсатҳои версия ва хатсайрҳо (семвер), таблиғ тавассути GIT.
Назорати прокси: панелҳои инфиродӣ "пур кардани прокси" (CPU/heap, retries, 429/503).
Буҷаи кардиналӣ: тамғакоғазҳо 'маршрут', 'рамз', 'таъинот' - танҳо қолаб.

Маҳдудиятҳои шабака/квотаҳои фазои номӣ (Network

Ҳуҷҷатҳои фармондеҳӣ: дафтарчаи "чӣ гуна хатсайрҳо/сиёсат/калидҳоро бозмедорад".

19) Хулоса

Истио ва Линкерд як чизро иҷро мекунанд - бехатарӣ, эътимоднокӣ ва намоёни алоқаи байнисоҳавӣ - аммо инро дар умқи гуногун ва арзиши моликият иҷро кунед.

Ба шумо қобилиятҳои бойи L7 ва сиёсатҳои тағйирпазир лозиманд - Истио гиред (барои кам кардани сарборӣ Ambientро баррасӣ кунед).
Содда ва сарбории хурд лозим аст - гирифтани Linkerd.

Кадом фикреро, ки шумо интихоб мекунед: MTLS-ро бо нобаёнӣ фаъол созед, масирро ҳамчун рамз идора кунед, ченакҳоро бо сурудҳо, egress наздик кунед ва дарвозаҳои SLO-ро ба релизҳо илова кунед. Он гоҳ қабати шабака "қуттии сиёҳ" -ро қатъ мекунад ва ба воситаи пешгӯишаванда барои устуворӣ ва суръати тағирот табдил меёбад.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.