Nginx Plus
Nginx Plus คืออะไร
เอกสารที่เกี่ยวข้อง

คือแพ็คเก็จระดับ enterprise grade ที่มีความสามารถทุกอย่างที่ Nginx open source ทำได้ อีกทั้งยังมีฟีเจอร์หลักที่ช่วยให้ระบบมี High Availability (HA) ที่ทั้ง ปรับขยายได้ (scalable) และ เชื่อถือได้ (reliable) พร้อมเครื่องมือสำหรับ Monitoring เพื่อช่วย debug และ วิเคราะห์ปัญหา ในสถาปัตยกรรมแอปพลิเคชันที่ซับซ้อน
Advanced security ลดความเสี่ยงด้านความปลอดภัยด้วยฟีเจอร์ ดังนี้
request and connection limiting เพื่อป้องกันปัญหา overload, abuse, หรือ DoS attack
รองรับ protocol TLS1.3
สามารถทำ dynamic certificate loading ได้ คือความสามารถที่ NGINX Plus สามารถ โหลดหรืออัปเดต SSL/TLS certificates ได้แบบไดนามิก (ขณะรันอยู่) โดย ไม่ต้อง reload หรือ restart NGINX process
มีการใช้ JWT authentication
Best-of-breed support มี assistance support สำหรับการช่วยเหลือ
installation and deployment
debugging and error correction
security notifications
software updates
Load balancer ที่ชาญฉลาด
รองรับระบบขนาดใหญ่ (High scale) สำหรับ HTTP, TCP, UDP traffic
มีการรองรับ Load Balancing Algorithms ที่หลากหลาย
API gateway เป็นตัวกลางหรือ entry point ระหว่าง client กับ backend services หรือ microservices
มีการทำ edge gateway with TLS termination และ rate limiting
สามารถทำ request routing เพื่อกำหนดเส้นทาง route ของ request ว่าจะส่งไปยัง service backend ใด
สามารถทำ request manipulation เพื่อปรับแต่ง request/response ให้ตรงตามเงื่อนไขหรือ policy
Reverse proxy คือเซิร์ฟเวอร์กลางที่ รับ request จาก client แล้วส่งต่อไปยัง backend server
Session persistence
caching
multiple algorithms to maximize speed and capacity for resiliency and scale
ขั้นตอนการติดตั้ง NGINX Plus Ingress Controller บน Kubernetes ด้วย Helm
ขั้นตอนการติดตั้ง NGINX Plus Ingress Controller บน Kubernetes Cluster โดยใช้ Helm Chart และค่า config ที่จำเป็น เอกสารที่เกี่ยวข้อง
ขั้นตอนที่ 1 เตรียมข้อมูลยืนยันตัวตน (Authentication)
เริ่มต้นต้องสร้าง Kubernetes Secret เพื่อให้ Cluster สามารถยืนยันตัวตนและ pull image ของ NGINX Plus จาก Private Registry ของ NGINX ได้
รับ Certificate/Key หรือ JWT Token เข้าสู่ระบบที่ my.f5.com เพื่อดาวน์โหลดไฟล์
nginx-repo.crtและnginx-repo.keyหรือคัดลอก JWT token สำหรับ Docker Registryสร้าง Kubernetes Secret: รันคำสั่ง
kubectlเพื่อสร้างdocker-registrysecret ใน namespace ที่ต้องการ (ตัวอย่างนี้ใช้nginx-ingress)
Note: หากยังไม่มี namespace
nginx-ingressคุณสามารถสร้างก่อนด้วยคำสั่งkubectl create namespace nginx-ingressหรือใช้ flag--create-namespaceในขั้นตอนการติดตั้ง Helm
ขั้นตอนที่ 2 เตรียมไฟล์คอนฟิกสำหรับ Helm (values.yaml)
เราจะใช้ Helm Chart อย่างเป็นทางการของ NGINX และทำการ override ค่าคอนฟิกบางส่วนเพื่อให้ชี้ไปยัง NGINX Plus
เพิ่ม NGINX Helm repository: หากยังไม่เคยเพิ่ม ให้รันคำสั่งต่อไปนี้
สร้างไฟล์
values.yaml****: สร้างไฟล์ใหม่ชื่อvalues.yamlและใส่เนื้อหาดังนี้เพื่อเปิดใช้งาน NGINX Plus และระบุ Image ที่ถูกต้อง
ขั้นตอนที่ 3 ติดตั้งด้วย Helm
เมื่อเตรียม Secret และไฟล์ values.yaml เรียบร้อยแล้ว ก็สามารถติดตั้ง NGINX Plus Ingress Controller ได้ด้วยคำสั่ง helm install
nginx-ingress-my-releaseคือชื่อ release ที่คุณตั้งเองnginx-ingress/nginx-ingressคือ[repo/chart]--versionช่วยให้แน่ใจว่าใช้เวอร์ชันที่ต้องการ--valuesหรือ-fใช้กำหนดไฟล์ค่า override หลังจากรันคำสั่งนี้สำเร็จ NGINX Plus Ingress Controller จะถูกติดตั้งและพร้อมใช้งานใน Kubernetes Cluster ของคุณโดยจะได้เป็น service type loadbalancer โดย default
Last updated