มีเครือข่ายบริการ NGINX

มีเครือข่ายบริการ NGINX

เรามีความยินดีที่จะนำเสนอเวอร์ชันตัวอย่าง ตาข่ายบริการ NGINX (NSM) ซึ่งเป็น Service Mesh แบบรวมน้ำหนักเบาที่ใช้ Data Plane ที่ใช้ NGINX Plus เพื่อจัดการการรับส่งข้อมูลคอนเทนเนอร์ในสภาพแวดล้อม Kubernetes

กสทช. ฟรี ดาวน์โหลดได้ที่นี่. เราหวังว่าคุณจะลองใช้กับสภาพแวดล้อมการพัฒนาและการทดสอบ - และหวังว่าจะได้รับคำติชมจากคุณ บน GitHub.

การนำวิธีการไมโครเซอร์วิสไปใช้นั้นเต็มไปด้วยความยากลำบาก เนื่องจากขนาดของการส่งมอบเติบโตขึ้น รวมถึงความซับซ้อนด้วย การสื่อสารระหว่างบริการมีความซับซ้อนมากขึ้น ปัญหาการดีบักจะยากขึ้น และบริการมากขึ้นเรื่อยๆ ต้องการทรัพยากรในการจัดการมากขึ้น

NSM แก้ไขปัญหาเหล่านี้โดยมอบ:

  • ความปลอดภัยซึ่งตอนนี้มีความสำคัญมากกว่าที่เคย การละเมิดข้อมูลอาจทำให้บริษัทสูญเสียรายได้และชื่อเสียงหลายล้านดอลลาร์ต่อปี NSM ตรวจสอบให้แน่ใจว่าการเชื่อมต่อทั้งหมดได้รับการเข้ารหัสโดยใช้ mTLS ดังนั้นจึงไม่มีข้อมูลที่ละเอียดอ่อนที่แฮกเกอร์สามารถขโมยผ่านเครือข่ายได้ การควบคุมการเข้าถึงช่วยให้คุณกำหนดนโยบายสำหรับวิธีที่บริการสื่อสารกับบริการอื่นๆ
  • การจัดการจราจร. เมื่อจัดส่งแอปพลิเคชันเวอร์ชันใหม่ คุณอาจต้องการเริ่มต้นด้วยการจำกัดการรับส่งข้อมูลขาเข้าในกรณีที่เกิดข้อผิดพลาด ด้วยการจัดการการรับส่งข้อมูลคอนเทนเนอร์อัจฉริยะของ NSM คุณสามารถกำหนดนโยบายการจำกัดการรับส่งข้อมูลสำหรับบริการใหม่ๆ ที่จะเพิ่มการรับส่งข้อมูลเมื่อเวลาผ่านไป คุณสมบัติอื่นๆ เช่น การจำกัดความเร็วและเซอร์กิตเบรกเกอร์ ช่วยให้คุณควบคุมการรับส่งข้อมูลของบริการทั้งหมดของคุณได้อย่างเต็มที่
  • การแสดง. การจัดการบริการหลายพันรายการอาจเป็นฝันร้ายในการแก้ไขจุดบกพร่องและการแสดงภาพข้อมูล NSM ช่วยจัดการกับสถานการณ์นี้ด้วยแดชบอร์ด Grafana ในตัวที่แสดงคุณสมบัติทั้งหมดที่มีอยู่ใน NGINX Plus และยังมี Open Tracing ที่นำมาใช้ทำให้คุณสามารถตรวจสอบธุรกรรมได้อย่างละเอียด
  • การส่งมอบแบบไฮบริดหากบริษัทของคุณไม่ได้ใช้โครงสร้างพื้นฐานที่ทำงานบน Kubernetes ทั้งหมด เช่นเดียวกับบริษัทอื่นๆ ส่วนใหญ่ NSM ช่วยให้มั่นใจได้ว่าแอปพลิเคชันรุ่นเก่าจะไม่ถูกทิ้งไว้โดยไม่มีใครดูแล ด้วยความช่วยเหลือของ NGINX Kubernetes Ingress Controller ที่นำมาใช้ บริการแบบเดิมจะสามารถสื่อสารกับบริการแบบ mesh และในทางกลับกัน

NSM ยังรับประกันความปลอดภัยของแอปพลิเคชันในสภาพแวดล้อมที่น่าเชื่อถือเป็นศูนย์โดยการใช้การเข้ารหัสและการรับรองความถูกต้องอย่างโปร่งใสกับการรับส่งข้อมูลคอนเทนเนอร์ นอกจากนี้ยังให้การมองเห็นและการวิเคราะห์ธุรกรรม ช่วยให้คุณเปิดใช้งานการปรับใช้และแก้ไขปัญหาได้อย่างรวดเร็วและแม่นยำ นอกจากนี้ยังให้การควบคุมการรับส่งข้อมูลแบบละเอียด ช่วยให้ทีม DevOps สามารถปรับใช้และเพิ่มประสิทธิภาพบางส่วนของแอปพลิเคชัน ในขณะเดียวกันก็ช่วยให้นักพัฒนาสามารถสร้างและเชื่อมต่อแอปพลิเคชันแบบกระจายได้อย่างง่ายดาย

NGINX Service Mesh ทำงานอย่างไร

NSM ประกอบด้วย Data Plane แบบรวมสำหรับการรับส่งข้อมูลแนวนอน (บริการต่อบริการ) และ NGINX Plus Ingress Controller แบบฝังสำหรับการรับส่งข้อมูลแนวตั้ง ซึ่งจัดการโดย Control Plane เดียว

ส่วนควบคุมได้รับการออกแบบมาโดยเฉพาะและปรับให้เหมาะสมสำหรับส่วนข้อมูล NGINX Plus และกำหนดกฎการควบคุมการรับส่งข้อมูลที่กระจายไปทั่วรถเทียมข้างรถจักรยานยนต์ NGINX Plus

ใน NSM จะมีการติดตั้งพร็อกซีไซด์คาร์สำหรับแต่ละบริการในเมช พวกเขาเชื่อมต่อกับโซลูชั่นโอเพ่นซอร์สต่อไปนี้:

  • Grafana การแสดงภาพพารามิเตอร์ Prometheus แผง NSM ในตัวช่วยคุณในการทำงานของคุณ
  • ตัวควบคุม Ingress ของ Kubernetes สำหรับจัดการการรับส่งข้อมูลขาเข้าและขาออกในตาข่าย
  • SPIRE, CA สำหรับการจัดการ แจกจ่าย และอัปเดตใบรับรองในตาข่าย
  • NATS ซึ่งเป็นระบบที่ปรับขนาดได้สำหรับการส่งข้อความ เช่น การอัพเดตเส้นทาง จากระนาบควบคุมไปจนถึงไซด์คาร์
  • Open Tracing การดีบักแบบกระจาย (รองรับ Zipkin และ Jaeger)
  • Prometheus รวบรวมและจัดเก็บคุณลักษณะจาก Sidecar ของ NGINX Plus เช่น จำนวนคำขอ การเชื่อมต่อ และการจับมือ SSL

ฟังก์ชั่นและส่วนประกอบ

NGINX Plus เป็นระนาบข้อมูลครอบคลุมพร็อกซีไซด์คาร์ (การรับส่งข้อมูลแนวนอน) และตัวควบคุม Ingress (แนวตั้ง) การสกัดกั้นและการจัดการการรับส่งข้อมูลคอนเทนเนอร์ระหว่างบริการ

คุณสมบัติได้แก่:

  • การรับรองความถูกต้องร่วมกัน TLS (mTLS);
  • โหลดบาลานซ์;
  • ความทนทานต่อความผิดพลาด
  • จำกัด ความเร็ว;
  • วงจรแตก;
  • การปรับใช้สีน้ำเงินเขียวและนกขมิ้น
  • การควบคุมการเข้าถึง.

เปิดตัวบริการ NGINX Service Mesh

หากต้องการเรียกใช้ NSM คุณต้องมี:

  • เข้าถึงสภาพแวดล้อม Kubernetes NGINX Service Mesh ได้รับการสนับสนุนบนแพลตฟอร์ม Kubernetes จำนวนมาก รวมถึง Amazon Elastic Container Service สำหรับ 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 จะถูกเพิ่มลงในแอปพลิเคชันตามค่าเริ่มต้น หากต้องการปิดใช้งานการเพิ่มอัตโนมัติ โปรดอ่าน ที่นี่

เช่น ถ้าเราปรับใช้แอปพลิเคชัน นอนหลับ ในเนมสเปซ ผิดนัดจากนั้นตรวจสอบ 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

จากนั้นเราก็เข้าไป ที่นี่ ในเบราว์เซอร์ คุณยังสามารถเชื่อมต่อกับ Prometheus เพื่อตรวจสอบแอปพลิเคชันได้ นอนหลับ.

คุณสามารถใช้ทรัพยากร Kubernetes แต่ละรายการเพื่อกำหนดค่านโยบายการรับส่งข้อมูล เช่น การควบคุมการเข้าถึง การจำกัดอัตรา และการตัดวงจร โปรดดูสิ่งนี้ เอกสาร

ข้อสรุป

NGINX Service Mesh สามารถดาวน์โหลดได้ฟรีที่ พอร์ทัล F5. ลองใช้ในสภาพแวดล้อมการพัฒนาและทดสอบของคุณและ เขียนถึงเราเกี่ยวกับผลลัพธ์.

หากต้องการลองใช้ NGINX Plus Ingress Controller ให้เปิดใช้งาน ช่วงทดลองใช้ฟรี เป็นเวลา 30 วัน หรือ ติดต่อเรา เพื่อหารือเกี่ยวกับกรณีการใช้งานของคุณ

แปลโดย Pavel Demkovich วิศวกรบริษัท Southbridge. การดูแลระบบในราคา 15 รูเบิลต่อเดือน และเป็นแผนกแยก-ศูนย์ฝึกอบรม สเลมฝึกฝนและไม่มีอะไรนอกจากการฝึกฝน

ที่มา: will.com

เพิ่มความคิดเห็น