NGINX Service Mesh ื–ืžื™ืŸ

NGINX Service Mesh ื–ืžื™ืŸ

ืื ื• ืฉืžื—ื™ื ืœื”ืฆื™ื’ ื’ืจืกืช ืชืฆื•ื’ื” ืžืงื“ื™ืžื” ืจืฉืช ืฉื™ืจื•ืช NGINX (NSM), ืจืฉืช ืฉื™ืจื•ืช ืงืœืช ืžืฉืงืœ ืžืฆื•ืจืคืช ื”ืžืฉืชืžืฉืช ื‘ืžื™ืฉื•ืจ ื ืชื•ื ื™ื ืžื‘ื•ืกืก NGINX Plus ืœื ื™ื”ื•ืœ ืชืขื‘ื•ืจืช ืžื™ื›ืœ ื‘ืกื‘ื™ื‘ื•ืช Kubernetes.

NSM ื”ื•ื ื‘ื—ื™ื ื ัะบะฐั‡ะฐั‚ัŒ ะทะดะตััŒ. ืื ื• ืžืงื•ื•ื™ื ืฉืชื ืกื” ืื•ืชื• ืขื‘ื•ืจ ืคื™ืชื•ื—ื™ื ื•ืกื‘ื™ื‘ื•ืช ื‘ื“ื™ืงื” - ื•ืžืฆืคื™ื ืœืžืฉื•ื‘ ืฉืœืš ื‘-GitHub.

ื”ื™ื™ืฉื•ื ืฉืœ ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช ืฉื™ืจื•ืชื™ ืžื™ืงืจื• ื˜ื•ืžื ืช ื‘ื—ื•ื‘ื” ืงืฉื™ื™ื ื›ื›ืœ ืฉื”ื™ืงืฃ ื”ืืกืคืงื” โ€‹โ€‹ื’ื“ืœ, ื›ืžื• ื’ื ื”ืžื•ืจื›ื‘ื•ืช ืฉืœื•. ื”ืชืงืฉื•ืจืช ื‘ื™ืŸ ืฉื™ืจื•ืชื™ื ื”ื•ืคื›ืช ืœืžื•ืจื›ื‘ืช ื™ื•ืชืจ, ื‘ืขื™ื•ืช ืื™ืชื•ืจ ื‘ืื’ื™ื ื”ื•ืคื›ื•ืช ืœืงืฉื•ืช ื™ื•ืชืจ, ื•ื™ื•ืชืจ ื•ื™ื•ืชืจ ืฉื™ืจื•ืชื™ื ื“ื•ืจืฉื™ื ื™ื•ืชืจ ืžืฉืื‘ื™ื ืœื ื™ื”ื•ืœ.

NSM ืคื•ืชืจ ืืช ื”ื‘ืขื™ื•ืช ื”ืืœื” ืขืœ ื™ื“ื™ ืžืชืŸ ืœืš:

  • ืื‘ื˜ื—ื”, ืฉืขื›ืฉื™ื• ื—ืฉื•ื‘ ืžืชืžื™ื“. ืคืจืฆืช ื ืชื•ื ื™ื ืขืœื•ืœื” ืœืขืœื•ืช ืœื—ื‘ืจื” ืžื™ืœื™ื•ื ื™ ื“ื•ืœืจื™ื ืžื“ื™ ืฉื ื” ื‘ืื•ื‘ื“ืŸ ื”ื›ื ืกื•ืช ื•ืžื•ื ื™ื˜ื™ืŸ. NSM ืžื‘ื˜ื™ื— ืฉื›ืœ ื”ื—ื™ื‘ื•ืจื™ื ืžื•ืฆืคื ื™ื ื‘ืืžืฆืขื•ืช mTLS, ื›ืš ืฉืื™ืŸ ื ืชื•ื ื™ื ืจื’ื™ืฉื™ื ืฉื™ื›ื•ืœื™ื ืœื”ื™ื’ื ื‘ ืขืœ ื™ื“ื™ ื”ืืงืจื™ื ื“ืจืš ื”ืจืฉืช. ื‘ืงืจืช ื’ื™ืฉื” ืžืืคืฉืจืช ืœืš ืœื”ื’ื“ื™ืจ ืžื“ื™ื ื™ื•ืช ืœืื•ืคืŸ ืฉื‘ื• ืฉื™ืจื•ืชื™ื ืžืชืงืฉืจื™ื ืขื ืฉื™ืจื•ืชื™ื ืื—ืจื™ื.
  • ื ื™ื”ื•ืœ ืชืขื‘ื•ืจื”. ื‘ืขืช ืžืฉืœื•ื— ื’ืจืกื” ื—ื“ืฉื” ืฉืœ ืืคืœื™ืงืฆื™ื”, ื™ื™ืชื›ืŸ ืฉืชืจืฆื” ืœื”ืชื—ื™ืœ ื‘ื”ื’ื‘ืœืช ืชื ื•ืขื” ื ื›ื ืกืช ืืœื™ื” ื‘ืžืงืจื” ืฉืœ ืฉื’ื™ืื”. ืขื ื ื™ื”ื•ืœ ืชืขื‘ื•ืจืช ืงื•ื ื˜ื™ื™ื ืจื™ื ื—ื›ื ืฉืœ NSM, ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืžื“ื™ื ื™ื•ืช ื”ื’ื‘ืœืช ืชืขื‘ื•ืจื” ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ื ื—ื“ืฉื™ื ืฉื™ื’ื“ื™ืœื• ืืช ื”ืชืขื‘ื•ืจื” ืœืื•ืจืš ื–ืžืŸ. ืชื›ื•ื ื•ืช ืื—ืจื•ืช, ื›ื’ื•ืŸ ื”ื’ื‘ืœืช ืžื”ื™ืจื•ืช ื•ืžืคืกืงื™ ื—ืฉืžืœ, ืžืขื ื™ืงื•ืช ืœืš ืฉืœื™ื˜ื” ืžืœืื” ืขืœ ื–ืจื™ืžืช ื”ืชื ื•ืขื” ืฉืœ ื›ืœ ื”ืฉื™ืจื•ืชื™ื ืฉืœืš.
  • ืจืื™ื”. ื ื™ื”ื•ืœ ืืœืคื™ ืฉื™ืจื•ืชื™ื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืกื™ื•ื˜ ืฉืœ ื ื™ืคื•ื™ ื‘ืื’ื™ื ื•ื”ื“ืžื™ื”. NSM ืขื•ื–ืจ ืœื”ืชืžื•ื“ื“ ืขื ืžืฆื‘ ื–ื” ืขื ืœื•ื— ืžื—ื•ื•ื ื™ื ืžื•ื‘ื ื” ืฉืœ Grafana ื”ืžืฆื™ื’ ืืช ื›ืœ ื”ืชื›ื•ื ื•ืช ื”ื–ืžื™ื ื•ืช ื‘-NGINX Plus. ื•ื’ื ื”-Open Tracing ื”ืžื™ื•ืฉื ืžืืคืฉืจ ืœืš ืœื ื˜ืจ ืขืกืงืื•ืช ื‘ืคื™ืจื•ื˜.
  • ืžืฉืœื•ื—ื™ื ื”ื™ื‘ืจื™ื“ื™ื™ื, ืื ื”ื—ื‘ืจื” ืฉืœืš, ื›ืžื• ืจื•ื‘ ื”ืื—ืจื•ืช, ืื™ื ื” ืžืฉืชืžืฉืช ื‘ืชืฉืชื™ืช ื”ืคื•ืขืœืช ื›ื•ืœื” ืขืœ Kubernetes. NSM ืžื‘ื˜ื™ื— ืฉื™ื™ืฉื•ืžื™ื ืžื“ื•ืจ ืงื•ื“ื ืœื ื™ื™ืฉืืจื• ืœืœื ื”ืฉื’ื—ื”. ื‘ืขื–ืจืช ื”ื‘ืงืจ ื”ืžื™ื•ืฉื NGINX Kubernetes Ingress, ืฉื™ืจื•ืชื™ื ืžื“ื•ืจ ืงื•ื“ื ื™ื•ื›ืœื• ืœืชืงืฉืจ ืขื ืฉื™ืจื•ืชื™ ืจืฉืช, ื•ืœื”ื™ืคืš.

NSM ื’ื ืžื‘ื˜ื™ื— ืื‘ื˜ื—ืช ื™ื™ืฉื•ืžื™ื ื‘ืกื‘ื™ื‘ื•ืช ืืคืก ืืžื•ืŸ ืขืœ ื™ื“ื™ ื™ื™ืฉื•ื ืฉืงื•ืฃ ืฉืœ ื”ืฆืคื ื” ื•ืื™ืžื•ืช ืขืœ ืชืขื‘ื•ืจืช ืงื•ื ื˜ื™ื™ื ืจ. ื”ื•ื ื’ื ืžืกืคืง ื ืจืื•ืช ื•ื ื™ืชื•ื— ืฉืœ ืขืกืงืื•ืช, ื•ืขื•ื–ืจ ืœืš ืœื”ืคืขื™ืœ ื‘ืžื”ื™ืจื•ืช ื•ื‘ื“ื™ื™ืงื ื•ืช ืคืจื™ืกื•ืช ื•ืœืคืชื•ืจ ื‘ืขื™ื•ืช. ื”ื•ื ื’ื ืžืกืคืง ื‘ืงืจืช ืชืขื‘ื•ืจื” ืคืจื˜ื ื™ืช, ื”ืžืืคืฉืจืช ืœืฆื•ื•ืชื™ DevOps ืœืคืจื•ืก ื•ืœืžื˜ื‘ ื—ืœืงื™ื ืฉืœ ื™ื™ืฉื•ืžื™ื ืชื•ืš ืžืชืŸ ืืคืฉืจื•ืช ืœืžืคืชื—ื™ื ืœื‘ื ื•ืช ื•ืœื—ื‘ืจ ื‘ืงืœื•ืช ืืช ื”ื™ื™ืฉื•ืžื™ื ื”ืžื‘ื•ื–ืจื™ื ืฉืœื”ื.

ื›ื™ืฆื“ ืคื•ืขืœืช NGINX Service Mesh?

NSM ืžื•ืจื›ื‘ ืžืžื™ืฉื•ืจ ื ืชื•ื ื™ื ืžืื•ื—ื“ ืœืชืขื‘ื•ืจื” ืื•ืคืงื™ืช (ืฉื™ืจื•ืช ืœืฉื™ืจื•ืช) ื•ื‘ืงืจ ื›ื ื™ืกืช NGINX Plus ืžืฉื•ื‘ืฅ ืœืชืขื‘ื•ืจื” ืื ื›ื™ืช, ื”ืžื ื•ื”ืœ ืขืœ ื™ื“ื™ ืžื™ืฉื•ืจ ื‘ืงืจื” ื™ื—ื™ื“.

ืžื™ืฉื•ืจ ื”ื‘ืงืจื” ืชื•ื›ื ืŸ ื•ืžื•ื˜ื‘ ื‘ืžื™ื•ื—ื“ ืขื‘ื•ืจ ืžื™ืฉื•ืจ ื”ื ืชื•ื ื™ื NGINX Plus ื•ืžื’ื“ื™ืจ ื›ืœืœื™ ื‘ืงืจืช ืชืขื‘ื•ืจื” ื”ืžื•ืคืฆื™ื ืขืœ ืคื ื™ ืงืจื•ื ื•ืช ืฆื“ ืฉืœ NGINX Plus.

ื‘-NSM, ืžื•ืชืงื ื™ื ืคืจื•ืงืกื™ ืฉืœ ืงืจื•ื ื•ืช ืฆื“ ืœื›ืœ ืฉื™ืจื•ืช ื‘ืจืฉืช. ื”ื ืžืชืžืžืฉืงื™ื ืขื ืคืชืจื•ื ื•ืช ื”ืงื•ื“ ื”ืคืชื•ื— ื”ื‘ืื™ื:

  • Grafana, ื”ื“ืžื™ื™ืช ืคืจืžื˜ืจ Prometheus, ืคืื ืœ NSM ืžื•ื‘ื ื” ืขื•ื–ืจ ืœืš ื‘ืขื‘ื•ื“ื” ืฉืœืš;
  • Kubernetes Ingress Controllers, ืœื ื™ื”ื•ืœ ืชืขื‘ื•ืจื” ื ื›ื ืกืช ื•ื™ื•ืฆืืช ื‘ืจืฉืช;
  • SPIRE, CA ืœื ื™ื”ื•ืœ, ื”ืคืฆื” ื•ืขื“ื›ื•ืŸ ืชืขื•ื“ื•ืช ื‘ืจืฉืช;
  • NATS, ืžืขืจื›ืช ื ื™ืชื ืช ืœื”ืจื—ื‘ื” ืœืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช, ื›ื’ื•ืŸ ืขื“ื›ื•ื ื™ ืžืกืœื•ืœ, ืžืžื˜ื•ืก ื”ืฉืœื™ื˜ื” ืœืจื›ื‘ื™ ืฆื“;
  • Open Tracing, ื ื™ืคื•ื™ ื‘ืื’ื™ื ืžื‘ื•ื–ืจ (ืชืžื™ื›ืช Zipkin ื•-Jaeger);
  • ืคืจื•ืžืชืื•ืก, ืื•ืกืคืช ื•ืžืื—ืกื ืช ืžืืคื™ื™ื ื™ื ืžืจื›ื‘ื™ ืฆื“ ืฉืœ NGINX Plus, ื›ืžื• ืžืกืคืจ ื”ื‘ืงืฉื•ืช, ื”ื—ื™ื‘ื•ืจื™ื ื•ืœื—ื™ืฆื•ืช ื™ื“ SSL.

ืคื•ื ืงืฆื™ื•ืช ื•ืจื›ื™ื‘ื™ื

NGINX Plus ื›ืžื™ืฉื•ืจ ื ืชื•ื ื™ื ืžื›ืกื” ืคืจื•ืงืกื™ ืฆื“ื“ื™ (ืชืขื‘ื•ืจื” ืื•ืคืงื™ืช) ื•ื‘ืงืจ ื›ื ื™ืกื” (ืื ื›ื™), ืžื™ื™ืจื˜ ื•ื ื™ื”ื•ืœ ืชืขื‘ื•ืจืช ืงื•ื ื˜ื™ื™ื ืจ ื‘ื™ืŸ ืฉื™ืจื•ืชื™ื.

ื”ืชื›ื•ื ื•ืช ื›ื•ืœืœื•ืช:

  • ืื™ืžื•ืช TLS (mTLS) ื”ื“ื“ื™;
  • ืื™ื–ื•ืŸ ืขื•ืžืกื™ื;
  • ืกื•ื‘ืœื ื•ืช ืœืชืงืœื•ืช;
  • ื”ื’ื‘ืœืช ืžื”ื™ืจื•ืช;
  • ืฉื‘ื™ืจืช ืžืขื’ืœ;
  • ืคืจื™ืกื•ืช ื›ื—ื•ืœ-ื™ืจื•ืง ื•ืงื ืจื™ื•ืช;
  • ื‘ืงืจืช ื’ื™ืฉื”.

ื”ืฉืงืช NGINX Service Mesh

ื›ื“ื™ ืœื”ืคืขื™ืœ NSM ืืชื” ืฆืจื™ืš:

  • ื’ื™ืฉื” ืœืกื‘ื™ื‘ืช Kubernetes. NGINX Service Mesh ื ืชืžืš ื‘ืคืœื˜ืคื•ืจืžื•ืช Kubernetes ืจื‘ื•ืช, ื›ื•ืœืœ Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere ื•ืืฉื›ื•ืœื•ืช Kubernetes ืจื’ื™ืœื™ื ื”ืคืจื•ืกื™ื ืขืœ ืฉืจืชื™ ื—ื•ืžืจื”;
  • ื›ืœื™ kubectl, ืžื•ืชืงืŸ ื‘ืžื›ื•ื ื” ืฉืžืžื ื” ื™ื•ืชืงืŸ NSM;
  • ื’ื™ืฉื” ืœื—ื‘ื™ืœื•ืช ืฉื—ืจื•ืจ NGINX Service Mesh. ื”ื—ื‘ื™ืœื” ืžื›ื™ืœื” ืชืžื•ื ื•ืช NSM ื”ื“ืจื•ืฉื•ืช ืœื”ืขืœืื” ืœืจื™ืฉื•ื ืคืจื˜ื™ ืขื‘ื•ืจ ืงื•ื ื˜ื™ื™ื ืจื™ื ื”ื–ืžื™ื ื™ื ื‘ืืฉื›ื•ืœ Kubernetes. ื”ื—ื‘ื™ืœื” ืžื›ื™ืœื” ื’ื nginx-meshctl, ื ื“ืจืฉ ืœืคืจื™ืกืช NSM.

ื›ื“ื™ ืœืคืจื•ืก NSM ืขื ื”ื’ื“ืจื•ืช ื‘ืจื™ืจืช ืžื—ื“ืœ, ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” ื”ื‘ืื”. ื‘ืžื”ืœืš ื”ืคืจื™ืกื”, ืžื•ืฆื’ื•ืช ื”ื•ื“ืขื•ืช ื”ืžืฆื™ื™ื ื•ืช ืืช ื”ื”ืชืงื ื” ื”ืžื•ืฆืœื—ืช ืฉืœ ื”ืจื›ื™ื‘ื™ื ื•ืœื‘ืกื•ืฃ, ื”ื•ื“ืขื” ื”ืžืฆื™ื™ื ืช ืฉ-NSM ืคื•ืขืœ ื‘ืžืจื—ื‘ ืฉืžื•ืช ื ืคืจื“ (ืขืœื™ืš ืชื—ื™ืœื” ืœื”ื•ืจื™ื“ ื•ืžื ื™ื—ื™ื ืื•ืชื• ื‘ืจื™ืฉื•ื, ืžืฉื•ืขืจ. ืžึฐืชื•ึผืจื’ึฐืžึธืŸ):

$ DOCKER_REGISTRY=your-Docker-registry ; MESH_VER=0.6.0 ; 
 ./nginx-meshctl deploy  
  --nginx-mesh-api-image "${DOCKER_REGISTRY}/nginx-mesh-api:${MESH_VER}" 
  --nginx-mesh-sidecar-image "${DOCKER_REGISTRY}/nginx-mesh-sidecar:${MESH_VER}" 
  --nginx-mesh-init-image "${DOCKER_REGISTRY}/nginx-mesh-init:${MESH_VER}" 
  --nginx-mesh-metrics-image "${DOCKER_REGISTRY}/nginx-mesh-metrics:${MESH_VER}"
Created namespace "nginx-mesh".
Created SpiffeID CRD.
Waiting for Spire pods to be running...done.
Deployed Spire.
Deployed NATS server.
Created traffic policy CRDs.
Deployed Mesh API.
Deployed Metrics API Server.
Deployed Prometheus Server nginx-mesh/prometheus-server.
Deployed Grafana nginx-mesh/grafana.
Deployed tracing server nginx-mesh/zipkin.
All resources created. Testing the connection to the Service Mesh API Server...

Connected to the NGINX Service Mesh API successfully.
NGINX Service Mesh is running.

ืœืืคืฉืจื•ื™ื•ืช ื ื•ืกืคื•ืช, ื›ื•ืœืœ ื”ื’ื“ืจื•ืช ืžืชืงื“ืžื•ืช, ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” ื”ื–ื•:

$ nginx-meshctl deploy โ€“h

ื‘ื“ื•ืง ืฉืžื™ืฉื•ืจ ื”ื‘ืงืจื” ืคื•ืขืœ ื›ื”ืœื›ื” ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช nginx-mesh, ืืชื” ื™ื›ื•ืœ ืœืขืฉื•ืช ืืช ื–ื”:

$ kubectl get pods โ€“n nginx-mesh
NAME                                 READY   STATUS    RESTARTS   AGE
grafana-6cc6958cd9-dccj6             1/1     Running   0          2d19h
mesh-api-6b95576c46-8npkb            1/1     Running   0          2d19h
nats-server-6d5c57f894-225qn         1/1     Running   0          2d19h
prometheus-server-65c95b788b-zkt95   1/1     Running   0          2d19h
smi-metrics-5986dfb8d5-q6gfj         1/1     Running   0          2d19h
spire-agent-5cf87                    1/1     Running   0          2d19h
spire-agent-rr2tt                    1/1     Running   0          2d19h
spire-agent-vwjbv                    1/1     Running   0          2d19h
spire-server-0                       2/2     Running   0          2d19h
zipkin-6f7cbf5467-ns6wc              1/1     Running   0          2d19h

ื‘ื”ืชืื ืœื”ื’ื“ืจื•ืช ื”ืคืจื™ืกื” ืฉืงื•ื‘ืขื•ืช ืžื“ื™ื ื™ื•ืช ื”ื–ืจืงื” ื™ื“ื ื™ืช ืื• ืื•ื˜ื•ืžื˜ื™ืช, ืคืจื•ืงืกื™ NGINX sidecars ื™ืชื•ื•ืกืคื• ืœื™ื™ืฉื•ืžื™ื ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ื›ื“ื™ ืœื”ืฉื‘ื™ืช ืืช ื”ื”ื•ืกืคื” ื”ืื•ื˜ื•ืžื˜ื™ืช, ืงืจื ื›ืืŸ

ืœื“ื•ื’ืžื”, ืื ืื ื• ืคื•ืจืกื™ื ืืช ื”ืืคืœื™ืงืฆื™ื” ืœึดื™ืฉืื•ึนืŸ ื‘ืžืจื—ื‘ ื”ืฉืžื•ืช ื‘ืจื™ืจืช ืžื—ื“ืœ, ื•ืœืื—ืจ ืžื›ืŸ ื‘ื“ื•ืง ืืช ื”ืคื•ื“ - ื ืจืื” ืฉื ื™ ืžื™ื›ืœื™ื ืคื•ืขืœื™ื, ื”ื™ื™ืฉื•ื ืœึดื™ืฉืื•ึนืŸ ื•ื”ื“ืคื“ืคืŸ ื”ืžืฉื•ื™ืš:

$ kubectl apply โ€“f sleep.yaml
$ kubectl get pods โ€“n default
NAME                     READY   STATUS    RESTARTS   AGE
sleep-674f75ff4d-gxjf2   2/2     Running   0          5h23m

ืื ื—ื ื• ื™ื›ื•ืœื™ื ื’ื ืœืคืงื— ืขืœ ื”ืืคืœื™ืงืฆื™ื” ืœึดื™ืฉืื•ึนืŸ ื‘ื—ืœื•ื ื™ืช NGINX Plus, ื”ืคืขืœ ืืช ื”ืคืงื•ื“ื” ื”ื–ื• ื›ื“ื™ ืœื’ืฉืช ืœ-sidecar ืžื”ืžื—ืฉื‘ ื”ืžืงื•ืžื™ ืฉืœืš:

$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886

ื•ืื– ืคืฉื•ื˜ ื ื™ื›ื ืก ื›ืืŸ ื‘ื“ืคื“ืคืŸ. ืืชื” ื™ื›ื•ืœ ื’ื ืœื”ืชื—ื‘ืจ ืœ-Prometheus ื›ื“ื™ ืœื ื˜ืจ ืืช ื”ืืคืœื™ืงืฆื™ื” ืœึดื™ืฉืื•ึนืŸ.

ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืžืฉืื‘ื™ Kubernetes ื‘ื•ื“ื“ื™ื ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืžื“ื™ื ื™ื•ืช ืชืขื‘ื•ืจื”, ื›ื’ื•ืŸ ื‘ืงืจืช ื’ื™ืฉื”, ื”ื’ื‘ืœืช ืงืฆื‘ ื•ืฉื‘ื™ืจืช ืžืขื’ืœื™ื. ืชื™ืขื•ื“

ืžืกืงื ื”

NGINX Service Mesh ื–ืžื™ืŸ ืœื”ื•ืจื“ื” ื‘ื—ื™ื ื ื‘ื›ืชื•ื‘ืช ืคื•ืจื˜ืœ F5. ื ืกื” ืืช ื–ื” ื‘ืกื‘ื™ื‘ื•ืช ื”ืคื™ืชื•ื— ื•ื”ื‘ื“ื™ืงื” ืฉืœืš ื• ื›ืชื‘ื• ืœื ื• ืขืœ ื”ืชื•ืฆืื•ืช.

ื›ื“ื™ ืœื ืกื•ืช ืืช NGINX Plus Ingress Controller, ื”ืคืขืœ ืชืงื•ืคืช ื ื™ืกื™ื•ืŸ ื—ื™ื ื ืœืžืฉืš 30 ื™ื•ื, ืื• ืฆื•ืจ ืงืฉืจ ื›ื“ื™ ืœื“ื•ืŸ ื‘ืžืงืจื™ื ื”ืฉื™ืžื•ืฉ ืฉืœืš.

ืชืจื’ื•ื ืžืืช ืคืื‘ืœ ื“ืžืงื•ื‘ื™ืฅ', ืžื”ื ื“ืก ื”ื—ื‘ืจื” ืกืื•ืช'ื‘ืจื™ื“ื’ '. ื ื™ื”ื•ืœ ืžืขืจื›ืช ืขื‘ื•ืจ RUB 15 ืœื—ื•ื“ืฉ. ื•ื›ื—ื˜ื™ื‘ื” ื ืคืจื“ืช - ืžืจื›ื– ื”ื“ืจื›ื” ืขื™ืœืคื•ืŸ, ืชืจื’ื•ืœ ื•ื›ืœื•ื ืžืœื‘ื“ ืชืจื’ื•ืœ.

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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”