แแแฎแแ แฃแแ แแแ แ แฌแแ แแแแแแแแแแ แแแแแฎแแแแแก แแแ แกแแ
NSM แฃแคแแกแแ
แแแแ แแกแแ แแแกแแแแก แแแแแแแแแแแแก แแแแแ แแแ แกแแแกแแ แกแแ แแฃแแแแแแ, แ แแแแแ แแแ แแแแ แแแฌแแแแแแก แแแกแจแขแแแแแ, แแกแแแ แ แแแแ แช แแแกแ แกแแ แแฃแแ. แกแแ แแแกแแแก แจแแ แแก แแแแฃแแแแแชแแ แฃแคแ แ แ แแฃแแ แฎแแแแ, แแแแแ แแแแก แแ แแแแแแแแ แฃแคแ แ แ แแฃแแ แฎแแแแ แแ แฃแคแ แ แแ แฃแคแ แ แแแขแ แกแแ แแแกแ แกแแญแแ แแแแก แแแข แ แแกแฃแ แกแก แแแ แแแแกแแแแก.
NSM แแแแแ แแแก แแ แแ แแแแแแแแก แแแแแฌแแแแแ:
- แฃแกแแคแ แแฎแแแแแก, แ แแแแแแช แแฎแแ แฃแคแ แ แแแแจแแแแแแแแแแ, แแแแ แ แแแแกแแ. แแแแแชแแแแ แแแ แฆแแแแแ แจแแแซแแแแ แแแแแแแแแก แงแแแแแฌแแแฃแ แแ แแแแแแแแแแ แแแแแ แ แแแฃแฏแแแก แแแแแ แแฃแแ แจแแแแกแแแแแ แแ แ แแแฃแขแแชแแ. NSM แฃแแ แฃแแแแแงแแคแก, แ แแ แงแแแแ แแแแจแแ แ แแแจแแคแ แฃแแแ mTLS-แแก แแแแแงแแแแแแ, แแกแ แ แแ แแ แแ แกแแแแแก แกแแแกแแขแแฃแ แ แแแแแชแแแแแ, แ แแแแแแแช แจแแแซแแแแ แแแแแแ แแ แฐแแแแ แแแแ แฅแกแแแจแ. แฌแแแแแแก แแแแขแ แแแ แกแแจแฃแแแแแแก แแแซแแแแ แแแแงแแแแ แฌแแกแแแ แกแแ แแแกแแแแก แกแฎแแ แกแแ แแแกแแแแแ แแแแฃแแแแแชแแแกแแแแก.
- แแแซแ แแแแแก แแแ แแแ. แแแแแแแชแแแก แแฎแแแ แแแ แกแแแก แแแแแแแแแกแแก, แจแแแซแแแแ แแแแญแแ แแแ แจแแชแแแแแก แจแแแแฎแแแแแจแ แแแกแแ แจแแแแแแแแแ แขแ แแคแแแแก แจแแแฆแฃแแแแ. NSM-แแก แแแแขแแแแแ แแแแก แขแ แแคแแแแก แแแขแแแแฅแขแฃแแแฃแ แ แแแแแฏแแแแขแแ, แจแแแแซแแแแ แแแแงแแแแ แขแ แแคแแแแก แจแแแฆแฃแแแแก แแแแแขแแแ แแฎแแแ แกแแ แแแกแแแแกแแแแก, แ แแช แแแแ แแแก แขแ แแคแแแก แแ แแแ แแแแแแแแแแแจแ. แกแฎแแ แคแฃแแฅแชแแแแ, แ แแแแ แแชแแ แกแแฉแฅแแ แแก แจแแแฆแฃแแแ แแ แแแแแ แแแแแแแ, แแแซแแแแ แกแ แฃแ แแแแขแ แแแก แแฅแแแแ แงแแแแ แกแแ แแแกแแก แแแซแ แแแแแก แแแแแแแ.
- แแแแฃแแแแแแชแแ. แแแแกแแแแ แกแแ แแแกแแก แแแ แแแ แจแแแซแแแแ แแงแแก แแแแแ แแแแกแ แแ แแแแฃแแแแแแชแแแก แแแจแแแ แ. NSM แแฎแแแ แแแ แแแฃแแแแแแแแก แแ แกแแขแฃแแชแแแก แฉแแจแแแแแฃแแ Grafana แแแคแแก แกแแจแฃแแแแแแ, แ แแแแแแช แแฉแแแแแแก NGINX Plus-แจแ แแ แกแแแฃแ แงแแแแ แคแฃแแฅแชแแแก. แแกแแแ แแแแฎแแ แชแแแแแแฃแแ Open Tracing แกแแจแฃแแแแแแก แแแซแแแแ แแแขแแแฃแ แแ แแแแแขแ แแแแ แขแ แแแแแฅแชแแแแ.
- แฐแแแ แแแฃแแ แแแฌแแแแแ, แแฃ แแฅแแแแ แแแแแแแแ, แแกแแแ แ แแแแ แช แกแฎแแ แฃแแแขแแกแแแ, แแ แแงแแแแแก แแแคแ แแกแขแ แฃแฅแขแฃแ แแก, แ แแแแแแช แแฃแจแแแแก แแแแแแแแ Kubernetes-แแ. NSM แฃแแ แฃแแแแแงแแคแก, แ แแ แซแแแแ แแแแแแแชแแแแ แแ แแแ แฉแแก แฃแงแฃแ แแแฆแแแแ. แแแแแ แแแแ NGINX Kubernetes Ingress Controller-แแก แแแฎแแแ แแแแ, แแแซแแแแแแฃแแ แกแแ แแแกแแแ แจแแซแแแแแ แแแแฃแแแแแชแแแก mesh แกแแ แแแกแแแแแ แแ แแแ แแฅแแ.
NSM แแกแแแ แฃแแ แฃแแแแแงแแคแก แแแแแแแชแแแก แฃแกแแคแ แแฎแแแแแก แแฃแแแแแแ แกแแแแ แแแ แแแแจแ แแแจแแคแแ แแกแ แแ แแแแแแขแแคแแแแชแแแก แแแแญแแแ แแแแแ แแแแแงแแแแแแ แแแแขแแแแแ แแแแก แขแ แแคแแแแ. แแก แแกแแแ แฃแแ แฃแแแแแงแแคแก แขแ แแแแแฅแชแแแก แฎแแแแแแแแแก แแ แแแแแแแก, แแแฎแแแ แแแแ แกแฌแ แแคแแ แแ แแฃแกแขแแ แแแแฌแงแแ แแแแแแแแแ แแ แแ แแแแแแแแแก แแแแแแ แแแ. แแก แแกแแแ แฃแแ แฃแแแแแงแแคแก แขแ แแคแแแแก แแแ แชแแแแแแ แแแแขแ แแแก, แ แแช แกแแจแฃแแแแแแก แแซแแแแก DevOps แแฃแแแแแก แแแแแแแแกแแ แแ แแแขแแแแแแชแแ แแแฃแแแแแ แแแแแแแชแแแแแก แแแฌแแแแแก, แฎแแแ แแแแแแแแแ แแแก แกแแจแฃแแแแแแก แแซแแแแก แจแแฅแแแแ แแ แแแแแแแ แแแแแแแจแแ แแ แแแแแแแแ แแแแแฌแแแแแฃแแ แแแแแแแชแแแแ.
แ แแแแ แแฃแจแแแแก NGINX แกแแ แแแกแแก แแแแ?
NSM แจแแแแแแ แแแแแชแแแแ แแ แแแแแ แกแแแ แขแงแแกแแแ แฐแแ แแแแแขแแแฃแ แ (แแแแกแแฎแฃแ แแแแแแ แกแแ แแแกแแแแ) แขแ แแคแแแแกแแแแก แแ แฉแแจแแแแแฃแแ NGINX Plus Ingress แแแแขแ แแแแ แแกแแแ แแแ แขแแแแแฃแ แ แขแ แแคแแแแกแแแแก, แ แแแแแกแแช แแแ แแแแก แแ แแ แกแแแแแขแ แแแ แกแแแ แขแงแ.
แกแแแแแขแ แแแ แกแแแ แขแงแ แกแแแชแแแแฃแ แแ แจแแฅแแแแแแ แแ แแแขแแแแแแแฃแแแ NGINX Plus แแแแแชแแแแ แกแแแ แขแงแแกแแแแก แแ แแแแกแแแฆแแ แแแก แแแซแ แแแแแก แแแแขแ แแแแก แฌแแกแแแก, แ แแแแแแแช แแแฌแแแแแแ NGINX Plus แแแแ แแแแ แแแ แขแแแแ.
NSM-แจแ, sidecars proxies แแแแแแขแแแแแฃแแแ แฅแกแแแจแ แแ แกแแแฃแแ แแแแแแฃแแ แกแแ แแแกแแกแแแแก. แแกแแแ แฃแ แแแแ แแฅแแแแแแแ แจแแแแแ แฆแแ แแแแแก แแแแแฌแงแแแขแแแแแแแแแ:
- Grafana, แแ แแแแแแก แแแ แแแแขแ แแก แแแแฃแแแแแแชแแ, แฉแแจแแแแแฃแแ NSM แแแแแแ แแแฎแแแ แแแแ แแฃแจแแแแแจแ;
- Kubernetes Ingress Controllers, แฅแกแแแจแ แจแแแแแแแแแ แแ แแแแแแแแ แขแ แแคแแแแก แแแ แแแแกแแแแก;
- SPIRE, CA แกแแ แแแคแแแแขแแแแก แฅแกแแแจแ แแแ แแแแก, แแแแ แชแแแแแแกแ แแ แแแแแฎแแแแแกแแแแก;
- NATS, แแแกแจแขแแแแ แแแแแ แกแแกแขแแแ แจแแขแงแแแแแแแแแแก แแแกแแแแแแแแ, แ แแแแ แแชแแ แแแ แจแ แฃแขแแก แแแแแฎแแแแแแ, แกแแแแแขแ แแแ แแแแแแคแ แแแแแแแแ แแแแ แแแแ แแแ แแแแ;
- Open Tracing, แแแแแฌแแแแแฃแแ แแแแแ แแแ (Zipkin แแ Jaeger-แแก แแฎแแ แแแญแแ แ);
- แแ แแแแแ แแแ แแแแแก แแ แแแแฎแแแก แแแฎแแกแแแแแแแแแก NGINX Plus-แแก แแแแ แแแแ แแแ แแแแแแ, แ แแแแ แแชแแ แแแแฎแแแแแก แ แแแแแแแแ, แแแแจแแ แแแ แแ SSL แฎแแแแก แฉแแแแ แแแแแ.
แคแฃแแฅแชแแแแ แแ แแแแแแแแแขแแแ
NGINX Plus, แ แแแแ แช แแแแแชแแแแ แแแแแแคแ แแแแแ, แแแแชแแแก sidecar proxy-แก (แฐแแ แแแแแขแแแฃแ แ แขแ แแคแแแ) แแ Ingress แแแแขแ แแแแ แก (แแแ แขแแแแแฃแ แ), แ แแแแแแช แแแแแขแ แแแแแก แแ แแแ แแแแก แแแแขแแแแแ แแแแก แขแ แแคแแแก แกแแ แแแกแแแก แจแแ แแก.
แแแฎแแกแแแแแแแแแ แแแแชแแแก:
- แแ แแฎแ แแแ TLS (mTLS) แแแแแแขแแคแแแแชแแ;
- แฒแแขแแแ แแแแก แแแแแแแแกแแแ;
- แจแแชแแแแแก แขแแแแ แแแขแแแ;
- แกแแฉแฅแแ แแก แแแแแขแ;
- แแแแ แแกแฅแแแแก แแแฌแงแแแขแ;
- แแฃแ แฏแ-แแฌแแแแ แแ แแแแแ แแก แแแแแแแแแ;
- แฌแแแแแแก แแแแขแ แแแ.
แแแจแแแแ NGINX Service Mesh
NSM-แแก แแแกแแจแแแแแ แแญแแ แแแแแ:
- แแฃแแแ แแแขแแก แแแ แแแแแ แฌแแแแแ. NGINX Service Mesh แแฎแแ แแแญแแ แแแแ Kubernetes-แแก แแแแ แแแแขแคแแ แแแแ, แแแ แจแแ แแก Amazon Elastic Container Service for Kubernetes (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), VMware vSphere แแ แ แแแฃแแแ แฃแแ Kubernetes แแแแกแขแแ แแแ, แ แแแแแแแช แแแแแแแแแฃแแแ แแแแ แแขแฃแ แฃแ แกแแ แแแ แแแแ;
- Tool
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 แแ แแฅแกแแแแ แแแแแแขแแแ แแแแแแแชแแแแก แแแแฃแแแกแฎแแแแแ. แแแขแแแแขแฃแ แ แแแแแขแแแแก แแแแแ แแแแกแแแแก แฌแแแแแแฎแแ
แแแแแแแแแ, แแฃ แแแแแแแแแกแแแ แแแแแแแชแแแก แซแแแแก แกแแฎแแแแ แกแแแ แชแแจแ แแแกแขแ, แแ แจแแแแแ แจแแแแแฌแแแ 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 แแแแแแจแ, แแแฃแจแแแ แแก แแ แซแแแแแ แแฅแแแแ แแแแแแฃแ แ แแแแฅแแแแแแ แแแแ แแแแ แแแ แแ แฌแแแแแแกแแแแก:
$ kubectl port-forward sleep-674f75ff4d-gxjf2 8080:8886
แแแ แ แฃแแ แแแแ แจแแแแแแแ แ
แจแแแแซแแแแ แแแแแแงแแแแ Kubernetes-แแก แแแแแแแแฃแแแฃแ แ แ แแกแฃแ แกแแแ แขแ แแคแแแแก แแแแแขแแแแก แแแแคแแแฃแ แแชแแแกแแแแก, แ แแแแ แแชแแ แฌแแแแแแก แแแแขแ แแแ, แกแแฉแฅแแ แแก แจแแแฆแฃแแแ แแ แแแแ แแกแฅแแแแก แแแฌแงแแแขแ, แแแแกแแแแก แแฎ.
แแแกแแแแ
NGINX Service Mesh แฎแแแแแกแแฌแแแแแแ แฃแคแแกแ แฉแแแแขแแแ แแแแกแแแแก แแฅ
NGINX Plus Ingress Controller-แแก แกแแชแแแแแ, แแแแฅแขแแฃแ แแ
แแแ แแแแแ แแแแแแแแแก แแแแแแ แแก แแแแแ แแแแแแแแฉแแก แแแแ
แฌแงแแ แ: www.habr.com