Logo GH

Хадамоти Mesh ва сиёсати ҳаракат

1) Чаро хидмати Mesh

Service Mesh як қабати инфрасохторӣ барои ҳаракати шарқу ғарб (алоқаи байнишаҳрӣ) мебошад, ки имкониятҳои ягонаро бидуни навиштани рамз таъмин мекунад:
  • Амнияти пешфарзӣ: mTLS, барориши худкор/гардиши сертификатҳо, мушаххасоти хидмат.
  • Сиёсати ҳаракат: масири L7, санҷишҳои канарӣ/AV, таназзул ва субот.
  • Мушоҳида: ченакҳо, гузоришҳо, пайҳо, сигналҳои тиллоӣ дар ҳар як занг.
  • Амалиётҳо: сиёсати ягона барои ҳама забонҳо/чаҳорчӯбаҳо.

Фарқият аз дарвозаи API: дарвоза - периметри шимол-ҷануб; фикрию - шарқу ғарб дар доираи кластер/созмон. Аксар вақт якҷоя кор мекунанд.

2) Меъморӣ: Тайёраҳо ва намунаҳо

Ҳавопаймои маълумот: прокси sidecar (Envoy/Linkerd-proxy/haproxy), ки трафики pod/VM-ро халалдор мекунад.
Ҳавопаймои назоратӣ: конфигуратсияҳоро тақсим мекунад (хатсайрҳо, сиёсатҳо, шаҳодатномаҳо), ҳолати анборҳо, дискҳои хидматиро нашр мекунад.
Шахсият: одатан ID SPIFFE ва шаҳодатномаҳои автоматии X.509 (SPIRE/дарунсохт CA).
Нуқтаҳои вуруд/баромад: воридшавӣ/egress-дарвоза барои назорат кардани ҷараёни сарҳад.
Усулҳои татбиқ: sidecar барои ҳар як зери; як гиреҳ/муҳити атроф дар амалисозии нав.

3) Сиёсати амният ва эътимод ба сифр

1. MTLS бо нобаёнӣ - рамзгузории servis↔servis ва аутентификатсияи тарафайн.

2. Аутн/Auth .Z:
  • Auth .N: танҳо ба шахсиятҳое, ки аз ҷониби CA mesh 'a (SPIFFE) дода шудаанд, эътимод кунед.
  • Authz: декларативии "кӣ метавонад ба кӣ ва чӣ гуна" қоидаҳо (RBAC/ABAC).
  • 3. Назорати изолятсия ва egress:

  • Доменҳо/зершабақаҳои иҷозатдодашуда; маҷбур тавассути egress-дарвоза.
  • Бастани натиҷаҳои мустақим аз оташдонҳо.
  • 4. Ротатсияи махфӣ: сертификатҳои кӯтоҳмуддат, таҷдиди худкори прокси.

Истио (мисол: қатъии глобалии MTLS):
yaml apiVersion: security. istio. io/v1beta1 kind: PeerAuthentication metadata: { name: default, namespace: istio-system }
spec:
mtls: { mode: STRICT }
Истио (мисол: танҳо ба инвентаризатсияи GRPC § биллинг иҷозат диҳед):
yaml apiVersion: security. istio. io/v1beta1 kind: AuthorizationPolicy metadata: { name: billing-allow, namespace: prod }
spec:
selector: { matchLabels: { app: billing } }
rules:
- from:
- source: { principals: ["spiffe://corp. local/ns/prod/sa/inventory"] }
to:
- operation: { ports: ["8080"], methods: ["POST"], paths: ["/proto. Billing/"] }

4) Сиёсати ҳаракат: истодагарӣ ва масир

4. 1 Вақт ва ақибнишинӣ

Вақтсанҷҳо: бояд дар занг таъин карда шаванд (пайваст/хонед/умуман).
Бозсозӣ: танҳо барои амалиёти idempotent; backoff + jitter; маҳдудиятҳои як вақти санҷиш.

Истио (Хадамоти виртуалӣ):
yaml apiVersion: networking. istio. io/v1beta1 kind: VirtualService metadata: { name: orders }
spec:
hosts: ["orders"]
http:
- route:
- destination: { host: orders, subset: v1, port: { number: 8080 } }
timeout: 5s retries:
attempts: 2 perTryTimeout: 2s retryOn: "5xx,connect-failure,reset"

4. 2 Circuit Breaker i ошкоркунии outlier

CB: дархостҳо/пайвастҳои ҳамзамон, муҳофизати болообро маҳдуд мекунад.
Outlier: ҳолатҳои "бад" -ро бо хатогӣ/ниҳонӣ мепартояд.

Истио (Таъиноти Рул):
yaml apiVersion: networking. istio. io/v1beta1 kind: DestinationRule metadata: { name: orders }
spec:
host: orders trafficPolicy:
connectionPool:
http: { http1MaxPendingRequests: 1024, maxRequestsPerConnection: 100 }
outlierDetection:
consecutive5xxErrors: 5 interval: 5s baseEjectionTime: 30s maxEjectionPercent: 50

4. 3 Канария ва аз рӯи шароит

Вазн - Трафик ба вазни v1/v2 тақсим карда мешавад.
Сарлавҳа: парчамҳо/кукиҳо/иҷорагир → ба версияи нав интиқол дода мешаванд.
Наздикии сессия: ҳаш аз рӯи калид (ба таври дақиқ миқёспазир).

yaml http:
- match: [{ headers: { "x-experiment": { exact: "new" } } }]
route: [{ destination: { host: orders, subset: v2 } }]
- route:
- destination: { host: orders, subset: v1, weight: 90 }
- destination: { host: orders, subset: v2, weight: 10 }

4. 4 Тазриқ ва таназзули хато

Таъхири/хатогӣ барои санҷиши устуворӣ ва SLO.

yaml fault:
delay: { fixedDelay: 300ms, percentage: { value: 10 } }
abort: { httpStatus: 503, percentage: { value: 1 } }

5) Ҳудуди шабака: воридшавӣ/egress ва хадамоти беруна

Ingress-дарвоза: ягона нуқтаи вуруд барои муштариёни хориҷӣ дар торҳо; ҳамгироӣ бо WAF/OIDC/ratelimits.
Egress-дарвоза: баромади марказӣ бо рӯйхати соҳибони иҷозатдодашуда, санҷиши TLS, сабти телеметрия.
Хидмати вуруд: SNI/мизбони берунаро ҳамчун як қисми фикрию эълон мекунад (сиёсатҳо ва пайдоиши MTLS татбиқ мешаванд).

yaml apiVersion: networking. istio. io/v1beta1 kind: ServiceEntry metadata: { name: payments-external }
spec:
hosts: ["api. payments. com"]
ports: [{ number: 443, name: https, protocol: TLS }]
resolution: DNS location: MESH_EXTERNAL

6) Бисёр кластер, бисёр шабака ва гибрид

Домени муштараки PKI/эътимод: шахсияти ягонаи SPIFFE байни кластерҳо.
Кашфи нуқтаи ниҳоӣ: тӯбҳои хидматрасонӣ дар байни минтақаҳо; афзалият ва нокомии маҳаллӣ.
Ҷудокунии минтақавӣ: сиёсатҳо, маҳдудиятҳо ва афзалиятҳои ҳар як минтақа.
VM дар фикрию: пайваст кардани системаҳои меросӣ/Давлатӣ ба шахсони боэътимод ва ҳамон сиёсатҳо.

7) Мушоҳида, SLO ва амалиёт

Метрикӣ: 'дархостҳо _ total', 'request _ durmation _ ms {p50, p95, p99}', '5xx _ rate', 'retry _ transitions', 'cb _ state', 'mTLS _ authoz _ рад карда шудааст'.
Гузоришҳои дастрасӣ: сохторӣ, бо 'traceparent', 'корбар/иҷорагир', 'response _ flags'.
Пайгирӣ: тазриқи худкори сарлавҳаҳо (W3C Trace Context), интихоб, дар сатҳи хоп мегузарад.
SLO: ҳадафҳо аз ҷониби p99/хатогиҳо дар масир (хизматрасонӣ → хидмат).
Ҳушдорҳо: хӯшае '5xx', 'барқароршавӣ', 'outlier _ ejections', таназзули MTLS (нокомии дастӣ).

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

Sidecar ҳисобномаҳо илова мекунад (CPU/RAM/ниҳонӣ). Оптимизатсия:
  • Ғалладонагӣ: дар ҷойҳои зарурӣ сиёсатро дар бар мегирад; дар ҳама ҷо филтрҳои вазнинро фурӯзон накунед.
  • Ҳавзҳо: роҳҳои тақсимшуда (интиқодӣ/пасзамина) ба хатсайрҳо ва маҳдудиятҳои гуногун.
  • Маълумот: p99 дар хатсайрҳои "хунук", ҳаҷми телеметрия (гузоришҳои меъёрӣ/роҳҳо).
  • Агар дастгирӣ ва мувофиқ бошад, режими муҳити атроф/беандоза баррасӣ кунед.

9) Бехатарӣ ва риояи

Дастрасии ҳадди ақали талабшаванда: Дастурҳо ва усулҳои возеҳро иҷозат диҳед.
Сиёсатҳо дар neimspaces/иҷорагирон: ҳудуди шабака/авторизатсия.
Гардиши калидӣ/AC: ба нақша гирифташуда ва фавқулодда; шаҳодатномаҳои кӯтоҳ TTL.
PII/асрҳо: ниқоб дар гузоришҳо/роҳҳо; рамзгузорӣ дар сим/ҳангоми истироҳат.
Аудит: кӣ, кай ва кадом сиёсат тағир ёфт; шӯришҳои думарҳилавӣ.

10) Ҳамгироӣ бо қабати K8s

Сиёсати фикрию мукаммал, иваз карда намешавад, Network-Policy.
Дар ingress/egress-gateway, шумо метавонед Podsecurity/PSA-ро дар сатҳи поён овезон кунед.
NRA/autoscaling: бозпас/CB-ро баррасӣ кунед - онҳо сарбориро иваз мекунанд.
Нақшаҳои барориш: Вазнҳои канарӣ тавассути Virtual-Service + таблиғи автоматии SLO.

11) Рӯйхати санҷиши амалисозӣ

  • Ҳудудҳои эътимоднок муайян ва STRICT M TLS фаъол мебошанд.
  • Сиёсати Authz имкон дод: ба кӣ, ки бандарҳо/усулҳо ба кӣ тааллуқ доранд.
  • Вақтсанҷӣ/такрорӣ ва муайянкунии берунӣ танзим карда мешаванд, роҳҳои idempotent муайян карда мешаванд.
  • Хатсайрҳои канарӣ ва нақшаи бозгашт ба қайд гирифта шудаанд; сӯзандору - танҳо дар ғайридавлатӣ.
  • Вобастагии беруна тавассути дарвозаи дарвоза ва Service-Entry ба даст оварда мешавад.
  • Ченакҳо, гузоришҳо, пайҳо танзим карда мешаванд; панели панелҳо ва огоҳиҳо дар бораи p99/5xx/CB.
  • Квотаҳо/маҳдудиятҳо барои ҳар як иҷорагир/фазои ном мавҷуданд.
  • Китобҳои омодашуда: ихроҷи шаҳодатномаҳо, нокомии ОМ, таназзули болооб, 503/RESET оммавӣ.
  • Нақшаи бисёр кластерӣ (PKI муштарак, афзалиятҳои маҳаллӣ, сенарияҳои DR).
  • Рӯзҳои санҷиш (рӯзҳои бозӣ): ҳавопаймои идоракуниро партоед, канорро боздоред, танаффуси шабака, заҳролудшавии болооб.

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

Mesh "дар ҳама ҷо ва якбора" бидуни инвентаризатсияи масир ва SLO → мураккабии гарон.
Роҳҳои пешфарз барои ҳамаи усулҳо → такрори эффект ва тармаҳои ҳаракат.
MTLS-и маъюб "муваққатан" → ба таври доимӣ боқӣ мемонад.
Egress бе дарвоза → ихроҷи маълумот/вобастагии ҳисобнашуда.
Як сиёсати ҷаҳонӣ барои ҳама хидматҳо → амнияти бардурӯғ ва мусбатҳои бардурӯғ.
Мушоҳидаи сифр: фикрию дохилшударо дар бар мегирад, аммо ченакҳо/пайраҳаҳоро ҷамъ накунед - маънои худро гум кунед.

13) Дорухатҳои зуд

Linkerd: mTLS ва сиёсатро аз сервер фаъол созед

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

Консул (L7 ният + тақсимкунанда)

hcl
Kind = "service-router"
Name = "orders"
Routes = [{
Match { HTTP { PathPrefix = "/v1" } }
Destination { Service = "orders" }
}]
Kind = "service-splitter"
Name = "orders"
Splits = [
{ Weight = 90, ServiceSubset = "v1" },
{ Weight = 10, ServiceSubset = "v2" }
]

14) FAQ

Оё фикрию ба дастаи хурд ниёз дорад?
Агар 3-5 хизматрасонӣ - бештар не. Аз китобхонаҳои хуб ва тобоварӣ оғоз кунед. Ҳангоми зарурат ба MTLS-пешфарз, сиёсати ягона ва пайгирӣ бидуни тағир додани код пайваст шавед.

Чӣ тавр хароҷотро назорат кардан мумкин аст?
Андозагирии сарборӣ (CPU/RAM/ниҳонӣ) дар роҳҳои интиқодӣ, филтрҳои нолозимро хомӯш кунед, ҳаҷми гузоришҳо/роҳҳоро кам кунед, режими бидуни паҳлӯ ба ҷои бехатар истифода баред.

Оё имкон дорад, ки ба торҳои торӣ ва ба таври дастӣ танзимшуда халал расонад?
Бале, аммо аз масири дукарата/такрори такрорӣ худдорӣ кунед. Ҷои ягона дуруст аст - ҳавопаймои назоратӣ.

Чӣ муҳимтар аст: амният ё иҷро?
Бо нобаёнӣ бехатарӣ аст (MTLS, AuthZ). Иҷро тавассути танзими ҳавзҳои пайвастшавӣ, муайянкунии берунӣ, хатсайрҳои мақсаднок ба даст оварда мешавад.

15) Натиҷаҳо

Service Mesh шабакаро байни хидматҳо ба қабати барномарезишуда бо сиёсати ягона табдил медиҳад: рамзгузорӣ ва шахсият, масири хуб ва устуворӣ, телеметрия ва квотаҳо. Бо роҳҳои танқидӣ оғоз кунед, STRICT mTLS-ро фаъол кунед ва AuthZ-и возеҳро таъин кунед, вақтҳо/ретрейҳо/CB-ро таъин кунед, egressро назорат кунед, p99 ва 5xx-ро чен кунед, рӯзҳои бозиро гузаронед. Он гоҳ фикрию тақвиятдиҳандаи эътимоднокӣ ва суръати релизҳо хоҳад буд, на манбаи ногаҳонӣ.

Contact

Тамос гиред

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

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

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

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

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