เครื่องมือสำหรับนักพัฒนาแอปพลิเคชันที่ทำงานบน Kubernetes

เครื่องมือสำหรับนักพัฒนาแอปพลิเคชันที่ทำงานบน Kubernetes

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

การตรวจสอบนี้ให้ข้อมูลโดยย่อเกี่ยวกับเครื่องมือบางอย่างที่ทำให้ชีวิตง่ายขึ้นสำหรับโปรแกรมเมอร์ที่มีโค้ดทำงานใน pod'ax ของคลัสเตอร์ Kubernetes

ตัวช่วยง่ายๆ

Kubectl-ดีบัก

  • สาระการเรียนรู้แกนกลาง: เพิ่มคอนเทนเนอร์ของคุณลงในพ็อดแล้วดูว่าเกิดอะไรขึ้นในนั้น.
  • GitHub.
  • สถิติ GH โดยย่อ: 715 ดาว, 54 คอมมิต, ผู้ร่วมให้ข้อมูล 9 คน
  • ภาษา: ไป.
  • ใบอนุญาต: ใบอนุญาต Apache 2.0

ปลั๊กอินสำหรับ kubectl นี้ช่วยให้คุณสร้างคอนเทนเนอร์เพิ่มเติมภายในพ็อดที่สนใจได้ ซึ่งจะแชร์เนมสเปซกระบวนการกับคอนเทนเนอร์อื่นๆ ในนั้นคุณสามารถดีบักการทำงานของพ็อดได้: ตรวจสอบเครือข่าย, ฟังการรับส่งข้อมูลเครือข่าย, ติดตามกระบวนการที่สนใจ ฯลฯ

คุณยังสามารถสลับไปยังคอนเทนเนอร์กระบวนการได้ด้วยการรัน chroot /proc/PID/root - สะดวกมากเมื่อคุณต้องการรูทเชลล์ในคอนเทนเนอร์ที่ตั้งค่าไว้ในไฟล์ Manifest securityContext.runAs.

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

ทางไกล

  • สาระการเรียนรู้แกนกลาง: ถ่ายโอนแอปพลิเคชันไปยังคอมพิวเตอร์ของคุณ พัฒนาและแก้ไขจุดบกพร่องในเครื่อง.
  • เว็บไซต์; GitHub.
  • สถิติ GH โดยย่อ: 2131 ดาว, 2712 คอมมิต, ผู้ร่วมให้ข้อมูล 33 คน
  • ภาษา: หลาม
  • ใบอนุญาต: ใบอนุญาต Apache 2.0

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

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

เราได้แบ่งปันประสบการณ์ในการใช้ Telepresence แล้ว ที่นี่.

เคซิงค์

  • สาระการเรียนรู้แกนกลาง: การซิงโครไนซ์โค้ดกับคอนเทนเนอร์ในคลัสเตอร์แทบจะทันที.
  • GitHub.
  • สถิติ GH โดยย่อ: 555 ดาว, 362 คอมมิต, ผู้ร่วมให้ข้อมูล 11 คน
  • ภาษา: ไป.
  • ใบอนุญาต: ใบอนุญาต Apache 2.0

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

เมื่อเริ่มต้นหนึ่งครั้งด้วยคำสั่ง ksync init DaemonSet ถูกสร้างขึ้นในคลัสเตอร์ ซึ่งใช้ในการตรวจสอบสถานะของระบบไฟล์ของคอนเทนเนอร์ที่เลือก บนเครื่องคอมพิวเตอร์ของเขา นักพัฒนาจะรันคำสั่ง ksync watchซึ่งจะตรวจสอบการกำหนดค่าและดำเนินการ syncthingซึ่งซิงโครไนซ์ไฟล์กับคลัสเตอร์โดยตรง

สิ่งที่เหลืออยู่คือสั่ง ksync ว่าจะซิงโครไนซ์กับอะไร ตัวอย่างเช่น คำสั่งนี้:

ksync create --name=myproject --namespace=test --selector=app=backend --container=php --reload=false /home/user/myproject/ /var/www/myproject/

...จะสร้างผู้เฝ้าชื่อว่า myprojectซึ่งจะค้นหาพ็อดที่มีป้ายกำกับ app=backend และพยายามซิงโครไนซ์ไดเร็กทอรีในเครื่อง /home/user/myproject/ พร้อมแค็ตตาล็อก /var/www/myproject/ ที่ภาชนะที่เรียกว่า php.

ปัญหาและหมายเหตุเกี่ยวกับ ksync จากประสบการณ์ของเรา:

  • ต้องใช้บนโหนดคลัสเตอร์ Kubernetes overlay2 เป็นไดรเวอร์การจัดเก็บข้อมูลสำหรับ Docker ยูทิลิตี้นี้จะไม่ทำงานร่วมกับผู้อื่น
  • เมื่อใช้ Windows เป็นระบบปฏิบัติการไคลเอนต์ ตัวเฝ้าดูระบบไฟล์อาจทำงานไม่ถูกต้อง ข้อผิดพลาดนี้ถูกพบเมื่อทำงานกับไดเร็กทอรีขนาดใหญ่ - โดยมีไฟล์และไดเร็กทอรีที่ซ้อนกันจำนวนมาก เราสร้าง ปัญหาที่เกี่ยวข้อง ในโครงการซิงค์แต่ยังไม่มีความคืบหน้า (ตั้งแต่ต้น ก.ค.)
  • ใช้ไฟล์ .stignore เพื่อระบุเส้นทางหรือรูปแบบไฟล์ที่ไม่จำเป็นต้องซิงโครไนซ์ (เช่น directory app/cache и .git).
  • ตามค่าเริ่มต้น ksync จะรีสตาร์ทคอนเทนเนอร์ทุกครั้งที่ไฟล์มีการเปลี่ยนแปลง สำหรับ Node.js สิ่งนี้สะดวก แต่สำหรับ PHP นั้นไม่จำเป็นเลย จะดีกว่าถ้าปิด opcache และใช้แฟล็ก --reload=false.
  • การกำหนดค่าสามารถแก้ไขได้เสมอ $HOME/.ksync/ksync.yaml.

สควอช

  • สาระการเรียนรู้แกนกลาง: ดีบักกระบวนการโดยตรงในคลัสเตอร์.
  • GitHub.
  • สถิติ GH โดยย่อ: 1154 ดาว, 279 คอมมิต, ผู้ร่วมให้ข้อมูล 23 คน
  • ภาษา: ไป.
  • ใบอนุญาต: ใบอนุญาต Apache 2.0

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

  • เจาะลึก - สำหรับแอปพลิเคชัน Go;
  • GDB - ผ่านการส่งต่อเป้าหมายระยะไกล + พอร์ต
  • การส่งต่อพอร์ต JDWP สำหรับการดีบักแอปพลิเคชัน Java

ในด้าน IDE การสนับสนุนมีเฉพาะใน VScode เท่านั้น (โดยใช้ การขยายตัว) อย่างไรก็ตาม แผนสำหรับปีปัจจุบัน (2019) รวมถึง Eclipse และ Intellij

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

โซลูชั่นที่สมบูรณ์

เรามาดูปืนใหญ่กันดีกว่า - โครงการ "ขนาดใหญ่" ที่ออกแบบมาเพื่อตอบสนองความต้องการของนักพัฒนาจำนวนมากในทันที

NB: แน่นอนว่าในรายการนี้ มีที่สำหรับยูทิลิตี้ Open Source ของเรา เวร (เดิมชื่อ dapp) อย่างไรก็ตาม เราได้เขียนและพูดคุยเกี่ยวกับเรื่องนี้มากกว่าหนึ่งครั้งแล้ว ดังนั้นจึงตัดสินใจที่จะไม่รวมไว้ในการตรวจสอบ สำหรับผู้ที่ต้องการทำความคุ้นเคยกับความสามารถของมันมากขึ้น เราแนะนำให้อ่าน/ฟังรายงาน”werf เป็นเครื่องมือของเราสำหรับ CI/CD ใน Kubernetes'

เดฟสเปซ

  • สาระการเรียนรู้แกนกลาง: สำหรับผู้ที่ต้องการเริ่มทำงานใน Kubernetes แต่ไม่ต้องการเจาะลึกเข้าไปในป่า.
  • GitHub.
  • สถิติ GH โดยย่อ: 630 ดาว, 1912 คอมมิต, ผู้ร่วมให้ข้อมูล 13 คน
  • ภาษา: ไป.
  • ใบอนุญาต: ใบอนุญาต Apache 2.0

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

เมื่อรันคำสั่ง devspace init ในแค็ตตาล็อกโครงการ คุณจะได้รับข้อเสนอ (แบบโต้ตอบ):

  • เลือกคลัสเตอร์ Kubernetes ที่ใช้งานได้
  • ใช้ที่มีอยู่ Dockerfile (หรือสร้างอันใหม่) เพื่อสร้างคอนเทนเนอร์ตามนั้น
  • เลือกพื้นที่เก็บข้อมูลสำหรับจัดเก็บอิมเมจคอนเทนเนอร์ ฯลฯ

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

คุณสามารถเลือกได้ คุณจะได้รับแจ้งให้ย้ายเทอร์มินัลไปยังคอนเทนเนอร์ คุณไม่ควรปฏิเสธ เพราะในความเป็นจริงแล้ว คอนเทนเนอร์เริ่มต้นด้วยคำสั่ง sleep และสำหรับการทดสอบจริง แอปพลิเคชันจะต้องเปิดด้วยตนเอง

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

การกำหนดค่าโครงการทั้งหมดจะถูกจัดเก็บไว้ในไฟล์ devspace.yaml- นอกเหนือจากการตั้งค่าสภาพแวดล้อมการพัฒนาแล้ว คุณยังสามารถค้นหาคำอธิบายของโครงสร้างพื้นฐานในนั้นได้ ซึ่งคล้ายกับรายการ Kubernetes มาตรฐาน ซึ่งเรียบง่ายอย่างมากเท่านั้น

เครื่องมือสำหรับนักพัฒนาแอปพลิเคชันที่ทำงานบน Kubernetes
สถาปัตยกรรมและขั้นตอนหลักในการทำงานกับ DevSpace

นอกจากนี้ยังเป็นเรื่องง่ายที่จะเพิ่มส่วนประกอบที่กำหนดไว้ล่วงหน้า (เช่น MySQL DBMS) หรือแผนภูมิ Helm ให้กับโปรเจ็กต์ อ่านเพิ่มเติมใน เอกสาร - มันไม่ซับซ้อน

นั่งร้าน

  • เว็บไซต์; GitHub.
  • สถิติ GH โดยย่อ: 7423 ดาว, 4173 คอมมิต, ผู้ร่วมให้ข้อมูล 136 คน
  • ภาษา: ไป.
  • ใบอนุญาต: ใบอนุญาต Apache 2.0

ยูทิลิตี้นี้จาก Google อ้างว่าครอบคลุมความต้องการทั้งหมดของนักพัฒนาที่มีโค้ดที่จะทำงานบนคลัสเตอร์ Kubernetes การเริ่มใช้งานไม่ใช่เรื่องง่ายเหมือนกับ devspace: ไม่มีการโต้ตอบ การตรวจจับภาษา และการสร้างอัตโนมัติ Dockerfile พวกเขาจะไม่เสนอให้คุณที่นี่

อย่างไรก็ตาม หากสิ่งนี้ไม่ทำให้คุณกลัว นี่คือสิ่งที่ Skaffold อนุญาตให้คุณทำ:

  • ติดตามการเปลี่ยนแปลงซอร์สโค้ด
  • ซิงโครไนซ์กับคอนเทนเนอร์พ็อดหากไม่จำเป็นต้องประกอบ
  • รวบรวมคอนเทนเนอร์ที่มีโค้ด หากมีการตีความภาษา หรือรวบรวมสิ่งประดิษฐ์แล้วบรรจุลงในคอนเทนเนอร์
  • รูปภาพที่ได้จะถูกตรวจสอบโดยอัตโนมัติโดยใช้ การทดสอบโครงสร้างคอนเทนเนอร์.
  • การแท็กและอัพโหลดภาพไปยัง Docker Registry
  • ปรับใช้แอปพลิเคชันในคลัสเตอร์โดยใช้ kubectl, Helm หรือปรับแต่ง
  • ดำเนินการส่งต่อพอร์ต
  • แก้ไขข้อบกพร่องแอปพลิเคชันที่เขียนด้วย Java, Node.js, Python

ขั้นตอนการทำงานในรูปแบบต่างๆ มีการอธิบายไว้ในไฟล์อย่างชัดเจน skaffold.yaml- สำหรับโปรเจ็กต์ คุณยังสามารถกำหนดโปรไฟล์ได้หลายโปรไฟล์ซึ่งคุณสามารถเปลี่ยนขั้นตอนการประกอบและการปรับใช้บางส่วนหรือทั้งหมดได้ ตัวอย่างเช่น สำหรับการพัฒนา ให้ระบุอิมเมจฐานที่สะดวกสำหรับนักพัฒนา และสำหรับการจัดเตรียมและการผลิต - อิมเมจขั้นต่ำ (+ ใช้ securityContext คอนเทนเนอร์หรือกำหนดคลัสเตอร์ที่จะปรับใช้แอปพลิเคชันใหม่)

คอนเทนเนอร์นักเทียบท่าสามารถสร้างได้ภายในเครื่องหรือระยะไกล: ใน Google Cloud บิลด์ หรือในคลัสเตอร์โดยใช้ คานิโก- รองรับ Bazel และ Jib Maven/Gradle ด้วย สำหรับการแท็ก Skaffold รองรับกลยุทธ์มากมาย: โดย git commit hash, วันที่/เวลา, sha256-sum of Sources เป็นต้น

แยกกันเป็นมูลค่า noting ความเป็นไปได้ของการทดสอบภาชนะ กรอบงานการทดสอบโครงสร้างคอนเทนเนอร์ที่กล่าวถึงแล้วเสนอวิธีการตรวจสอบดังต่อไปนี้:

  • การดำเนินการคำสั่งในบริบทของคอนเทนเนอร์ด้วยการติดตามสถานะการออก และตรวจสอบเอาต์พุตข้อความของคำสั่ง
  • ตรวจสอบการมีอยู่ของไฟล์ในคอนเทนเนอร์และจับคู่แอตทริบิวต์ที่ระบุ
  • การควบคุมเนื้อหาไฟล์โดยใช้นิพจน์ทั่วไป
  • การตรวจสอบข้อมูลเมตาของรูปภาพ (ENV, ENTRYPOINT, VOLUMES ฯลฯ )
  • การตรวจสอบความเข้ากันได้ของใบอนุญาต

การซิงโครไนซ์ไฟล์กับคอนเทนเนอร์ไม่ได้ดำเนินการอย่างเหมาะสมที่สุด: Skaffold เพียงสร้างไฟล์เก็บถาวรพร้อมแหล่งที่มา คัดลอกและแตกไฟล์ในคอนเทนเนอร์ (ต้องติดตั้ง tar) ดังนั้น หากงานหลักของคุณคือการซิงโครไนซ์โค้ด ควรพิจารณาโซลูชันพิเศษ (ksync) จะดีกว่า

เครื่องมือสำหรับนักพัฒนาแอปพลิเคชันที่ทำงานบน Kubernetes
ขั้นตอนหลักของการดำเนินงาน Skaffold

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

สวนหย่อม

  • เว็บไซต์; GitHub.
  • สถิติ GH โดยย่อ: 1063 ดาว, 1927 คอมมิต, ผู้ร่วมให้ข้อมูล 17 คน
  • ภาษา: TypeScript (มีการวางแผนที่จะแบ่งโปรเจ็กต์ออกเป็นหลายองค์ประกอบ ซึ่งบางส่วนจะอยู่ใน Go และยังสร้าง SDK สำหรับการสร้างส่วนเสริมใน TypeScript/JavaScript และ Go).
  • ใบอนุญาต: ใบอนุญาต Apache 2.0

เช่นเดียวกับ Skaffold Garden มีเป้าหมายเพื่อทำให้กระบวนการส่งโค้ดแอปพลิเคชันไปยังคลัสเตอร์ K8 เป็นไปโดยอัตโนมัติ ในการดำเนินการนี้ คุณต้องอธิบายโครงสร้างโปรเจ็กต์ในไฟล์ YAML ก่อน จากนั้นจึงเรียกใช้คำสั่ง garden dev- เธอจะทำเวทมนตร์ทั้งหมด:

  • รวบรวมภาชนะที่มีส่วนต่าง ๆ ของโครงการ
  • ดำเนินการบูรณาการและการทดสอบหน่วย หากมีการอธิบายไว้
  • เผยแพร่ส่วนประกอบของโปรเจ็กต์ทั้งหมดไปยังคลัสเตอร์
  • หากซอร์สโค้ดเปลี่ยนแปลง มันจะรีสตาร์ทไปป์ไลน์ทั้งหมด

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

โมดูลโครงการสามารถเป็นคอนเทนเนอร์, คอนเทนเนอร์ Maven, แผนภูมิ Helm, รายการสำหรับ kubectl apply หรือแม้แต่ฟังก์ชัน OpenFaaS นอกจากนี้ ยังสามารถดึงโมดูลใดๆ ออกจากพื้นที่เก็บข้อมูล Git ระยะไกลได้ โมดูลอาจหรืออาจจะไม่กำหนดบริการ งาน และการทดสอบ บริการและงานสามารถมีการขึ้นต่อกัน ดังนั้นคุณจึงสามารถกำหนดลำดับการใช้งานของบริการเฉพาะและจัดระเบียบการเปิดตัวงานและการทดสอบได้

Garden มอบแดชบอร์ดที่สวยงามให้กับผู้ใช้ (ปัจจุบันอยู่ใน สถานะการทดลอง) ซึ่งแสดงกราฟโครงการ: ส่วนประกอบ ลำดับการประกอบ การปฏิบัติงานและการทดสอบ การเชื่อมต่อและการขึ้นต่อกัน ในเบราว์เซอร์ คุณสามารถดูบันทึกของส่วนประกอบโครงการทั้งหมด และตรวจสอบว่าส่วนประกอบใดส่งออกผ่าน HTTP (แน่นอนว่า หากมีการประกาศทรัพยากรขาเข้า)

เครื่องมือสำหรับนักพัฒนาแอปพลิเคชันที่ทำงานบน Kubernetes
แผงสำหรับสวน

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

ข้อสรุป

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

PS

อ่านเพิ่มเติมในบล็อกของเรา:

ที่มา: will.com

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