รับบันทึกการเข้า Kubernetes สำหรับการดีบัก

Rab Banthuk Kar Khea Kubernetes Sahrab Kar Dibak



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

Kubernetes Ingress คืออะไร?

คำจำกัดความของทางเข้าคือ 'การเข้า' ในความหมายที่แท้จริง







ในชุมชน Kubernetes ก็เป็นความจริงเช่นกัน ทราฟฟิกที่เข้าสู่คลัสเตอร์จะเรียกว่าขาเข้า ในขณะที่ทราฟฟิกที่ออกจากคลัสเตอร์จะเรียกว่าขาออก




ในฐานะที่เป็นทรัพยากรดั้งเดิมของ Kubernetes ขาเข้าเปรียบได้กับพ็อด การปรับใช้ ฯลฯ คุณสามารถติดตามการกำหนดค่าการกำหนดเส้นทาง DNS ได้โดยใช้ขาเข้า ตัวควบคุมขาเข้าคือสิ่งที่ดำเนินการกำหนดเส้นทาง ทำได้โดยการอ่านกฎการกำหนดเส้นทางจากวัตถุขาเข้าที่จัดเก็บไว้ใน etcd หากไม่มี Kubernetes ingress คุณสามารถเปิดเผยแอปพลิเคชันสู่โลกภายนอกได้โดยการรวมบริการ Type Load Balancer ในการปรับใช้



Kubernetes Ingress ทำงานอย่างไร

มีสองสิ่งสำคัญที่คุณต้องชัดเจน เหล่านี้คือ:





ทรัพยากรขาเข้าของ Kubernetes

ทรัพยากรนี้มีหน้าที่ดูแลกฎการกำหนดเส้นทาง DNS ทั้งหมดในคลัสเตอร์ มีการระบุกฎการกำหนดเส้นทาง DNS ในทรัพยากร Kubernetes Ingress ซึ่งเป็นทรัพยากรดั้งเดิมของ Kubernetes กล่าวคือ คุณจับคู่การรับส่งข้อมูล DNS ภายนอกกับปลายทางบริการ Kubernetes ภายใน



ตัวควบคุม Kubernetes Ingress

การเข้าถึงกฎ DNS ที่ดำเนินการโดยทรัพยากรขาเข้า ตัวควบคุม Kubernetes ingress (Nginx/HAProxy ฯลฯ) จะรับผิดชอบการกำหนดเส้นทาง

การใช้งาน Ingress Controller นั้นไม่ได้มาจาก Kubernetes ด้วยเหตุนี้ จึงไม่สามารถเป็นค่าเริ่มต้นของคลัสเตอร์ได้

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

Ingress Controller คืออะไร?

โปรแกรมที่รันคลัสเตอร์ที่เรียกว่า Ingress Controller จะกำหนดค่า HTTP load balancer ตามทรัพยากร Ingress ตัวจัดสรรภาระงานอาจเป็นฮาร์ดแวร์ที่ใช้งานภายนอกหรือตัวจัดสรรภาระงานระบบคลาวด์ หรืออาจทำหน้าที่เป็นซอฟต์แวร์ภายในคลัสเตอร์ จำเป็นต้องใช้ Ingress Controller ที่แตกต่างกันสำหรับโหลดบาลานซ์ต่างๆ

เมื่อใช้ NGINX ตัวโหลดบาลานเซอร์และตัวควบคุมขาเข้าจะถูกปรับใช้ในพ็อด

โปรดทราบว่าต้องมีตัวควบคุมขาเข้าที่ใช้งานอยู่ในคลัสเตอร์เพื่อให้ทรัพยากร Ingress ทำงานได้

ตัวควบคุม Ingress ไม่ได้เปิดใช้งานโดยอัตโนมัติพร้อมกับคลัสเตอร์ ตรงกันข้ามกับตัวควบคุมประเภทอื่นๆ ที่ทำหน้าที่เป็นส่วนประกอบของไบนารี kube-controller-manager

ข้อกำหนดเบื้องต้น:

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

หากคุณยังไม่มีคลัสเตอร์ สามารถใช้ Minikube เพื่อสร้างคลัสเตอร์ได้ Minikube เป็น Kubernetes ท้องถิ่นที่มีเป้าหมายเพื่อให้การเรียนรู้และพัฒนา Kubernetes เป็นเรื่องง่าย

Kubernetes อาจเข้าถึงได้ด้วยคำสั่งเดียวหากคุณมีสภาพแวดล้อมเครื่องเสมือนหรือสภาพแวดล้อมคอนเทนเนอร์ Docker (หรือที่เข้ากันได้ในทำนองเดียวกัน) มาเริ่มกระบวนการทีละขั้นตอนกันเลย:

ขั้นตอนที่ 1: เริ่ม Minikube

เมื่อใช้เครื่องมือ minikube คุณสามารถเรียกใช้ Kubernetes ในเครื่องได้ Minikube เรียกใช้คลัสเตอร์ Kubernetes ภายในเครื่องแบบออลอินวันหรือหลายโหนดบนคอมพิวเตอร์ของคุณสำหรับงานพัฒนารายวันหรือเพื่อทดสอบ Kubernetes (รวมถึง Windows, Linux PC และ macOS) นี่คือคำสั่งเพื่อเริ่ม minikube:

> เริ่ม minikube



ขั้นตอนที่ 2: เปิดใช้งาน Ingress Controller

เราจะสาธิตวิธีเปิดใช้งานตัวควบคุม NGINX Ingress ในขั้นตอนนี้ ดำเนินการตามคำสั่งต่อไปนี้:

> ส่วนเสริมของ minikube เปิดใช้งาน ขาเข้า



ขั้นตอนที่ 3: ตรวจสอบว่า NGINX Ingress Controller ทำงานหรือไม่

ตอนนี้ สิ่งสำคัญคือต้องตรวจสอบว่าคอนโทรลเลอร์ NGINX ทำงานอยู่หรือไม่ สามารถใช้คำสั่งต่อไปนี้เพื่อยืนยันว่า:

> kubectl รับพ็อด -น ทางเข้า nginx



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

ขั้นตอนที่ 4: สร้างแอป Hello World

ที่นี่ เราใช้คำสั่งต่อไปนี้เพื่อสร้างการปรับใช้:

> kubectl สร้างเว็บการปรับใช้ --ภาพ =gcr.io / Google-ตัวอย่าง / สวัสดีแอป: 1.0



คำสั่งที่ดำเนินการและผลลัพธ์แนบอยู่ในรูปภาพก่อนหน้า ในเอาต์พุต สามารถมองเห็น “hello-app” ได้

ขั้นตอนที่ 5: เปิดเผยการปรับใช้

ตอนนี้ เราจะแสดงคำสั่งเพื่อแสดงการปรับใช้เฉพาะ มีการกล่าวถึงคำสั่งดังนี้:

> kubectl เปิดเผยการปรับใช้ Kalsoom  - -พิมพ์ =โหนดพอร์ต --ท่า = 8080



คุณสามารถดูเอาต์พุต “บริการ/kalsoom ที่เปิดเผย” ในภาพก่อนหน้า

ขั้นตอนที่ 6: เยี่ยมชมบริการผ่าน NodePort

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

> บริการ minikube Kalsoom --url



มีการแนบคำสั่งพร้อมกับเอาต์พุตในภาพก่อนหน้า

ตอนนี้ ที่อยู่ IP ของ Minikube และ NodePort ทำให้การดูแอปตัวอย่างเป็นเรื่องง่าย คุณสามารถใช้ทรัพยากร Ingress เพื่อเข้าถึงแอปได้ในขั้นตอนต่อไปนี้

ขั้นตอนที่ 7: สร้างทางเข้า

ที่นี่ เราสร้าง Ingress ที่ส่งทราฟฟิกไปยังบริการของคุณ มีการกล่าวถึงคำสั่งดังนี้:

> kubectl ใช้ -ฉ https: // k8s.io / ตัวอย่าง / บริการ / เครือข่าย / ตัวอย่าง ingress.yaml



อย่างที่คุณเห็น คำสั่งดำเนินการสำเร็จ

ขั้นตอนที่ 8: ตรวจสอบที่อยู่ IP

เราตรวจสอบว่ามีการตั้งค่าที่อยู่ IP หรือไม่ เราใช้คำสั่งที่กำหนดต่อไปนี้:

> kubectl รับเข้า



ในผลลัพธ์ คุณควรเห็นที่อยู่ IPv4 ในคอลัมน์ ADDRESS

บทสรุป

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