Kubernetes Cheat Sheet: สถาปัตยกรรม, ส่วนประกอบ, แผ่นคำสั่ง
เผยแพร่แล้ว: 2020-12-15Kubernetes ได้กลายเป็นส่วนสำคัญของอุตสาหกรรมและกำลังเปลี่ยนแปลงโลกแห่งเทคโนโลยี 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