ื•ื•ื™ ืฆื• ืœื•ื™ืคืŸ Istio ื ื™ืฆืŸ Kubernetes ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข. ื˜ื™ื™ืœ 1

ื•ื•ืึธืก ืื™ื– ื™ืกื˜ื™ืึธ? ื“ืึธืก ืื™ื– ื“ื™ ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข ืกืขืจื•ื•ื™ืก ืžืขืฉ, ืึท ื˜ืขื›ื ืึธืœืึธื’ื™ืข ื•ื•ืึธืก ืžื•ืกื™ืฃ ืึท ืคึผืœืึทืกื˜ ืคื•ืŸ ืึทื‘ืกื˜ืจืึทืงืฆื™ืข ืื™ื‘ืขืจ ื“ื™ ื ืขืฅ. ืžื™ืจ ื™ื ื˜ืขืจืกืขืคึผื˜ ืึทืœืข ืึธื“ืขืจ ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืคืึทืจืงืขืจ ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ ืื•ืŸ ื“ื•ืจื›ืคื™ืจืŸ ืึท ื–ื™ื›ืขืจ ื’ืึทื ื’ ืคื•ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืžื™ื˜ ืื™ื. ื•ื•ืขืœื›ืข? ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืžื™ืจ ื˜ืึธืŸ ืกืžืึทืจื˜ ืจื•ื˜ื™ื ื’, ืึธื“ืขืจ ืžื™ืจ ื™ื ืกื˜ืจื•ืžืขื ื˜ ื“ื™ ืงืจื™ื™ึทื– ืฆื•ื™ืžืขืŸ ืฆื•ื’ืึทื ื’, ืžื™ืจ ืงืขื ืขืŸ ืึธืจื’ืึทื ื™ื–ื™ืจืŸ "ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜", ื˜ื™ื™ืœ ื‘ืึทืฉื˜ื™ืžืขืŸ ืคืึทืจืงืขืจ ืฆื• ืึท ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืกืขืจื•ื•ื™ืก, ืึธื“ืขืจ ืžื™ืจ ืงืขื ืขืŸ ื‘ืึทื’ืจืขื ืขืฆืŸ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื™ื ื˜ืขืจืึทืงืฉืึทื ื– ืื•ืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทืœืข ื˜ืจื™ืคึผืก ืคื•ืŸ ื“ื™ ืงื ื•ื™ืœ ืฆื• ื“ื™ ืงื ื•ื™ืœ. ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื ืขืฅ. ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืฉื˜ืขืœืŸ ืคึผืึธืœื™ื˜ื™ืง ื›ึผืœืœื™ื ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื˜ืจื™ืคึผืก ืฆื•ื•ื™ืฉืŸ ืคืึทืจืฉื™ื“ืขื ืข ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก. ืฆื•ื ืกื•ืฃ, ืžื™ืจ ืงืขื ืขืŸ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ื’ืื ืฆืข ื ืขืฅ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืžืึทืคึผืข ืื•ืŸ ืžืึทื›ืŸ ื“ื™ ื™ื•ื ืึทืคื™ื™ื“ ื–ืึทืžืœื•ื ื’ ืคื•ืŸ ืžืขื˜ืจื™ืงืก ื’ืึธืจ ื˜ืจืึทื ืกืคึผืขืจืึทื ื˜ ืคึฟืึทืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–.

ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ื•ื•ืขื’ืŸ ื“ื™ ืžืขืงืึทื ื™ื–ืึทื ืคื•ืŸ ืึทืจื‘ืขื˜ ืื™ืŸ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ. Istio ืื™ื– ืึท ื˜ืึทืงืข ืฉื˜ืึทืจืง ื’ืขืฆื™ื™ึทื’ ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืกืึธืœื•ื•ืข ืคื™ืœืข ื˜ืึทืกืงืก ืื•ืŸ ืคึผืจืึธื‘ืœืขืžืก. ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืื™ืš ื•ื•ืึธืœื˜ ื•ื•ื™ ืฆื• ืขื ื˜ืคึฟืขืจืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืคึฟืจืื’ืŸ ื•ื•ืึธืก ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ืฉื˜ื™ื™ืขืŸ ื•ื•ืขืŸ ืื™ืš ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ Istio. ื“ืึธืก ื•ื•ืขื˜ ื”ืขืœืคึฟืŸ ืื™ืจ ืฆื• ื”ืึทื ื“ืœืขืŸ ืžื™ื˜ ืขืก ืคืึทืกื˜ืขืจ.

ื•ื•ื™ ืฆื• ืœื•ื™ืคืŸ Istio ื ื™ืฆืŸ Kubernetes ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข. ื˜ื™ื™ืœ 1

ืคึผืจื™ื ืฆื™ืคึผ ืคื•ืŸ ืึธืคึผืขืจืึทืฆื™ืข

Istio ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืฆื•ื•ื™ื™ ื”ื•ื™ืคึผื˜ ื’ืขื‘ื™ื˜ืŸ - ื“ื™ ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš ืื•ืŸ ื“ื™ ื“ืึทื˜ืŸ ืคืœืึทืš. ื“ื™ ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš ื›ึผื•ืœืœ ื“ื™ ื”ื•ื™ืคึผื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื•ื•ืึธืก ืขื ืฉื•ืจ ื“ื™ ืจื™ื›ื˜ื™ืง ืึธืคึผืขืจืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืžื ื•ื—ื”. ืื™ืŸ ื“ื™ ืงืจืึทื ื˜ ื•ื•ืขืจืกื™ืข (1.0) ื“ื™ ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš ื”ืื˜ ื“ืจื™ื™ ื”ื•ื™ืคึผื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ: ืคึผื™ืœืึธื˜, ืžื™ืงืกืขืจ, ืกื™ื˜ืึทื“ืขืœ. ืžื™ืจ ื•ื•ืขืœืŸ ื ื™ืฉื˜ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืกื™ื˜ืึทื“ืขืœ, ืขืก ืื™ื– ื“ืืจืฃ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืกืขืจื˜ื™ืคื™ืงืึทืฅ ืฆื• ืขื ืฉื•ืจ ืงืขื’ื ืฆื™ื™ึทื˜ื™ืง TLS ืฆื•ื•ื™ืฉืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก. ื–ืืœ ืก ื ืขืžืขืŸ ืึท ื ืขืขื ื˜ืขืจ ืงื•ืง ืื™ืŸ ื“ื™ ืžื™ื˜ืœ ืื•ืŸ ืฆื™ืœ ืคื•ืŸ ืคึผื™ืœืึธื˜ ืื•ืŸ ืžื™ืงืกืขืจ.

ื•ื•ื™ ืฆื• ืœื•ื™ืคืŸ Istio ื ื™ืฆืŸ Kubernetes ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข. ื˜ื™ื™ืœ 1

ืคึผื™ืœืึธื˜ ืื™ื– ื“ืขืจ ื”ื•ื™ืคึผื˜ ืงืึธื ื˜ืจืึธืœ ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืึธืก ื“ื™ืกื˜ืจื™ื‘ื™ื•ืฅ ืึทืœืข ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ - ื‘ืึทื“ื™ื ื•ื ื’ืก, ื–ื™ื™ืขืจ ืขื ื“ืคึผืึธื™ื ืฅ ืื•ืŸ ืจื•ื˜ื™ื ื’ ื›ึผืœืœื™ื (ืœืžืฉืœ, ื›ึผืœืœื™ื ืคึฟืึทืจ ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืึธื“ืขืจ ืงืจื™ื™ึทื– ืฆื•ื™ืžืขืŸ ื›ึผืœืœื™ื).

ืžื™ืงืกืขืจ ืื™ื– ืึท ืึทืคึผืฉืึทื ืึทืœ ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืึธืก ื’ื™ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื–ืึทืžืœืขืŸ ืžืขื˜ืจื™ืงืก, ืœืึธื’ืก ืื•ืŸ ืงื™ื™ืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื ืขืฅ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ. ืขืจ ืื•ื™ืš ืžืึธื ื™ื˜ืึธืจืก ื”ืขืกืงืขื ืžื™ื˜ ืคึผืึธืœื™ื˜ื™ืง ื›ึผืœืœื™ื ืื•ืŸ ื”ืขืกืงืขื ืžื™ื˜ ืงื•ืจืก ืœื™ืžืึทืฅ.

ื“ื™ ื“ืึทื˜ืŸ ืคืœืึทืš ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืžื™ื˜ ืกื™ื™ื“ืงืึทืจ ืคึผืจืึทืงืกื™ ืงืึทื ื˜ื™ื™ื ืขืจื–. ืฉื˜ืึทืจืง ืื™ื– ื’ืขื ื™ืฆื˜ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜. ืฉืœื™ื— ืคืจืืงืกื™. ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืจื™ืคึผืœื™ื™ืกื˜ ื“ื•ืจืš ืืŸ ืื ื“ืขืจ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, ืึทื–ืึท ื•ื•ื™ nginx (nginmesh).

ื›ึผื“ื™ Istio ื–ืึธืœ ืึทืจื‘ืขื˜ืŸ ื’ืึธืจ ื˜ืจืึทื ืกืคึผืขืจืึทื ื˜ ืฆื• ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ืขืก ืื™ื– ืึทืŸ ืึธื˜ืึทืžืึทื˜ื™ืง ื™ื ื“ื–ืฉืขืงืฉืึทืŸ ืกื™ืกื˜ืขื. ื“ื™ ืœืขืฆื˜ืข ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืื™ื– ืคึผืึทืกื™ืง ืคึฟืึทืจ Kubernetes 1.9+ ื•ื•ืขืจืกื™ืขืก (ืžื™ื•ื˜ื™ื™ืฉืึทื ืึทืœ ืึทืจื™ื™ึทื ื˜ืจืขื˜ืŸ ื•ื•ืขื‘ื”ืึธืึธืง). ืคึฟืึทืจ Kubernetes ื•ื•ืขืจืกื™ืขืก 1.7, 1.8 ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ื ื•ืฆืŸ ื“ื™ ื™ื ื™ื˜ื™ืึทืœื™ื–ืขืจ.

ืกื™ื“ืขืงืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจื– ื–ืขื ืขืŸ ืงืึธื ื ืขืงื˜ืขื“ ืฆื• ืคึผื™ืœืึธื˜ ื ื™ืฆืŸ ื“ื™ GRPC ืคึผืจืึธื˜ืึธืงืึธืœ, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืึทืคึผื˜ืึทืžื™ื™ื– ื“ื™ ืฉื˜ื•ืคึผ ืžืึธื“ืขืœ ืคึฟืึทืจ ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ืคึผืึทืกื™ืจืŸ ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ. GRPC ืื™ื– ื’ืขื ื™ืฆื˜ ืื™ืŸ Envoy ื–ื™ื ื˜ ื•ื•ืขืจืกื™ืข 1.6, ืื™ืŸ Istio ืขืก ืื™ื– ื’ืขื ื™ืฆื˜ ื–ื™ื ื˜ ื•ื•ืขืจืกื™ืข 0.8 ืื•ืŸ ืื™ื– ืึท ืคึผื™ืœืึธื˜-ืึทื’ืขื ื˜ - ืึท ื’ืึธืœืึทื ื’ ืจืึทืคึผืขืจ ืื™ื‘ืขืจ ืึทื ื•ื•ื•ื™ ื•ื•ืึธืก ืงืึทื ืคื™ื’ื™ืขืจ ืงืึทื˜ืขืจ ืึธืคึผืฆื™ืขืก.

ืคึผื™ืœืึธื˜ ืื•ืŸ ืžื™ืงืกืขืจ ื–ืขื ืขืŸ ื’ืึธืจ ืกื˜ื™ื™ื˜ืœืึทืก ืงืึทืžืคึผืึธื•ื ืึทื ืฅ, ืึทืœืข ืฉื˜ืึทื˜ ืื™ื– ื’ืขื”ืืœื˜ืŸ ืื™ืŸ ื–ื›ึผืจื•ืŸ. ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคึฟืึทืจ ื–ื™ื™ ืื™ื– ื‘ืึทืฉื˜ื™ืžื˜ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ Kubernetes Custom Resources, ื•ื•ืึธืก ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืขื˜ืง.
ื™ืกื˜ื™ืึธ-ืึทื’ืขื ื˜ ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืคึผื™ืœืึธื˜ ืื•ืŸ ืึธืคึผืขื ืก ืึท GRPC ื˜ื™ื™ึทืš ืฆื• ืื™ื.

ื•ื•ื™ ืื™ืš ื’ืขื–ืื’ื˜, Istio ื™ืžืคึผืœืึทืžืึทื ืฅ ืึทืœืข ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ื’ืึธืจ ื˜ืจืึทื ืกืคึผืขืจืึทื ื˜ ืฆื• ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ื–ืืœ ืก ื–ืขืŸ ื•ื•ื™. ื“ืขืจ ืึทืœื’ืขืจื™ื“ืึทื ืื™ื– ื“ืึธืก:

  1. ื“ื™ืคึผืœื™ื™ื™ื ื’ ืึท ื ื™ื™ึทืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ืกืขืจื•ื•ื™ืก.
  2. ื“ืขืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ืกื™ื™ื“ืงืึทืจ ืงืึทื ื˜ื™ื™ื ืขืจ ื™ื ื“ื–ืฉืขืงื˜ื™ื ื’ ืฆื•ื’ืึทื ื’, ื“ื™ ื™ืกื˜ื™ืึธ-ื™ื ื™ื˜ ืงืึทื ื˜ื™ื™ื ืขืจ ืื•ืŸ ื“ื™ ื™ืกื˜ื™ืึธ-ืึทื’ืขื ื˜ ืงืึทื ื˜ื™ื™ื ืขืจ (ืฉืœื™ื—) ื–ืขื ืขืŸ ืžื•ืกื™ืฃ ืื™ืŸ ื“ืขืจ ื‘ื™ื ืข ืคื•ืŸ โ€‹โ€‹ืึทืคึผืœื™ื™ื™ื ื’ ื“ื™ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ, ืึธื“ืขืจ ื–ื™ื™ ืงืขื ืขืŸ ืฉื•ื™ืŸ ื–ื™ื™ืŸ ืžืึทื ื™ื•ืึทืœื™ ื™ื ืกืขืจื˜ืึทื“ ืื™ืŸ ื“ื™ ื‘ืึทืฉืจื™ื™ึทื‘ื•ื ื’ ืคื•ืŸ ื“ื™ Kubernetes Pod ืขื ื˜ื™ื˜ื™.
  3. ื“ืขืจ istio-init ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ื– ืึท ืฉืจื™ืคื˜ ื•ื•ืึธืก ืึทืคึผืœื™ื™ื– ื“ื™ iptables ื›ึผืœืœื™ื ืฆื• ื“ื™ ืคึผืึธื“. ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ืึธืคึผืฆื™ืขืก ืคึฟืึทืจ ืงืึทื ืคื™ื’ื™ืขืจื™ื ื’ ืคืึทืจืงืขืจ ืฆื• ื–ื™ื™ืŸ ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ ืึท ื™ืกื˜ื™ืึธ-ืึทื’ืขื ื˜ ืงืึทื ื˜ื™ื™ื ืขืจ: ื ื•ืฆืŸ ื™ืคึผื˜ืึทื‘ืœืขืก ืจื™ื“ืขืจืขืงื˜ ื›ึผืœืœื™ื, ืึธื“ืขืจ TPROXY. ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ืฉืจื™ื™ื‘ืŸ, ื“ื™ ืคืขืœื™ืงื™ื™ึทื˜ ืฆื•ื’ืึทื ื’ ืื™ื– ืžื™ื˜ ืจื™ื“ืขืจืขืงื˜ ื›ึผืœืœื™ื. ืื™ืŸ istio-init, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ื•ื•ืึธืก ืคืึทืจืงืขืจ ื–ืึธืœ ื–ื™ื™ืŸ ื™ื ื˜ืขืจืกืขืคึผื˜ืึทื“ ืื•ืŸ ื’ืขืฉื™ืงื˜ ืฆื• istio-agent. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืื™ืŸ ืกื“ืจ ืฆื• ื™ื ื˜ืขืจืกืขืคึผื˜ ืึทืœืข ื™ื ืงืึทืžื™ื ื’ ืื•ืŸ ืึทืœืข ืึทื•ื˜ื’ืึธื•ื™ื ื’ ืคืึทืจืงืขืจ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก -i ะธ -b ืื™ืŸ ื˜ื™ื™ึทื˜ืฉ *. ืื™ืจ ืงืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืกืคึผืขืฆื™ืคื™ืฉ ืคึผืึธืจืฅ ืฆื• ื™ื ื˜ืขืจืกืขืคึผื˜. ืื™ืŸ ืกื“ืจ ื ื™ืฉื˜ ืฆื• ื™ื ื˜ืขืจืกืขืคึผื˜ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืกื•ื‘ื ืขื˜, ืื™ืจ ืงืขื ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืขืก ืžื™ื˜ ื“ื™ ืคืึธืŸ -x.
  4. ื ืึธืš ื“ื™ ื™ื ื™ื˜ ืงืึทื ื˜ื™ื™ื ืขืจื– ื–ืขื ืขืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“, ื“ื™ ื”ื•ื™ืคึผื˜ ืึธื ืขืก ื–ืขื ืขืŸ ืœืึธื ื˜ืฉื˜, ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืคึผื™ืœืึธื˜-ืึทื’ืขื ื˜ (ืฉืœื™ื—). ืขืก ืงืึทื ืขืงืฅ ืฆื• ื“ื™ ืฉื•ื™ืŸ ื“ื™ืคึผืœื•ื™ื“ ืคึผื™ืœืึธื˜ ื“ื•ืจืš GRPC ืื•ืŸ ื ืขืžื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืึทืœืข ื™ื’ื–ื™ืกื˜ื™ื ื’ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื•ืŸ ืจื•ื˜ื™ื ื’ ืคึผืึทืœืึทืกื™ื– ืื™ืŸ ื“ืขื ืงื ื•ื™ืœ. ืœื•ื™ื˜ ื“ื™ ื‘ืืงื•ืžืขืŸ ื“ืึทื˜ืŸ, ืขืจ ืงืึทื ืคื™ื’ื™ืขืจื“ ื“ื™ ืงืœืึทืกื˜ืขืจื– ืื•ืŸ ืึทืกื™ื™ื ื– ื–ื™ื™ ื’ืœื™ื™ึทืš ืฆื• ื“ื™ ืขื ื“ืคึผื•ื™ื ืฅ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื™ืŸ ื“ื™ ืงื•ื‘ืขืจื ืขื˜ืขืก ืงื ื•ื™ืœ. ืขืก ืื™ื– ืื•ื™ืš ื ื™ื™ื˜ื™ืง ืฆื• ื˜ืึธืŸ ืึท ื•ื•ื™ื›ื˜ื™ืง ืคื•ื ื˜: ื“ื™ ืึทื ื•ื•ื•ื™ ื“ื™ื ืึทืžื™ืงืึทืœืœื™ ืงืึทื ืคื™ื’ื™ืขืจ ืฆื•ื”ืขืจืขืจืก (IP, ืคึผืึธืจื˜ ืคึผืขืจื–) ื•ื•ืึธืก ืขืก ืกื˜ืึทืจืฅ ืฆื• ื”ืขืจืŸ. ื“ืขืจื™ื‘ืขืจ, ื•ื•ืขืŸ ืจื™ืงื•ื•ืขืก ืึทืจื™ื™ึทืŸ ื“ื™ ืคึผืึธื“, ื–ืขื ืขืŸ ืจื™ื“ืขืจืขืงื˜ื™ื“ ืžื™ื˜ ื“ื™ ืจื™ื“ืขืจืขืงื˜ ื™ืคึผื˜ืึทื‘ืœืขืก ื›ึผืœืœื™ื ืื™ืŸ ื“ื™ ืกื™ื™ื“ืงืึทืจ, ื“ื™ ืึทื ื•ื•ื•ื™ ืงืขื ืขืŸ ืฉื•ื™ืŸ ื”ืฆืœื—ื” ืคึผืจืึธืฆืขืก ื“ื™ ืงืึทื ืขืงืฉืึทื ื– ืื•ืŸ ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื• ืฆื• ื•ื•ื™ื™ึทื˜ืขืจ ืคึผืจืึทืงืกื™ ื“ื™ ืคืึทืจืงืขืจ. ืื•ื™ืš ืื™ืŸ ื“ืขื ื‘ื™ื ืข, ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื– ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ืžื™ืงืกืขืจ, ื•ื•ืึธืก ืžื™ืจ ื•ื•ืขืœืŸ ืงื•ืงืŸ ืื™ืŸ ืฉืคึผืขื˜ืขืจ, ืื•ืŸ ื˜ืจื™ื™ืกื™ื ื’ ืกืคึผืึทื ืก ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜.

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืžื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึท ื’ืึทื ืฅ ื ืขืฅ ืคื•ืŸ ืึทื ื•ื•ื•ื™ ืคึผืจืึทืงืกื™ ืกืขืจื•ื•ืขืจืก ื•ื•ืึธืก ืžื™ืจ ืงืขื ืขืŸ ืงืึทื ืคื™ื’ื™ืขืจ ืคึฟื•ืŸ ืื™ื™ืŸ ืคื•ื ื˜ (ืคึผื™ืœืึธื˜). ืึทืœืข ื™ื ื‘ืึทื•ื ื“ ืื•ืŸ ืึทื•ื˜ื‘ืึทื•ื ื“ ืจื™ืงื•ื•ืขืก ื’ื™ื™ืŸ ื“ื•ืจืš ืึท ืฉืœื™ื—. ื“ืขืจืฆื•, ื‘ืœื•ื™ื– TCP ืคืึทืจืงืขืจ ืื™ื– ื™ื ื˜ืขืจืกืขืคึผื˜ืึทื“. ื“ืขื ืžื™ื˜ืœ ืึทื– Kubernetes ืกืขืจื•ื•ื™ืก IP ืื™ื– ืจื™ื–ืึทืœื•ื•ื“ ื ื™ืฆืŸ kube-dns ืื™ื‘ืขืจ UDP ืึธืŸ ื˜ืฉืึทื ื’ื™ื ื’. ื“ืขืจื ืึธืš, ื ืึธืš ื“ืขื ื‘ืึทืฉืœื•ืก, ื“ื™ ืึทื•ื˜ื’ืึธื•ื™ื ื’ ื‘ืขื˜ืŸ ืื™ื– ื™ื ื˜ืขืจืกืขืคึผื˜ืึทื“ ืื•ืŸ ืคึผืจืึทืกืขืกื˜ ื“ื•ืจืš ืึท ืฉืœื™ื—, ื•ื•ืึธืก ืฉื•ื™ืŸ ื“ื™ืกื™ื™ื“ื– ืฆื• ื•ื•ืึธืก ืขื ื“ืคึผื•ื™ื ื˜ ื“ื™ ื‘ืขื˜ืŸ ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ (ืึธื“ืขืจ ื ื™ืฉื˜ ื’ืขืฉื™ืงื˜, ืื™ืŸ ื“ื™ ืคืึทืœ ืคื•ืŸ ืึทืงืกืขืก ืคึผืึทืœืึทืกื™ื– ืึธื“ืขืจ ื“ื™ ืงืจื™ื™ึทื– ืฆื•ื™ืžืขืŸ ืคื•ืŸ ื“ื™ ืึทืœื’ืขืจื™ื“ืึทื).

ืžื™ืจ ืคื™ื’ื™ืขืจื“ ืคึผื™ืœืึธื˜, ืื™ืฆื˜ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ื•ื•ื™ ืžื™ืงืกืขืจ ืึทืจื‘ืขื˜ ืื•ืŸ ื•ื•ืึธืก ืขืก ืื™ื– ื“ืืจืฃ. ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ื“ื™ ื‘ืึทืึทืžื˜ืขืจ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืคึฟืึทืจ ืขืก ื“ืึธ.

ืžื™ืงืกืขืจ ืื™ืŸ ื–ื™ื™ืŸ ืงืจืึทื ื˜ ืคืึธืจืขื ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ืฆื•ื•ื™ื™ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ: ื™ืกื˜ื™ืึธ-ื˜ืขืœืขืžืขื˜ืจื™, ื™ืกื˜ื™ืึธ-ืคึผืึธืœื™ื˜ื™ืง (ืื™ื™ื“ืขืจ ื•ื•ืขืจืกื™ืข 0.8 ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืื™ื™ืŸ ื™ืกื˜ื™ืึธ-ืžื™ืงืกืขืจ ืงืึธืžืคึผืึธื ืขื ื˜). ื‘ื™ื™ื“ืข ืคื•ืŸ โ€‹โ€‹ื–ื™ื™ ื–ืขื ืขืŸ ืžื™ืงืกืขืจื–, ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ืื™ื– ืคืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขืš ืคึฟืึทืจ ื–ื™ื™ึทืŸ ืึทืจื‘ืขื˜. Istio ื˜ืขืœืขืžืขื˜ืจื™ ื‘ืืงื•ืžื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื•ื•ืขืจ ื’ื™ื™ื˜ ื•ื•ื• ืื•ืŸ ืžื™ื˜ ื•ื•ืึธืก ืคึผืึทืจืึทืžืขื˜ืขืจืก ืคึฟื•ืŸ ืกื™ื™ื“ืงืึทืจ ื‘ืืจื™ื›ื˜ ืงืึทื ื˜ื™ื™ื ืขืจื– ื“ื•ืจืš GRPC. Istio-policy ืึทืงืกืขืคึผืฅ ื˜ืฉืขืง ืจื™ืงื•ื•ืขืก ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึทื– ืคึผืึธืœื™ื˜ื™ืง ื›ึผืœืœื™ื ื–ืขื ืขืŸ ืฆื•ืคึฟืจื™ื“ืŸ. ืคึผืึธืœื™ืกื™ ื˜ืฉืขืงืก ื–ืขื ืขืŸ, ืคื•ืŸ ืงื•ืจืก, ื ื™ืฉื˜ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืคึฟืึทืจ ื™ืขื“ืขืจ ื‘ืงืฉื”, ืึธื‘ืขืจ ื–ืขื ืขืŸ ืงืึทืฉื˜ ืื•ื™ืฃ ื“ืขื ืงืœื™ืขื ื˜ (ืื™ืŸ ื“ื™ ืกื™ื™ื“ืงืึทืจ) ืคึฟืึทืจ ืึท ื–ื™ื›ืขืจ ืฆื™ื™ื˜. ื‘ืืจื™ื›ื˜ ื˜ืฉืขืงืก ื–ืขื ืขืŸ ื’ืขืฉื™ืงื˜ ื•ื•ื™ ืคึผืขืงืœ ืจื™ืงื•ื•ืขืก. ื–ืืœ ืก ื–ืขืŸ ื•ื•ื™ ืฆื• ืงืึทื ืคื™ื’ื™ืขืจ ืื•ืŸ ื•ื•ืึธืก ืคึผืึทืจืึทืžืขื˜ืขืจืก ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืึท ื‘ื™ืกืœ ืฉืคึผืขื˜ืขืจ.

ื“ื™ ืžื™ืงืกืขืจ ืื™ื– ื’ืขืžื™ื™ื ื˜ ืฆื• ื–ื™ื™ืŸ ืึท ื”ืขื›ืกื˜ ื‘ื ื™ืžืฆื ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืึธืก ื™ื ืฉื•ืจื– ืึทื ื™ื ืขืจืึทืคึผื˜ื™ื“ ืึทืจื‘ืขื˜ ืื•ื™ืฃ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื•ืŸ ืคึผืจืึทืกืขืกื™ื ื’ ืคื•ืŸ ื˜ืขืœืขืžืขื˜ืจื™ ื“ืึทื˜ืŸ. ื“ืขืจ ืกื™ืกื˜ืขื ืื™ื– ื‘ืืงื•ืžืขืŸ ื•ื•ื™ ืึท ืžืึทืœื˜ื™-ืžื“ืจื’ื” ื‘ืึทืคืขืจ. ื˜ื›ื™ืœืขืก, ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ื‘ืึทืคืขืจื“ ืื•ื™ืฃ ื“ื™ ืกื™ื™ื“ืงืึทืจ ื–ื™ื™ึทื˜ ืคื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื–, ื“ืขืžืึธืœื˜ ืื•ื™ืฃ ื“ื™ ืžื™ืงืกืขืจ ื–ื™ื™ึทื˜, ืื•ืŸ ื“ืขืžืึธืœื˜ ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข ืžื™ืงืกืขืจ ื‘ืึทืงืขื ื“ื–. ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืื•ื™ื‘ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืกื™ืกื˜ืขื ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ืคื™ื™ืœื–, ื“ืขืจ ื‘ืึทืคืขืจ ื•ื•ืืงืกื˜ ืื•ืŸ ืื™ื– ืคืœืึทืฉื˜ ื ืึธืš ื“ื™ ืกื™ืกื˜ืขื ืื™ื– ื’ืขื–ื•ื ื˜. ืžื™ืงืกืขืจ ื‘ืึทืงืขื ื“ื– ื–ืขื ืขืŸ ืขื ื“ืคึผืึธื™ื ืฅ ืคึฟืึทืจ ืฉื™ืงื˜ ื˜ืขืœืขืžืขื˜ืจื™ ื“ืึทื˜ืŸ: ืกื˜ืึทืฅื“, ื ืขื•ื•ืจืขืœื™ืง, ืขื˜ืง. ืื™ืจ ืงืขื ืขืŸ ืฉืจื™ื™ึทื‘ืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื‘ืึทืงืขื ื“, ื“ืึธืก ืื™ื– ื’ืึทื ืฅ ืคึผืฉื•ื˜, ืื•ืŸ ืžื™ืจ ื•ื•ืขืœืŸ ื–ืขืŸ ื•ื•ื™ ืฆื• ื˜ืึธืŸ ื“ืึธืก.

ื•ื•ื™ ืฆื• ืœื•ื™ืคืŸ Istio ื ื™ืฆืŸ Kubernetes ืื™ืŸ ืคึผืจืึธื“ื•ืงืฆื™ืข. ื˜ื™ื™ืœ 1

ืฆื• ืกืึทืžืขืจื™ื™ื–, ื“ื™ ืกื›ืขืžืข ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื™ืกื˜ื™ืึธ-ื˜ืขืœืขืžืขื˜ืจื™ ืื™ื– ื•ื•ื™ ื’ื™ื™ื˜.

  1. ืกืขืจื•ื•ื™ืก 1 ืกืขื ื“ื– ืึท ื‘ืงืฉื” ืฆื• ืกืขืจื•ื•ื™ืก 2.
  2. ื•ื•ืขืŸ ืื™ืจ ืคืึทืจืœืึธื–ืŸ ื“ื™ื ืกื˜ 1, ื“ื™ ื‘ืงืฉื” ืื™ื– ืืœื ื’ืขื•ื•ื™ืงืœื˜ ืื™ืŸ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืกื™ื™ื“ืงืึทืจ.
  3. ืกื™ื™ื“ืงืึทืจ ืึทื ื•ื•ื•ื™ ืžืึธื ื™ื˜ืึธืจืก ื•ื•ื™ ื“ื™ ื‘ืงืฉื” ื’ื™ื™ื˜ ืฆื• ืกืขืจื•ื•ื™ืก 2 ืื•ืŸ ืคึผืจื™ืคึผืขืจื– ื“ื™ ื ื™ื™ื˜ื™ืง ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข.
  4. ื“ืขืจื ืึธืš ืกืขื ื“ื– ืขืก ืฆื• ื™ืกื˜ื™ืึธ-ื˜ืขืœืขืžืขื˜ืจื™ ื ื™ืฆืŸ ืึท ื‘ืืจื™ื›ื˜ ื‘ืขื˜ืŸ.
  5. ื™ืกื˜ื™ืึธ-ื˜ืขืœืขืžืขื˜ืจื™ ื“ื™ื˜ืขืจืžืึทื ื– ืฆื™ ื“ืขื ื‘ืืจื™ื›ื˜ ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ื–, ืฆื• ื•ื•ืึธืก ืื•ืŸ ื•ื•ืึธืก ื“ืึทื˜ืŸ ื–ืึธืœ ื–ื™ื™ืŸ ื’ืขืฉื™ืงื˜.
  6. ื™ืกื˜ื™ืึธ-ื˜ืขืœืขืžืขื˜ืจื™ ืกืขื ื“ื– ื‘ืืจื™ื›ื˜ ื“ืึทื˜ืŸ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืื•ื™ื‘ ื“ืืจืฃ.

ืื™ืฆื˜ ืœืึธืžื™ืจ ื–ืขืŸ ื•ื•ื™ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ Istio ืื™ืŸ ื“ื™ ืกื™ืกื˜ืขื, ื•ื•ืึธืก ื‘ืืฉื˜ื™ื™ื˜ ื‘ืœื•ื™ื– ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ (ืคึผื™ืœืึธื˜ ืื•ืŸ ืกื™ื™ื“ืงืึทืจ ืึทื ื•ื•ื•ื™).

ืขืจืฉื˜ืขืจ, ืœืึธืžื™ืจ ืงื•ืง ืื™ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ (ืžืขืฉ) ื•ื•ืึธืก ืคึผื™ืœืึธื˜ ืœื™ื™ืขื ื˜:

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio
  namespace: istio-system
  labels:
    app: istio
    service: istio
data:
  mesh: |-

    # ะฟะพะบะฐ ั‡ั‚ะพ ะฝะต ะฒะบะปัŽั‡ะฐะตะผ ะพั‚ะฟั€ะฐะฒะบัƒ tracing ะธะฝั„ะพั€ะผะฐั†ะธะธ (pilot ะฝะฐัั‚ั€ะพะธั‚ envoyโ€™ะธ ั‚ะฐะบะธะผ ะพะฑั€ะฐะทะพะผ, ั‡ั‚ะพ ะพั‚ะฟั€ะฐะฒะบะฐ ะฝะต ะฑัƒะดะตั‚ ะฟั€ะพะธัั…ะพะดะธั‚ัŒ)
    enableTracing: false

    # ะฟะพะบะฐ ั‡ั‚ะพ ะฝะต ัƒะบะฐะทั‹ะฒะฐะตะผ mixer endpointโ€™ั‹, ั‡ั‚ะพะฑั‹ sidecar ะบะพะฝั‚ะตะนะฝะตั€ั‹ ะฝะต ะพั‚ะฟั€ะฐะฒะปัะปะธ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ั‚ัƒะดะฐ
    #mixerCheckServer: istio-policy.istio-system:15004
    #mixerReportServer: istio-telemetry.istio-system:15004

    # ัั‚ะฐะฒะธะผ ะฒั€ะตะผะตะฝะฝะพะน ะฟั€ะพะผะตะถัƒั‚ะพะบ, ั ะบะพั‚ะพั€ั‹ะผ ะฑัƒะดะตั‚ envoy ะฟะตั€ะตัะฟั€ะฐัˆะธะฒะฐั‚ัŒ Pilot (ัั‚ะพ ะดะปั ัั‚ะฐั€ะพะน ะฒะตั€ัะธะธ envoy proxy)
    rdsRefreshDelay: 5s

    # default ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั ะดะปั envoy sidecar
    defaultConfig:
      # ะฐะฝะฐะปะพะณะธั‡ะฝะพ ะบะฐะบ rdsRefreshDelay
      discoveryRefreshDelay: 5s

      # ะพัั‚ะฐะฒะปัะตะผ ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ (ะฟัƒั‚ัŒ ะบ ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ ะธ ะฑะธะฝะฐั€ัŽ envoy)
      configPath: "/etc/istio/proxy"
      binaryPath: "/usr/local/bin/envoy"

      # ะดะตั„ะพะปั‚ะฝะพะต ะธะผั ะทะฐะฟัƒั‰ะตะฝะฝะพะณะพ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐ (ะธัะฟะพะปัŒะทัƒะตั‚ัั, ะฝะฐะฟั€ะธะผะตั€, ะฒ ะธะผะตะฝะฐั… ัะตั€ะฒะธัะฐ ะฟั€ะธ ะพั‚ะฟั€ะฐะฒะบะต tracing spanโ€™ะพะฒ)
      serviceCluster: istio-proxy

      # ะฒั€ะตะผั, ะบะพั‚ะพั€ะพะต ะฑัƒะดะตั‚ ะถะดะฐั‚ัŒ envoy ะดะพ ั‚ะพะณะพ, ะบะฐะบ ะพะฝ ะฟั€ะธะฝัƒะดะธั‚ะตะปัŒะฝะพ ะทะฐะฒะตั€ัˆะธั‚ ะฒัะต ัƒัั‚ะฐะฝะพะฒะปะตะฝะฝั‹ะต ัะพะตะดะธะฝะตะฝะธั
      drainDuration: 45s
      parentShutdownDuration: 1m0s

      # ะฟะพ ัƒะผะพะปั‡ะฐะฝะธัŽ ะธัะฟะพะปัŒะทัƒัŽั‚ัั REDIRECT ะฟั€ะฐะฒะธะปะฐ iptables. ะœะพะถะฝะพ ะธะทะผะตะฝะธั‚ัŒ ะฝะฐ TPROXY.
      #interceptionMode: REDIRECT

      # ะŸะพั€ั‚, ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ะทะฐะฟัƒั‰ะตะฝะฐ admin ะฟะฐะฝะตะปัŒ ะบะฐะถะดะพะณะพ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐ (envoy)
      proxyAdminPort: 15000

      # ะฐะดั€ะตั, ะฟะพ ะบะพั‚ะพั€ะพะผัƒ ะฑัƒะดัƒั‚ ะพั‚ะฟั€ะฐะฒะปัั‚ัŒัั traceโ€™ั‹ ะฟะพ zipkin ะฟั€ะพั‚ะพะบะพะปัƒ (ะฒ ะฝะฐั‡ะฐะปะต ะผั‹ ะพั‚ะบะปัŽั‡ะธะปะธ ัะฐะผัƒ ะพั‚ะฟั€ะฐะฒะบัƒ, ะฟะพัั‚ะพะผัƒ ัั‚ะพ ะฟะพะปะต ัะตะนั‡ะฐั ะฝะต ะฑัƒะดะตั‚ ะธัะฟะพะปัŒะทะพะฒะฐั‚ัŒัั)
      zipkinAddress: tracing-collector.tracing:9411

      # statsd ะฐะดั€ะตั ะดะปั ะพั‚ะฟั€ะฐะฒะบะธ ะผะตั‚ั€ะธะบ envoy ะบะพะฝั‚ะตะนะฝะตั€ะพะฒ (ะพั‚ะบะปัŽั‡ะฐะตะผ)
      # statsdUdpAddress: aggregator:8126

      # ะฒั‹ะบะปัŽั‡ะฐะตะผ ะฟะพะดะดะตั€ะถะบัƒ ะพะฟั†ะธะธ Mutual TLS
      controlPlaneAuthPolicy: NONE

      # ะฐะดั€ะตั, ะฝะฐ ะบะพั‚ะพั€ะพะผ ะฑัƒะดะตั‚ ัะปัƒัˆะฐั‚ัŒ istio-pilot ะดะปั ั‚ะพะณะพ, ั‡ั‚ะพะฑั‹ ัะพะพะฑั‰ะฐั‚ัŒ ะธะฝั„ะพั€ะผะฐั†ะธัŽ ะพ service discovery ะฒัะตะผ sidecar ะบะพะฝั‚ะตะนะฝะตั€ะฐะผ
      discoveryAddress: istio-pilot.istio-system:15007

ืึทืœืข ื“ื™ ื”ื•ื™ืคึผื˜ ืงืึธื ื˜ืจืึธืœ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ (ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš) ื•ื•ืขื˜ ื–ื™ื™ืŸ ืœื™ื’ืŸ ืื™ืŸ ื“ื™ ื ืึทืžืขืกืคึผืึทืกืข ื™ืกื˜ื™ืึธ-ืกื™ืกื˜ืขื ืื™ืŸ Kubernetes.

ืื™ืŸ ืึท ืžื™ื ื™ืžื•ื, ืžื™ืจ ื ืึธืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฆืขื•ื•ื™ืงืœืขืŸ ืคึผื™ืœืึธื˜. ืคึฟืึทืจ ื“ืขื ืžื™ืจ ื ื•ืฆืŸ ืึทื–ืึท ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ.

ืื•ืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืžืึทื ื™ื•ืึทืœื™ ืงืึทื ืคื™ื’ื™ืขืจ ื“ื™ ื™ื ื“ื–ืฉืขืงื˜ื™ื ื’ ืกื™ื™ื“ืงืึทืจ ืคื•ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ.

ื™ื ื™ื˜ ืงืึทื ื˜ื™ื™ื ืขืจ:

initContainers:
 - name: istio-init
   args:
   - -p
   - "15001"
   - -u
   - "1337"
   - -m
   - REDIRECT
   - -i
   - '*'
   - -b
   - '*'
   - -d
   - ""
   image: istio/proxy_init:1.0.0
   imagePullPolicy: IfNotPresent
   resources:
     limits:
       memory: 128Mi
   securityContext:
     capabilities:
       add:
       - NET_ADMIN

ืื•ืŸ ืกื™ื™ื“ืงืึทืจ:

       name: istio-proxy
       args:
         - "bash"
         - "-c"
         - |
           exec /usr/local/bin/pilot-agent proxy sidecar 
           --configPath 
           /etc/istio/proxy 
           --binaryPath 
           /usr/local/bin/envoy 
           --serviceCluster 
           service-name 
           --drainDuration 
           45s 
           --parentShutdownDuration 
           1m0s 
           --discoveryAddress 
           istio-pilot.istio-system:15007 
           --discoveryRefreshDelay 
           1s 
           --connectTimeout 
           10s 
           --proxyAdminPort 
           "15000" 
           --controlPlaneAuthPolicy 
           NONE
         env:
         - name: POD_NAME
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
         - name: POD_NAMESPACE
           valueFrom:
             fieldRef:
               fieldPath: metadata.namespace
         - name: INSTANCE_IP
           valueFrom:
             fieldRef:
               fieldPath: status.podIP
         - name: ISTIO_META_POD_NAME
           valueFrom:
             fieldRef:
               fieldPath: metadata.name
         - name: ISTIO_META_INTERCEPTION_MODE
           value: REDIRECT
         image: istio/proxyv2:1.0.0
         imagePullPolicy: IfNotPresent
         resources:
           requests:
             cpu: 100m
             memory: 128Mi
           limits:
             memory: 2048Mi
         securityContext:
           privileged: false
           readOnlyRootFilesystem: true
           runAsUser: 1337
         volumeMounts:
         - mountPath: /etc/istio/proxy
           name: istio-envoy

ื›ึผื“ื™ ืึทืœืฅ ื–ืึธืœ ืึธื ื”ื™ื™ื‘ืŸ ื”ืฆืœื—ื”, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืฉืึทืคึฟืŸ ืึท ืกืขืจื•ื•ื™ืก ืึทืงืึทื•ื ื˜, ClusterRole, ClusterRoleBinding, CRD ืคึฟืึทืจ ืคึผื™ืœืึธื˜, ื“ื™ ื“ื™ืกืงืจื™ืคึผืฉืึทื ื– ืคื•ืŸ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขืคึฟื•ื ืขืŸ. ื“ืึธ.

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ื“ื™ ื“ื™ื ืกื˜ ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ืึทืจื™ื™ึทื ืฉืคึผืจื™ืฆืŸ ืกื™ื™ื“ืงืึทืจ ืžื™ื˜ ืึท ืฉืœื™ื— ื–ืึธืœ ืึธื ื”ื™ื™ื‘ืŸ ื”ืฆืœื—ื”, ื‘ืึทืงื•ืžืขืŸ ืึทืœืข ื•ืคื“ืขืงื•ื ื’ ืคื•ืŸ ื“ื™ ืคึผื™ืœืึธื˜ ืื•ืŸ ืคึผืจืึธืฆืขืก ืจื™ืงื•ื•ืขืก.

ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ืคึฟืึทืจืฉื˜ื™ื™ืŸ ืึทื– ืึทืœืข ืงืึธื ื˜ืจืึธืœ ืคืœืึทืš ืงืึทืžืคึผืึธื•ื ืึทื ืฅ ื–ืขื ืขืŸ ืกื˜ื™ื™ื˜ืœืึทืก ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืื•ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื›ืึธืจื™ื–ืึทื ื˜ืึทืœื™ ืกืงื™ื™ืœื“ ืึธืŸ ืคืจืื‘ืœืขืžืขืŸ. ืึทืœืข ื“ืึทื˜ืŸ ื–ืขื ืขืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืขื˜ืง ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืžื ื”ื’ ื“ื™ืกืงืจื™ืคึผืฉืึทื ื– ืคื•ืŸ Kubernetes ืจืขืกื•ืจืกืŸ.

ืื•ื™ืš, Istio (ื ืึธืš ื™ืงืกืคึผืขืจืžืขื ืึทืœ) ื”ืื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืœื•ื™ืคืŸ ืึทืจื•ื™ืก ื“ื™ ืงื ื•ื™ืœ ืื•ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื”ื™ื˜ืŸ ืื•ืŸ ืคืึทืžื‘ืึทืœ ืกืขืจื•ื•ื™ืก ื•ืคื“ืขืงื•ื ื’ ืฆื•ื•ื™ืฉืŸ ืขื˜ืœืขื›ืข ืงื•ื‘ืขืจื ืขื˜ืขืก ืงืœืึทืกื˜ืขืจื–. ืื™ืจ ืงืขื ืขืŸ ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื“ืขื ื“ืึธ.

ืคึฟืึทืจ ืึท ืžืึทืœื˜ื™-ืงื ื•ื™ืœ ื™ื ืกื˜ืึทืœื™ืจื•ื ื’, ื–ื™ื™ืŸ ืึทื•ื•ืขืจ ืคื•ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืœื™ืžื™ื˜ื™ื™ืฉืึทื ื–:

  1. ืคึผืึธื“ ืกื™ื“ืจ ืื•ืŸ ืกืขืจื•ื•ื™ืก ืกื™ื“ืจ ืžื•ื–ืŸ ื–ื™ื™ืŸ ื™ื™ื ืฆื™ืง ืื™ืŸ ืึทืœืข ืงืœืึทืกื˜ืขืจื– ืื•ืŸ ืžื•ื–ืŸ ื ื™ืฉื˜ ืึธื•ื•ื•ืขืจืœืึทืคึผ.
  2. ืึทืœืข ืกื™ื“ืจ ืคึผืึธื“ืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืฆื•ื˜ืจื™ื˜ืœืขืš ืคึฟื•ืŸ ืงื™ื™ืŸ ืกื™ื“ืจ ืคึผืึธื“ืก ืฆื•ื•ื™ืฉืŸ ืงืœืึทืกื˜ืขืจื–.
  3. ื›ืœ Kubernetes API ืกืขืจื•ื•ืขืจืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืฆื•ื˜ืจื™ื˜ืœืขืš ืฆื• ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ.

ื“ืึธืก ืื™ื– ื“ืขืจ ืขืจืฉื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืฆื• ื”ืขืœืคืŸ ืื™ืจ ืึธื ื”ื™ื™ื‘ืŸ ืžื™ื˜ Istio. ืึธื‘ืขืจ, ืขืก ื–ืขื ืขืŸ ื ืึธืš ืคื™ืœืข ืคึผื™ื˜ืคืึธืœื–. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ืจื•ื˜ื™ื ื’ ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ืคืึทืจืงืขืจ (ืึทืจื•ื™ืก ื“ืขื ืงื ื•ื™ืœ), ืึทืคึผืจืึธื•ื˜ืฉื™ื– ืฆื• ื“ื™ื‘ืึทื’ื™ื ื’ ืกื™ื™ื“ืงืึทืจืก, ืคึผืจืึธืคื™ืœื™ื ื’, ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึท ืžื™ืงืกืขืจ ืื•ืŸ ืฉืจื™ื™ื‘ืŸ ืึท ืžื ื”ื’ ืžื™ืงืกืขืจ ื‘ืึทืงืขื ื“, ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืึท ื˜ืจื™ื™ืกื™ื ื’ ืžืขืงืึทื ื™ื–ืึทื ืื•ืŸ ื–ื™ื™ึทืŸ ืึธืคึผืขืจืึทืฆื™ืข ืžื™ื˜ ืึท ืฉืœื™ื—.
ืึทืœืข ื“ืขื ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืื•ื™ืกื’ืื‘ืขืก. ืคืจืขื’ืŸ ื“ื™ื™ืŸ ืคืจืื’ืขืก, ืื™ืš ื•ื•ืขืœ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ื“ืขืงืŸ ื–ื™ื™.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’