Kubernetes Cheat Sheet: สถาปัตยกรรม, ส่วนประกอบ, แผ่นคำสั่ง

เผยแพร่แล้ว: 2020-12-15

Kubernetes ได้กลายเป็นส่วนสำคัญของอุตสาหกรรมและกำลังเปลี่ยนแปลงโลกแห่งเทคโนโลยี Janet Kuo ประธานร่วมของ KubeCon กล่าวถึงคุณลักษณะและความสำคัญของ Kubernetes ในอนาคตอันใกล้ เธอพูดถึงส่วนขยายและโซลูชัน ของ Kubernetes ที่จะเปลี่ยนแปลงโลก

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

สารบัญ

เกี่ยวกับ Kubernetes

แพลตฟอร์มโอเพนซอร์สสำหรับการปรับใช้อัตโนมัติและการปรับขนาดคอนเทนเนอร์ทั่วทั้งคลัสเตอร์ของโฮสต์เพื่อให้โครงสร้างพื้นฐานที่เน้นคอนเทนเนอร์เป็นศูนย์กลางเรียกว่า Kubernetes (หรือที่เรียกว่า “Kube” หรือ k8) ช่วยให้จัดการโฮสต์ต่างๆ ที่ใช้งานคอนเทนเนอร์ Linux ได้ง่ายและมีประสิทธิภาพโดยการจัดคลัสเตอร์

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

ผู้ใช้สามารถสลับการรับส่งข้อมูลระหว่างแอปพลิเคชันเวอร์ชันต่างๆ อัปเดต ขยายขนาดบริการ ฯลฯ ด้วย Kubernetes มอบความยืดหยุ่น ความน่าเชื่อถือ และพลังในการจัดการแอปพลิเคชันแก่ผู้ใช้ในระดับสูง

คุณสมบัติที่สำคัญบางประการของ Kubernetes คือ:

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

อ่าน: อัลกอริธึมการเรียนรู้เชิงลึก

สถาปัตยกรรมของ Kubernetes

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

  • ต้นแบบของ Kubernetes กำหนดเวลาการปรับใช้ เปิดเผย API และจัดการคลัสเตอร์ Kubernetes โดยรวม
  • โหนดรันรันไทม์คอนเทนเนอร์ เอเจนต์สำหรับการสื่อสารกับต้นแบบ และส่วนประกอบการมอนิเตอร์อื่นๆ การบันทึก ฯลฯ

ส่วนประกอบของสถาปัตยกรรม Kubernetes

มาดูวัตถุประสงค์และส่วนประกอบของมาสเตอร์และโหนดในสถาปัตยกรรม Kubernetes กัน

ผู้เชี่ยวชาญ

ต้นแบบรักษาสถานะที่ต้องการของคลัสเตอร์ เนื่องจากจัดการทั้งคลัสเตอร์ จึงเรียกว่ามาสเตอร์ ประกอบด้วย:

  • เซิร์ฟเวอร์ API: เซิร์ฟเวอร์ Kubernetes API
  • ตัวจัดกำหนดการ: ใช้สำหรับการจัดกำหนดการพ็อดในโหนดของผู้ปฏิบัติงาน
  • Controller: จัดการการจำลองพ็อด
  • ฯลฯ: บริการข้อมูลเมตา

โหนด

ประกอบด้วยบริการที่จำเป็นซึ่งมีความสำคัญต่อการเรียกใช้พ็อด ต้นแบบจัดการโหนด เรียกอีกอย่างว่ามินเนี่ยน ประกอบด้วย:

  • Pod: กลุ่มตู้คอนเทนเนอร์
  • นักเทียบท่า: เทคโนโลยีที่ใช้คอนเทนเนอร์ พื้นที่ผู้ใช้ของระบบปฏิบัติการ
  • Kubelet: ตัวแทนคอนเทนเนอร์ที่รับผิดชอบในการดูแลชุดของ พ็อด
  • Kube-proxy: กำหนด เส้นทางการรับส่งข้อมูลที่เข้ามาในโหนดจากบริการ

ตอนนี้ มาทำความเข้าใจคำสั่งที่สำคัญของ Kubernetes กัน

คำสั่ง Kubectl

Kubectl เป็นเครื่องมือบรรทัดคำสั่งสำหรับ Kubernetes คำสั่ง Kubectl พื้นฐานสามารถแบ่งออกเป็น:

  • การพิจารณาพ็อดและคอนเทนเนอร์
  • วิปัสสนาแบบคลัสเตอร์
  • แก้จุดบกพร่อง
  • คำสั่งด่วน
  • วัตถุ

การพิจารณาพ็อดและคอนเทนเนอร์

ฟังก์ชั่น สั่งการ
สำหรับการอธิบายชื่อพ็อด Kubectl อธิบายพ็อด<name>
สำหรับการแสดงรายการพ็อดปัจจุบันทั้งหมด Kubectl รับฝัก
สำหรับการแสดงรายการตัวควบคุมการจำลองแบบทั้งหมด Kubectl รับ rc
สำหรับแสดงชื่อตัวควบคุมการจำลองแบบ Kubectl อธิบาย rc <name>
สำหรับการแสดงรายการตัวควบคุมการจำลองแบบในเนมสเปซ Kubectl รับ rc –namespace=”namespace”
สำหรับแสดงชื่อบริการ Kubectl อธิบาย svc<name>
สำหรับรายการบริการ Kubectl รับ cvc
สำหรับการรับชมโหนดอย่างต่อเนื่อง Kubectl รับโหนด -w
สำหรับการลบพ็อด Kubectl ลบพ็อด<name>

วิปัสสนาแบบคลัสเตอร์

ฟังก์ชั่น สั่งการ
เพื่อรับข้อมูลที่เกี่ยวข้องกับเวอร์ชัน เวอร์ชัน Kubectl
เพื่อรับรายละเอียดการกำหนดค่า Kubectl config g มุมมอง
สำหรับการรับข้อมูลที่เกี่ยวข้องกับคลัสเตอร์ Kubectl cluster-info
เพื่อรับข้อมูลเกี่ยวกับโหนด Kubectl อธิบายโหนด<โหนด>

คำสั่งแก้จุดบกพร่อง

ฟังก์ชั่น สั่งการ
สำหรับการแสดงตัวชี้วัดสำหรับพ็อด Kubectl ฝักด้านบน
สำหรับการแสดงเมทริกสำหรับโหนด Kubectl โหนดบนสุด
สำหรับการดูบันทึก Kubelet ดู -n 2 cat/var/log/kublet.log
สำหรับการรับบันทึกจากบริการสำหรับคอนเทนเนอร์ บันทึก Kubectl -f<name>>[-c< $container>]
สำหรับการดำเนินการคำสั่งในการให้บริการโดยการเลือกคอนเทนเนอร์ Kubectl exec<service><commands>[-c< $container>]

คำสั่งด่วน

คำสั่งด่วนด้านล่างมักใช้และด้วยเหตุนี้จึงมีประโยชน์มาก

ฟังก์ชั่น สั่งการ
สำหรับการเปิดตัวพ็อดที่มีชื่อและรูปภาพ Kubectl run<name> — image=<image-name>
สำหรับการสร้างบริการที่อธิบายไว้ใน <manifest.yaml> Kubectl create -f <manifest.yaml>
สำหรับการปรับขนาดตัวนับการจำลองเพื่อนับจำนวนอินสแตนซ์ มาตราส่วน Kubectl –replicas=<count>rc<name>
สำหรับการแมปพอร์ตภายนอกกับพอร์ตการจำลองแบบภายใน เปิดเผย rc<name> –port=<external>–target-port=<internal>
สำหรับการหยุดพ็อดทั้งหมดใน <n> ท่อระบายน้ำ Kubectl<n>– delete-local-data–force–ignore-daemonset
สำหรับการสร้างเนมสเปซ Kubectl สร้างเนมสเปซ <namespace>
เพื่อให้มาสเตอร์โหนดสามารถรันพ็อดได้ Kubectltaintnodes –all-node-role.kuernetes.io/master-

วัตถุ

วัตถุที่คุ้นเคยบางส่วนที่ใช้ใน Kubernetes มีดังนี้:

รายการวัตถุทั่วไป
ทั้งหมด การแก้ไขคอนโทรลเลอร์
cm= conf gmaps การโยงบทบาทคลัสเตอร์
Cronjobs cs=สถานะส่วนประกอบ
ปรับใช้=ปรับใช้ ขีดจำกัด=จำกัดช่วง
ev= เหตุการณ์ hpa= การปรับขนาดพ็อดอัตโนมัติในแนวนอน
งาน ds= ชุดภูต
ไม่ = โหนด ns= เนมสเปซ
po= ฝัก พ็อดที่ตั้งไว้ล่วงหน้า
Psp= นโยบายความปลอดภัยของพ็อด Pv= ปริมาณคงที่
โควต้า=โควต้าทรัพยากร rs= ชุดจำลอง
บทบาท rc= ตัวควบคุมการจำลองแบบ
sc= คลาสหน่วยเก็บข้อมูล pdb= งบประมาณการกระจายพ็อด
บทบาทคลัสเตอร์ ความลับ
crd=กำหนดทรัพยากรที่กำหนดเอง เทมเพลตพ็อด
csr= คำขอลงนามใบรับรอง sa= บัญชีบริการ
Netpol- นโยบายเครือข่าย การผูกบทบาท
ing = ทางเข้า pvc= การอ้างสิทธิ์ปริมาณถาวร
ep=จุดสิ้นสุด sts= stateful ชุด

อ่านเพิ่มเติม: การทำให้เป็นมาตรฐานในการเรียนรู้อย่างลึกซึ้ง

แผ่นโกงคำสั่ง Kubernetes

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

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ เทคนิคการเรียนรู้เชิงลึก แมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's PG Diploma in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมอย่างเข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษามากกว่า 30+ การมอบหมายงาน, สถานะศิษย์เก่า IIIT-B, 5+ โครงการหลักที่ใช้งานได้จริง & ความช่วยเหลือด้านงานกับบริษัทชั้นนำ

Kubernetes คืออะไร?

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

อะไรคือองค์ประกอบหลักของสถาปัตยกรรม Kubernetes?

มีสององค์ประกอบหลักในสถาปัตยกรรม Kubernetes - โหนดหลักและโหนดผู้ปฏิบัติงาน โหนดคือเครื่องของผู้ปฏิบัติงานหลักซึ่งมีความสำคัญสำหรับการเรียกใช้กลุ่มคลัสเตอร์ที่เรียกว่าพ็อด คลัสเตอร์ทั้งหมดได้รับการจัดการโดยโหนดหลัก ในขณะที่โหนดผู้ปฏิบัติงานทำงานที่ได้รับมอบหมายจากโหนดหลัก โหนดเหล่านี้มีส่วนประกอบภายในจำนวนมากอยู่ภายใน โหนดหลักประกอบด้วยเซิร์ฟเวอร์ Kubernetes API, Kubernetes Scheduler, Kubernetes Controller และอื่น ๆ โหนดผู้ปฏิบัติงานมีพ็อด นักเทียบท่า kubelet และ kube-proxy

kubelet และ kube-proxy ทำอะไร?

Kubelet ซึ่งมีอยู่ในทุกโหนด ช่วยให้มั่นใจว่าคอนเทนเนอร์ทำงานได้ดีในพ็อด ทำได้โดยนำชุดของ PodSpecs ที่จัดเตรียมไว้ผ่าน apiserver เป็นหลัก และตรวจสอบคอนเทนเนอร์ที่มีอยู่ใน PodSpecs เหล่านั้น PodSpec คือออบเจ็กต์ YAML หรือ JSON ที่อธิบายพ็อด Kubernetes Network Proxy หรือที่เรียกว่า kube-proxy รักษากฎของเครือข่ายบนโหนด การสื่อสารจากเซสชันเครือข่ายภายในหรือภายนอกคลัสเตอร์ไปยังพ็อดทำได้โดยใช้กฎเครือข่ายเหล่านี้ Kube-proxy ส่งต่อการรับส่งข้อมูลหากไม่มีเลเยอร์การกรองแพ็กเก็ต OS