ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ื ื™ืฆืŸ Istio + Kiali ืฆื• ืงืึทื˜ืขืจ ืื•ืŸ ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ื™ื– ืึท ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ืึทืจื˜ื™ืงืœืขืŸ ืื™ืŸ ื“ืขื ืกืขืจื™ืข

  1. ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #1: Gitlab CI
  2. ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #2: Argo Rollouts
  3. (ื“ื™ ืืจื˜ื™ืงืœ)
  4. ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ื ื™ืฆืŸ Jenkins-X Istio Flagger

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜

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

ื™ืกื˜ื™ืึธ

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

ืึทืคึผืคึผืœื™ืงืึทื˜ื™ืึธืŸ ืคึฟืึทืจ ื˜ืขืกืฅ

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ื™ืขื“ืขืจ ืคึผืึธื“ ื›ึผื•ืœืœ ืฆื•ื•ื™ื™ ืงืึทื ื˜ื™ื™ื ืขืจื–: ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื™ืกื˜ื™ืึธ-ืคึผืจืึธืงืกื™.

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

ืœื•ื™ืคืŸ ื“ื™ ืคึผืจืึธื‘ืข ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื–ื™ืš

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

ืขืจืฉื˜ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜

ื•ื•ืขืŸ ืžื™ืจ ืงืึทื˜ืขืจ ื“ืขืจ ืขืจืฉื˜ืขืจ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜, ืžื™ืจ ื–ืขืŸ ืึทื– ื“ื™ ืคึผืึธื“ืก ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื”ืึธื‘ืŸ ื‘ืœื•ื™ื– 2 ืงืึทื ื˜ื™ื™ื ืขืจื–, ื“ืึธืก ืื™ื–, ื“ื™ Istio ืกื™ื™ื“ืงืึทืจ ืื™ื– ืคึผื•ื ืงื˜ ื™ืžืคึผืœืึทืžืขื ืึทื“:

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ืื•ืŸ ืžื™ืจ ืื•ื™ืš ื–ืขืŸ Istio Gateway Loadbalancer ืื™ืŸ ื“ื™ ื ืึทืžืขืกืคึผืึทืกืข istio-system:

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ื˜ืจืืคื™ืง ื“ื•ืจ

ืžื™ืจ ื•ื•ืขืœืŸ ื ื•ืฆืŸ ื“ื™ ืคืืœื’ืขื ื“ืข IP ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืคืึทืจืงืขืจ ื•ื•ืึธืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืืงื•ืžืขืŸ ื“ื•ืจืš ื“ื™ ืคืจืึธื ื˜ืขื ื“ ืคึผืึธื“ืก ืื•ืŸ ืคืึธืจื•ื•ืขืจื“ื™ื“ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืคึผืึธื“ืก:

while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done

ืžื™ืจ ื•ื•ืขืœืŸ ืื•ื™ืš ืœื™ื™ื’ืŸ frontend.istio-test ืฆื• ืื•ื ื“ื–ืขืจ ื”ืึธืกืฅ ื˜ืขืงืข.

ื–ืขืŸ ืžืขืฉ ื“ื•ืจืš Kiali

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

istioctl dashboard kiali # admin:admin

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

Kiali ื•ื•ื™ื–ืฉื•ื•ืึทืœื™ื™ื–ื™ื– ืงืจืึทื ื˜ ืคืึทืจืงืขืจ ื“ื•ืจืš ืžืขืฉ

ื•ื•ื™ ืžื™ืจ ืงืขื ืขืŸ ื–ืขืŸ, 100% ืคื•ืŸ ื“ื™ ืคืึทืจืงืขืจ ื’ื™ื™ื˜ ืฆื• ื“ื™ ืคืจืึธื ื˜ืขื ื“ ืกืขืจื•ื•ื™ืก, ื“ืขืจื ืึธืš ืฆื• ื“ื™ ืคืจืึธื ื˜ืขื ื“ ืคึผืึธื“ืก ืžื™ื˜ ืคื™ืจืžืข ื•ื•1, ื•ื•ื™ื™ึทืœ ืžื™ืจ ื ื•ืฆืŸ ืึท ืคึผืฉื•ื˜ nginx ืคึผืจืึทืงืกื™ ื•ื•ืึธืก ืจื™ื“ืขืจืขืงืฅ ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืกืขืจื•ื•ื™ืก, ื•ื•ืึธืก ืจื™ื“ืขืจืขืงืฅ ื–ื™ื™ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“ ืคึผืึธื“ืก. ืžื™ื˜ ืคื™ืจืžืข v1.

Kiali ืึทืจื‘ืขื˜ ื’ืจื•ื™ืก ืžื™ื˜ Istio ืื•ืŸ ื’ื™ื˜ ืึท ื‘ืึธืงืกืขื“ ืžืขืฉ ืจืขื ื“ืขืจื™ื ื’ ืœื™ื™ื–ื•ื ื’. ื ืึธืจ ื’ืจื•ื™ืก.

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜

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

ืฉืจื™ื˜ 1: 10%

ืื•ืŸ ืึทืœืข ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื˜ืึธืŸ ืื™ื– ืกื˜ืจื•ื™ืขืจืŸ ื“ื™ ื•ื•ืึธื’ ืคื•ืŸ ื“ื™ VirtualService ืื™ืŸ istio.yaml:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend
  namespace: default
spec:
  gateways: []
  hosts:
  - "backend.default.svc.cluster.local"
  http:
  - match:
    - {}
    route:
    - destination:
        host: backend.default.svc.cluster.local
        subset: v1
        port:
          number: 80
      weight: 90
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 10

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ืžื™ืจ ื–ืขืŸ ืึทื– 10% ืคื•ืŸ ืจื™ืงื•ื•ืขืก ื–ืขื ืขืŸ ืจื™ื“ืขืจืขืงื˜ื™ื“ ืฆื• ื•ื•2.

ืฉืจื™ื˜ 2: 50%

ืื•ืŸ ืื™ืฆื˜ ืขืก ืื™ื– ื’ืขื ื•ื’ ืฆื• ืคืึทืจื’ืจืขืกืขืจืŸ ืขืก ืฆื• 50%:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend
  namespace: default
spec:
...
    - destination:
        host: backend.default.svc.cluster.local
        subset: v1
        port:
          number: 80
      weight: 50
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 50

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ืฉืจื™ื˜ 3: 100%

ืื™ืฆื˜ ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื”ืืœื˜ืŸ ื’ืึทื ืฅ ืื•ืŸ ืึทืœืข ืคืึทืจืงืขืจ ืื™ื– ืจื™ื“ืขืจืขืงื˜ื™ื“ ืฆื• ื•ื•2:

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ืžืึทื ื™ื•ืึทืœื™ ืคึผืจื•ื‘ื™ืจืŸ ืงืึทื ืึทืจื™

ื–ืืœ ืก ื–ืึธื’ืŸ ืžื™ืจ ืื™ืฆื˜ ืฉื™ืงืŸ 2% ืคื•ืŸ ืึทืœืข ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ื•ื•10 ื‘ืึทืงืขื ื“. ื•ื•ืึธืก ืื•ื™ื‘ ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืžืึทื ื™ื•ืึทืœื™ ืคึผืจื•ื‘ื™ืจืŸ ื•ื• 2 ืฆื• ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ืึทืœืฅ ืึทืจื‘ืขื˜ ื•ื•ื™ ืžื™ืจ ื“ืขืจื•ื•ืึทืจื˜ืŸ?

ืžื™ืจ ืงืขื ืขืŸ ืœื™ื™ื’ืŸ ืึท ืกืคึผืขืฆื™ืขืœ ืจื™ื›ื˜ืŸ ื”ืขืจืฉืŸ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื”ื˜ื˜ืคึผ ื›ืขื“ืขืจื–:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend
  namespace: default
spec:
  gateways: []
  hosts:
  - "backend.default.svc.cluster.local"
  http:
  - match:
    - headers:
        canary:
          exact: "canary-tester"
    route:
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 100
  - match:
    - {}
    route:
    - destination:
        host: backend.default.svc.cluster.local
        subset: v1
        port:
          number: 80
      weight: 90
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 10

ืื™ืฆื˜ ื ื™ืฆืŸ ืงืขืจืœ ืžื™ืจ ืงืขื ืขืŸ ืฆื•ื•ื™ื ื’ืขืŸ ืึท v2 ื‘ืขื˜ืŸ ื“ื•ืจืš ืฉื™ืงืŸ ื“ื™ ื›ืขื“ืขืจ:

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ืจื™ืงื•ื•ืขืก ืึธืŸ ืึท ื›ืขื“ืขืจ ื•ื•ืขื˜ ื ืึธืš ื–ื™ื™ืŸ ื’ืขื˜ืจื™ื‘ืŸ ื“ื•ืจืš ื“ื™ 1/10 ืคืึทืจื”ืขืœื˜ืขื ื™ืฉ:

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ืงืึทื ืึทืจื™ ืคึฟืึทืจ ืฆื•ื•ื™ื™ ืึธืคืขื ื’ื™ืง ื•ื•ืขืจืกื™ืขืก

ืื™ืฆื˜ ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทื˜ืจืึทื›ื˜ืŸ ื“ื™ ืึธืคึผืฆื™ืข ื•ื•ื• ืžื™ืจ ื”ืึธื‘ืŸ ื•ื•ืขืจืกื™ืข ื•ื• 2 ืคึฟืึทืจ ื‘ื™ื™ื“ืข ืคืจืึธื ื˜ืขื ื“ ืื•ืŸ ื‘ืึทืงืขื ื“. ืคึฟืึทืจ ื‘ื™ื™ื“ืข, ืžื™ืจ ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ ืึทื– 10% ืคื•ืŸ ื“ื™ ืคืึทืจืงืขืจ ื–ืึธืœ ื’ื™ื™ืŸ ืฆื• ื•ื•2:

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ืžื™ืจ ื–ืขืŸ ืึทื– ืคืจืึธื ื˜ืขื ื“ ื•ื• 1 ืื•ืŸ ื•ื• 2 ื‘ื™ื™ื“ืข ืคืึธืจื•ื™ืก ืคืึทืจืงืขืจ ืื™ืŸ ืึท ืคืึทืจื”ืขืœื˜ืขื ื™ืฉ ืคื•ืŸ 1/10 ืฆื• ื‘ืึทืงืขื ื“ ื•ื• 1 ืื•ืŸ ื•ื• 2.

ื•ื•ืึธืก ืื•ื™ื‘ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคืึธืจื•ื™ืก ืคืึทืจืงืขืจ ืคึฟื•ืŸ ืคืจืึธื ื˜ืขื ื“-v2 ื‘ืœื•ื™ื– ืฆื• ื‘ืึทืงืขื ื“-ื•ื•2 ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ื ื™ืฉื˜ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ ื•ื•1? ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืžื™ืจ ืฉื˜ืขืœืŸ ืึท 1/10 ืคืึทืจื”ืขืœื˜ืขื ื™ืฉ ืคึฟืึทืจ ื“ื™ ืคืจืึธื ื˜ืขื ื“, ื•ื•ืึธืก ืงืึธื ื˜ืจืึธืœืก ื•ื•ืึธืก ืคืึทืจืงืขืจ ืงื•ืžื˜ ืฆื• ื“ื™ ื‘ืึทืงืขื ื“-ื•ื• 2 ืžื™ื˜ ืคืึทืจื”ืึทื ื“ืœื•ื ื’ sourceLabels :

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: backend
  namespace: default
spec:
  gateways: []
  hosts:
  - "backend.default.svc.cluster.local"
  http:
...
  - match:
    - sourceLabels:
        app: frontend
        version: v2
    route:
    - destination:
        host: backend.default.svc.cluster.local
        subset: v2
        port:
          number: 80
      weight: 100

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

ืงืึทื ืึทืจื™ ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืื™ืŸ Kubernetes #3: Istio

ื“ื™ืคืขืจืึทื ืกื™ื– ืคื•ืŸ ื“ื™ ืžืึทื ื•ืึทืœ ืงืึทื ืึทืจื™ ืฆื•ื’ืึทื ื’

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

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

ื’ืึทื ืฅ

Istio ืึทืจื‘ืขื˜ ื’ืจื•ื™ืก ืื•ืŸ ื ื™ืฆืŸ ืขืก ืฆื•ื–ืึทืžืขืŸ ืžื™ื˜ Kiali ืžืื›ื˜ ืึท ื–ื™ื™ืขืจ ืฉื˜ืึทืจืง ืงืึธืžื‘ื™ื ืึทืฆื™ืข. ื•ื•ื™ื™ึทื˜ืขืจ ืื•ื™ืฃ ืžื™ื™ืŸ ืจืฉื™ืžื” ืคื•ืŸ ืื™ื ื˜ืขืจืขืกืŸ ืื™ื– ืงืึทืžื‘ื™ื™ื ื™ื ื’ Spinnaker ืžื™ื˜ Istio ืคึฟืึทืจ ืึธื˜ืึทืžื™ื™ืฉืึทืŸ ืื•ืŸ ืงืึทื ืึทืจื™ ืึทื ืึทืœื™ื˜ื™ืงืก.

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

ืงื•ื™ืคืŸ ืคืึทืจืœืึธื–ืœืขืš ื”ืึธืกื˜ื™ื ื’ ืคึฟืึทืจ ื–ื™ื™ื˜ืœืขืš ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก ๐Ÿ”ฅ ืงื•ื™ืคื˜ ืคืึทืจืœืขืกืœืขื›ืข ื•ื•ืขื‘ื–ื™ื™ื˜ืœ ื”ืึธืกื˜ื™ื ื’ ืžื™ื˜ DDoS ืฉื•ืฅ, VPS VDS ืกืขืจื•ื•ืขืจืก | ProHoster