Score:-1

ข้อมูลที่จำเป็นเกี่ยวกับบริการ kubernetes

ธง sd

คำถามของฉันคือถ้าไคลเอนต์สมมติว่า kubectl ต้องเข้าถึงคลัสเตอร์สำหรับการดำเนินการรับ/ลบ/แก้ไขต่างๆ จะใช้ .kube/config ไฟล์และเราระบุจุดสิ้นสุด API เป็นรายการ DNS ด้านล่างนี้คือรายการ DNS ของเราสำหรับ NLB

$ cat กำหนดค่า |grep 6443
เซิร์ฟเวอร์: https://ac1poc-20210407164708-kube-api-f5082ea18c7584ad.elb.us-east-1.amazonaws.com:6443
  1. และหาก kubelet ต้องการพูดคุยกับจุดสิ้นสุดของ API ก็จะมีรายการที่คล้ายกันในไฟล์การกำหนดค่า /etc/kubernetes/kubelet
  2. เหมือนกันสำหรับ kube-proxy เช่นกัน ดังนั้น API ภายนอกทั้งสามนี้จึงมีรายการ Network Load Balancer ที่กำหนดค่าไว้ในไฟล์การกำหนดค่าที่เกี่ยวข้อง นั่นหมายความว่าสิ่งเหล่านี้จะส่งแพ็กเก็ตไปยัง NLB เมื่อใดก็ตามที่พวกเขาต้องการสื่อสารกับ API แบ็กเอนด์

แต่แล้วฉันก็มีบริการนี้เช่นกันที่แสดงด้านล่าง ฉันต้องการถามว่าบริการนี้จะเริ่มเล่นเมื่อใด API ใดที่ใช้บริการนี้

$ kubectl อธิบาย svc kubernetes
ชื่อ: คูเบอร์เนเตส
เนมสเปซ: ค่าเริ่มต้น
ป้ายกำกับ: ส่วนประกอบ = apiserver
                   ผู้ให้บริการ = kubernetes
คำอธิบายประกอบ: <ไม่มี>
ตัวเลือก: <ไม่มี>
ประเภท: ClusterIP
นโยบายครอบครัว IP: SingleStack
ครอบครัว IP: IPv4
ไอพี: 10.96.0.1
IPs: 10.96.0.1
พอร์ต: https 443/TCP
พอร์ตเป้าหมาย: 6443/TCP
ปลายทาง: 172.36.11.131:6443,172.36.12.131:6443,172.36.13.131:6443
ความเกี่ยวข้องของเซสชัน: ไม่มี
เหตุการณ์: <ไม่มี>
Score:1
ธง in

คำถามของฉันคือถ้าลูกค้าสมมติว่า kubectl ต้องเข้าถึงคลัสเตอร์สำหรับการดำเนินการรับ/ลบ/แก้ไขต่างๆ

2) และถ้า kubelet ต้องการพูดคุยกับ API endpoint

ถูกต้อง การโต้ตอบทั้งสองนี้กำลังแก้ปัญหาเดียวกัน: กระบวนการนั้นเป็นอย่างไร ภายนอก ไปยังคลัสเตอร์ kubernetes เพื่อไปยังระนาบควบคุมใครจะจินตนาการได้ว่าจะถูกจำกัด (เช่น) เฉพาะ VPN สำหรับองค์กรเท่านั้น คูเบก การดำเนินการหรือเพียงแค่เครือข่ายย่อยของผู้ปฏิบัติงาน คูเบเลต.

คูเบเลต ไม่จริง ความต้องการ เพื่อใช้ NLB (หมายถึงการรับส่งข้อมูลที่ออกจาก VPC ผ่าน Nat GW/Internet GW ใดๆ ไปยัง NLB และกลับเข้าสู่ VPC) จึงปลอดภัยและมีประสิทธิภาพอย่างยิ่งในการชี้การกำหนดค่าของ kubelet ที่ด้าน "ภายใน" ของ NLB นั้น ดังนั้น ตราบเท่าที่ใบรับรอง control-plane มีชื่อเรื่องทางเลือกที่เพียงพอเพื่อตอบสนอง TLS handshake นั่นเป็นสาเหตุที่ผู้คนมักไม่แยกแยะระหว่างสองกรณีนี้ แต่ถ้าเป็นเรื่องความปลอดภัย (หรือค่าใช้จ่าย!) สำหรับองค์กรของคุณ ก็เป็นไปได้ 100% ที่จะแยกการโต้ตอบทั้งสองออกจากกัน

API ใดที่ใช้บริการนี้

ซีเอ็นไอ บริการ ชี้ไปที่ระนาบควบคุมเดียวกัน แต่ทราฟฟิกเดินทางภายในคลัสเตอร์ และนั่น kubernetes.default.svc.cluster.local บริการ มีให้สำหรับทุกคน เนมสเปซตลอดเวลา และเป็นวิธีที่ไคลเอ็นต์ in-Pod kubernetes ใช้ในตัว บัญชีบริการ โทเค็นเพื่อเข้าถึง kubernetes API ด้วยวิธีนี้ สิ่งใดที่ทำงานภายในคลัสเตอร์ไม่จำเป็นต้องมีการกำหนดค่าใดๆ เพื่อเข้าถึง API ซึ่งรวมถึงการเข้าถึงอินเทอร์เน็ต เนื่องจากทราฟฟิกในคลัสเตอร์ไม่ได้ออกจากเครือข่าย CNI

Jatinder Singh avatar
sd flag
ขอบคุณสำหรับคำตอบที่อธิบาย!
in flag
หากคุณยังไม่ได้ดู ยังมีส่วนของความช่วยเหลือเกี่ยวกับ[การจัดการกับคำตอบ](https://serverfault.com/help/someone-answers) ซึ่งคุณสามารถดำเนินการได้หลายอย่าง โดยปกติความคิดเห็นจะถูกสงวนไว้สำหรับการถามคำถามที่ชัดเจน ไม่ใช่สำหรับ "การลงคะแนนเสียงผ่านข้อความ"

โพสต์คำตอบ

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