วิธีใช้ Kubernetes Ingress API

Kubernetes กำลังมองเห็นการนำไปใช้ในอุตสาหกรรมเทคโนโลยีและอยู่ในเส้นทางที่จะกลายเป็นแพลตฟอร์มการประสานงานโดยพฤตินัยสำหรับการให้บริการคลาวด์สมัยใหม่ Kubernetes ไม่เพียง แต่มีพื้นฐานสำหรับการปรับใช้ไมโครเซอร์วิสในระบบคลาวด์เท่านั้น แต่ยังก้าวไปอีกขั้นช่วยนักพัฒนาในการกำหนดการโต้ตอบและจัดการวงจรชีวิตสำหรับ API ของพวกเขา 

Ingress API ใน Kubernetes ช่วยให้คุณเปิดเผยไมโครเซอร์วิสของคุณสู่โลกภายนอกและกำหนดนโยบายการกำหนดเส้นทางสำหรับการรับส่งข้อมูลเหนือ - ใต้ของคุณเช่นปริมาณการใช้งานที่เข้ามาในศูนย์ข้อมูลเสมือนของคุณ 

ประโยชน์ของการจัดการวงจรชีวิตของ API โดยใช้การผสานรวมอย่างต่อเนื่องและการจัดส่งแบบต่อเนื่อง (CI / CD) ไปป์ไลน์กับ Ingress นั้นมีมากมาย แต่ก่อนที่เราจะกล่าวถึงเรื่องนี้เรามาเริ่มต้นด้วยความรู้พื้นฐาน

การออกแบบและวัตถุประสงค์ของทรัพยากร Ingress

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

ทรัพยากร Ingress จะแสดงเส้นทาง HTTP และ HTTPS จากภายนอกคลัสเตอร์ไปยังบริการที่เลือกภายใน ทรัพยากร Ingress ยังมีกฎในการควบคุมการรับส่งข้อมูล สิ่งนี้ทำให้ทรัพยากร Ingress เป็นโซลูชันที่ยอดเยี่ยมสำหรับการจัดการ API ต่างๆที่มีให้โดยบริการส่วนบุคคลจำนวนมาก โดยให้จุดเข้าใช้งานเดียวสำหรับลูกค้าทั้งหมดจากนั้นจัดการคำขอไปยังบริการส่วนหลัง สิ่งนี้เรียกกันทั่วไปว่าการกำหนดค่า fanout

กง

นอกจากนี้ทรัพยากร Ingress ยังสามารถตั้งค่าสำหรับโฮสติ้งเสมือนตามชื่อซึ่งจะกำหนดเส้นทางคำขอตามส่วนหัวของโฮสต์:

กง

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

ประโยชน์ของการใช้ Ingress เพื่อจัดการวงจรชีวิต API โดยใช้ไปป์ไลน์ CI / CD

ทรัพยากร Ingress ถูกกำหนดผ่านไฟล์คอนฟิกูเรชันที่เปิดเผยซึ่งโดยปกติจะอธิบายไว้ใน YAML สิ่งนี้สอดคล้องกับทรัพยากร Kubernetes ทั้งหมดและช่วยให้สามารถรวมเข้ากับรูปแบบการปรับใช้สมัยใหม่ได้อย่างตรงไปตรงมาเช่นการปฏิบัติร่วมกันของ CI / CD สิ่งที่ได้รับคือความสามารถในการปรับใช้ Ingress การเปลี่ยนแปลงที่รวดเร็วบ่อยครั้งและปลอดภัย ด้วยวิธีนี้ทรัพยากร Ingress สามารถรวมอยู่ในรูปแบบวงจรการพัฒนาซอฟต์แวร์ประเภทเดียวกับแอปพลิเคชัน

วิธีที่นักพัฒนาสามารถบรรลุ Ingress โดยใช้ Kong สำหรับ Kubernetes

แหล่งที่มาเปิดที่นิยมและเมฆที่ไม่เชื่อเรื่องพระเจ้าควบคุม Ingress คือฮ่องกงสำหรับ Kubernetes Kong สำหรับ Kubernetes Ingress Controller ถูกสร้างขึ้นเป็นข้อกำหนดทรัพยากรที่กำหนดเอง (CRD) ภายใน Kubernetes สิ่งนี้จะสร้างประสบการณ์ใช้งาน Kubernetes สำหรับผู้ที่คุ้นเคยกับการกำหนดทรัพยากรภายในแพลตฟอร์มนี้อยู่แล้ว

เช่นเดียวกับแอปและบริการของคุณคุณสามารถติดตั้ง Kong for Kubernetes ผ่าน Manifest, Helm หรือ Kustomize ได้

Kong สำหรับ Kubernetes Ingress Controller ขยายขีดความสามารถของทรัพยากร Ingress โดยจัดเตรียมชุดปลั๊กอินที่ครอบคลุมความสามารถที่หลากหลายรวมถึงการพิสูจน์ตัวตนการวิเคราะห์การตรวจสอบและการแปลงคำขอและการตอบสนอง Kong สำหรับ Kubernetes ช่วยให้นักพัฒนาสามารถให้ความสำคัญกับข้อกำหนดหลักของบริการได้มากขึ้น (และบางครั้งก็ไม่ธรรมดา) ด้วยการให้ข้อกำหนดทั่วไปเหล่านี้ คุณค่าของสิ่งนี้จะปรากฏชัดเจนโดยเฉพาะอย่างยิ่งเมื่อองค์กรย้ายจากแอปพลิเคชันเสาหินจำนวนหนึ่งไปยังไมโครเซอร์วิสหลายร้อยหรือไม่นับพัน

สำหรับรายการปลั๊กอินทั่วไปโปรดดูที่ //docs.konghq.com/hub/

ปลั๊กอิน Kong ถูกกำหนดให้เป็นทรัพยากร Kubernetes โดยที่ส่วนการกำหนดค่าจัดเตรียมไว้สำหรับการตั้งค่าของแต่ละปลั๊กอิน

ด้านล่างนี้เป็นตัวอย่างของปลั๊กอิน จำกัด อัตราซึ่งจะ จำกัด การเข้าชมไว้ที่ห้าคำขอต่อนาที:

กง

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

นี่คือตัวอย่างของปลั๊กอินด้านบนที่ใช้กับทรัพยากร Ingress:

กง

Kong สำหรับ Kubernetes ยังสามารถรวมเข้ากับชุดผลิตภัณฑ์ Kong Enterprise ได้อย่างสมบูรณ์เช่น Kong Studio, Kong Dev Portal, Kong Manager, Kong Brain และ Kong Immunity ซึ่งช่วยให้สามารถใช้ปลั๊กอิน Kong ขั้นสูงได้มากขึ้นรวมถึงโซลูชันวงจรชีวิต API แบบเต็ม ชุดผลิตภัณฑ์นี้ครอบคลุมการสร้างและเผยแพร่ข้อกำหนด API ตลอดจนการจัดการทรัพยากร Kong ของคุณและแม้กระทั่งการวิเคราะห์ปริมาณการใช้งาน

คุณสามารถใช้แนวทาง "spec-first" ในการพัฒนา API ของคุณโดยใช้ Kong Studio ซึ่งคุณจะพบเครื่องมือสำหรับการเขียนเอกสารในข้อกำหนดมาตรฐาน OpenAPI พร้อมกับเครื่องมือทดสอบเพื่อรับความคิดเห็นได้ทันที Kong Studio ยังมีเครื่องมือสำหรับการทำงานกับ GraphQL Kong Studio จะซิงค์โดยตรงกับ Git ซึ่งช่วยให้ไฟล์ข้อมูลจำเพาะของคุณถูกรวมเข้ากับเวิร์กโฟลว์ CI / CD ที่สามารถอัปเดตอัตโนมัติไปยัง Kong Dev Portal

Kong Dev Portal โฮสต์เอกสาร API ของคุณ (ซึ่งอาจเป็นแบบส่วนตัวหรือสาธารณะก็ได้) สามารถปรับแต่งได้อย่างมากทำให้คุณสามารถปรับแต่งให้เข้ากับรูปแบบและตราสินค้าขององค์กรของคุณได้ การมี API ที่มีการจัดทำเอกสารอย่างดีเป็นสิ่งสำคัญสำหรับการเพิ่มผลผลิตและการมีขั้นตอนการจัดการที่ดีระหว่าง Kong Studio และ Dev Portal จะช่วยให้มั่นใจได้ว่าเอกสารประกอบจะเป็นปัจจุบันมากที่สุด

Kong Manager มีอินเทอร์เฟซแบบกราฟิกเพื่อสังเกตและจัดการชุดผลิตภัณฑ์ Kong โดยรวม จากที่นี่คุณสามารถสังเกตความสัมพันธ์ระหว่างเส้นทางบริการและปลั๊กอินของคุณได้ คุณสามารถติดตามการเข้าชมแบบเรียลไทม์และติดตามผู้บริโภคของคุณได้

Kong Brain วิเคราะห์การรับส่งข้อมูลที่มาจาก Ingress และสร้างแผนที่บริการภาพของการอ้างอิงระหว่างบริการ นอกจากนี้ยังมีความสามารถในการสร้างเอกสารข้อมูลจำเพาะของ OpenAPI โดยอัตโนมัติตามแผนที่ที่สร้างขึ้น นี่เป็นคุณสมบัติที่มีคุณค่าแม้ว่าจะมีเจตนาดีที่สุด แต่บริการที่นำไปใช้อาจไม่ได้รับการจัดทำเป็นเอกสารอย่างถูกต้อง 

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

กง

ใช้ประโยชน์สูงสุดจาก Ingress

ทรัพยากร Kubernetes Ingress ให้จุดเข้าเพียงจุดเดียวจากภายนอก Kubernetes ไปยังบริการส่วนหลังภายใน ด้วยการใช้ประโยชน์จากไฟล์คำจำกัดความที่เปิดเผยทรัพยากร Ingress สามารถได้รับการปฏิบัติเช่นเดียวกับโค้ดรูปแบบอื่น ๆ ทั้งหมดและรวมเข้ากับวงจรการพัฒนาซอฟต์แวร์ทั่วไป

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

Marco Palladino นักประดิษฐ์นักพัฒนาซอฟต์แวร์และผู้ประกอบการอินเทอร์เน็ตในซานฟรานซิสโกเป็น CTO และผู้ร่วมก่อตั้งKong Inc.

-

New Tech Forum เป็นสถานที่สำหรับสำรวจและพูดคุยเกี่ยวกับเทคโนโลยีสำหรับองค์กรที่เกิดขึ้นใหม่ในเชิงลึกและเชิงกว้างที่ไม่เคยมีมาก่อน การเลือกเป็นเรื่องส่วนตัวขึ้นอยู่กับการเลือกใช้เทคโนโลยีที่เราเชื่อว่ามีความสำคัญและเป็นที่สนใจของผู้อ่านมากที่สุด ไม่ยอมรับหลักประกันทางการตลาดสำหรับการตีพิมพ์และขอสงวนสิทธิ์ในการแก้ไขเนื้อหาที่มีส่วนร่วมทั้งหมด ส่งคำถามทั้งหมดไปที่ [email protected]