ααΎαααΈαααΆααααα»αααΆααααα αΆαααααααΎαααΆαα»α
NSM ααΊα₯ααα·ααααα
ααΆαα’αα»αααααα·ααΈααΆαααααααααΆααΈααααΌααΊααΆαααΆαααααΆααααααΆαααα αααααΆαα ααα αΆαααΎαα‘αΎα ααααΌα ααΆααΆααααα»αααααΆαααααααΆα ααΆαααααΆαααααααΆααααααααΆαααΆαααααΆααααααΆαααααααα»αααααααΆα αααα αΆααααΆααααα α»αααΆαααααα·ααΆα α αΎαααααΆααααααΆααααα αααΎαα‘αΎααααΆαααΆαααααΆααααααααααααΎααααΈαααααααααα
NSM αααααααΆααααα αΆααΆαααααααααααααα±ααα’αααααΌα:
- ααααα·αα»ααααα₯α‘αΌααααααΆαααΆααααααΆααααΆααααααΆααΆααα’ααα ααΆαααααΆααα·ααααααα’αΆα ααααΎα²αααααα»αα αα»αααΆααααα αααΌα αα·ααααααα·ααααααααΆααααΆααα»ααααΆααααα»ααα½αααααΆααα NSM ααΆααΆααΆααΆααααΆααααααΆααααΆααα’ααααααΌαααΆαα’αα·αααααΈααααααααΎ mTLS ααΌα αααααα·αααΆααα·αααααααααΎααααα’αΆα αα½α ααΆαααααα½α Hacker ααΎαααααΆααααααα ααΆααααααααααααΆαα αΌαααααΎα’αα»ααααΆαα±ααα’αααααααααααααΆααααααααΆαααααααααααααΆααααααααΆααααααααΆαα½αααααΆααααααααααααα
- ααΆααααααααααα ααΆα ααα. αα αααααΉααααααΌαααααααααΈαααααααα·ααΈ α’ααααααα ααααΆα ααα αΆααααααΎααααααΆαααΉααααααΉαα ααΆα αααα αΌαααααΆααααΆ αααα»αααααΈααΆαααα α»αα ααΆαα½αααΉαααΆααααααααααα ααΆα ααααα»αααΊαααααααααΆααααααα NSM α’αααα’αΆα ααααααααααΆαααααΉααααααΉαα ααΆα ααααααααΆααααααΆααααααααΈαααααΉααααααΎαα ααΆα αααααΆααααααααΆα αααααααα·ααααααααααα ααΌα ααΆααΆααααααααααΏα αα·αα§ααααααααααααααααΈ αααααα±ααα’αααααΌαααΆααααααααααααααααααΎααα αΌαα ααΆα αααααααααΆααααααααα’αααααΆααα’ααα
- ααΆαααΎαααΎα. ααΆααααααααααααααΆααααααΆααααΆααα’αΆα ααΆααΆαααααΆααααα α»α αα·αααΆαααΎαααΎααα»αα·αααα’αΆαααααα NSM αα½ααααααααΆαααααΆαααΆααααααΆαα½αααΉαααααΆααααααααααα Grafana αααααααΆααααααΆαα½αααααααα αΆααααααααα·αααααΆααα’αααααααΆααα αααα»α NGINX Plus α α αΎαααΆαααΆαααΆαααΆαααΎαα αα αααααΆαα’αα»αααααααααα’αα»ααααΆαα±ααα’ααααααα½ααα·αα·αααααααα·ααααα·ααΆααααα’α·αα
- ααΆαα ααα αΆαααΌαααΆααααααα·αααΎαααα»αα αα»αααααα’ααα ααΌα ααΆαααα»αα αα»αααααααααααΆαα αααΎααα·αααααΎα αααααΆαα ααΆαααααααααααααααΎαααΆαααΆαααααα»αααΎ Kubernetes ααα NSM ααΆααΆααΆαααααα·ααΈα αΆααααα·αααααΌαααΆααα»αα αααααααααΆαααΆαααΎαααααα αααααΆααααα½αααΈ NGINX Kubernetes Ingress Controller αααααΆαα’αα»αααα ααααΆααααααααααααααΉαα’αΆα ααααΆαααααααΆααααααΆαα½αααααΆααααΆαα αα·αα αααΆααααα·αα
NSM ααααΆααΆααΌααα»ααααα·ααΆααααααα·ααΈαα αααα»αααα·ααΆααΆααα·ααα»αα α·ααα αααα’αα»ααααααΆαα’αα·αααααΈα αα·αααΆααααααααααΆααααααααααΆααΆαα ααααα ααΆα ααααα»αααΊαααα ααΆαααααααααΌαααααααΆαααΎαααΎαααααα·ααααα·ααΆα αα·αααΆααα·ααΆαααααα ααααα½αα’αααα±ααααααΎαααΆαααΆαααΆαααααααΆα αα·ααααααααΆααααα αΆααΆααααΆαααΆαααα αα αα·αααααΉαααααΌααααααα ααΆαααααααααΌαααΆααααααααααα ααΆα αααααΆααααΆαα αααα’αα»ααααΆαα±αααααα»α DevOps ααΆαααααααΆα αα·ααααααΎαααααα·αααααΆαααααααααααααα·ααΈ αααααααααα’αα»ααααΆαα±ααα’αααα’αα·αααααααααααΎα αα·αααααΆαααααααα·ααΈαααααΆαα ααα αΆααααααα½ααααααΆαααΆααααα½αα
ααΎ NGINX Service Mesh ααααΎαααΆααααΆαααΌα ααααα ?
NSM ααΆαααααα αααα·ααααααααααα½αααααα½ααααααΆααα ααΆα αααααααα (ααααΆαααααα ααααΆαααα) αα·αα§ααααααααααΆ NGINX Plus Ingress αααααΆααααααααααααΆααα ααΆα αααααααααααααααααααααααααααα αααααααΆαααα½αα
ααααα αααααααΆααααΌαααΆααα ααΆα‘αΎαααΆαα·ααα αα·αααααΎα±αααααααΎααααααΆααααααα αααα·αααααα NGINX Plus αα·ααααααα αααΆαααααααααααα ααΆα ααααααααΆαα ααα αΆααα ααΌααΆαα NGINX Plus sidecars α
αα αααα»α NSM ααααΌααααΈααααααα αα ααααααΌαααΆαααα‘αΎααααααΆααααααΆααααααΈαα½αααα αααα»αααααΆααα αα½αααΆααΆααααααΆαα½ααααααααααΆααααααααΎαα αα ααΆααααααα
- Grafana, ααΆαααΎαααΎααααΆαααΆαααααα Prometheus, ααααα NSM αααααααΆααααααΆαα½ααα½αα’αααααΆαα½αααΉαααΆαααΆαααααα’ααα;
- Kubernetes Ingress Controllers αααααΆαααααααααααα ααΆα αααα αΌα αα·αα αααααα»αααααΆααα
- SPIRE, CA αααααΆααααααααααα α ααα αΆα αα·αααααΎαα αα α»ααααααααΆααα·ααααΆαααααααα αααα»αααααΆααα
- NATS αααααΆαααααααααααα’αΆα ααααΎααΆαααααααΆαααΆααααααΆααααΆαααααΎααΆα ααΌα ααΆααΆαα’αΆαααααααααΌα ααΈααααα αααααααΆαα ααααααα αα ααα
- ααΎαααΆαααΆαααΆα ααΆαααααΆααααα α»ααααααΆαα ααα αΆα (ααΆαααα Zipkin αα·α Jaeger);
- Prometheus αααααΌα αα·ααααααΆαα»αααααααααΈ NGINX Plus sidecars ααΌα ααΆα ααα½αααααΎ ααΆααααααΆαα αα·αααΆαα αΆαααα SSLα
αα»αααΆααα·ααααΆαααΆαα»
NGINX Plus ααΆααααα αααα·ααααααααααααααααααΎααααΌααααΈ sidecar (α ααΆα αααααααα) αα·αα§ααααααααααΆ Ingress (ααααα) ααΆαααααΆααα αΆαα αα·ααααααααααα ααΆα ααααα»αααΊααααααΆαααααΆααααα
αααααααα·ααααα½αααΆα:
- ααΆααααααααααΆαα TLS αα αα·ααα αα (mTLS)
- αααα»ααα»αααααΆα;
- ααΆαα’αααααααααα α»α;
- ααααααααααααΏα;
- ααΆααααααααααααΈ;
- ααΆαααΆαααααααΆααααααααααααα·α Canary;
- ααΆααααααααααααΆαα αΌαααααΎα
ααΎαααααΎαααΆα 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 Mesh α αααα
ααααΆαααΌαααΆα NSM αααααααΌαααΆααααααΆααααΆααααα αααα
ααΆαααααααΈαααααα―ααααααααΆαααα»αααΊααααααααΆααα
αααα»αα
ααααα Kubernetes α αααα
ααααααΆααααααα
nginx-meshctl
ααααΌαααΆαααΎααααΈααΆαααααααΆα NSM α
ααΎααααΈααΆαααααααΆα NSM ααΆαα½αααΉαααΆααααααααααΆαααΎα ααΌαααααΎαααΆαααΆααααααααΆααΆααααααα ααα‘α»ααααααΆαααααααΆα ααΆαααααΌαααΆααααα αΆαααααααα αΆαααΈααΆαααα‘αΎαααααΏααααααΆααααααααααα α αΎαα
α»αααααα ααΆαααααααα αΆαααΆ NSM αααα»αααααΎαααΆααα
αααα»α namespace ααΆα
ααααα‘αααα½α (ααααΌαα’αααααααΌα
$ 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 ααΉαααααΌαααΆααααααααα
αααααα·ααΈααΆαααααΆαααΎαα ααΎααααΈαα·αααΆααααααααααααααααααααααα· ααΌαα’αΆα
α§ααΆα αααααααα·αααΎααΎαααΆαααααααΆααααααα·ααΈ ααΆαααα αα αααα»α namespace ααααΆαααΎαα αΎααααααΆαααααα·αα·αααααΎα Pod - ααΎαααΉαααΎααα»αααααααα»αααααΎαααΆαααΈααααααΆαααααα·ααΈ ααΆαααα αα·ααααααααααααΆαααααααα
$ 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
αααααΆααααααΎαααααΆααααα
αΌααα
α’αααβα’αΆα
βααααΎβααααΆα Kubernetes ααΈαα½ααβααΎααααΈβαααααβαα
ααΆααααααααβαααααΆαααβα
ααΆα
ααα ααΌα
ααΆβααΆαβαααααααααβααΆαβα
αΌαβααααΎαβααΆα ααΆαβαααααβα’ααααΆβαα·αβααΆαβαααααβααααααΈβαααααΆααβααΆαβαααβααΎα
ααα ααααΈααααα·ααααΆα
NGINX Service Mesh α’αΆα
ααΆααααααα₯ααα·ααααααα
ααΎααααΈααΆααααα NGINX Plus Ingress Controller ααΌαααΎαααααΎαααΆα
ααΆαααααααααα Pavel Demkovich αα·ααααααααα»αα αα»α
ααααα: www.habr.com