‫เมื่อเราพูดถึงบริการ Kubernetes ทั้งสี่ประเภทแล้ว
‫มาสร้างบางอย่างจากบรรทัดคำสั่งกัน
‫อันดับแรก เราต้องสร้าง Deployment ที่เราสามารถชี้บริการเหล่านี้ได้
‫จากนั้นเราจะสร้างบริการประเภทต่างๆ
‫เพื่อชี้ไปที่การทำให้ใช้งานได้นี้
‫ในการสาธิตนี้ เราจะสร้างเชลล์สองแบบที่แตกต่างกัน
‫หรือหน้าต่างที่แตกต่างกัน ในสภาพแวดล้อม Kubernetes
‫ของคุณ เพื่อให้เราสามารถดูว่าเกิดอะไรขึ้นกับคำสั่ง watch
‫ในขณะที่เราทำกับคำสั่งอื่นๆ
‫ไม่เป็นไร. ในกรณีของฉัน ฉันมีหน้าต่างสองบาน หน้าต่างหนึ่งอยู่ด้านบนของอีกบานหนึ่ง
‫มันไม่สำคัญหรอกว่าคุณจะทำอย่างไร
‫ช่วยให้คุณเห็นว่าฉันกำลังทำอะไรได้ง่ายขึ้น
‫เราจะใช้ kubectl get pods
‫เราจะเพิ่ม -w
‫นี่เป็นเหมือนคำสั่งนาฬิกาที่จะทำงานต่อไปและแสดงให้เราเห็นเมื่อเวลาผ่านไปเมื่อสิ่งต่างๆ
‫เปลี่ยนไป
‫คุณจะสังเกตเห็นว่านี่คือตัวเลือกของคำสั่ง kubectl หลายคำสั่งที่แตกต่างกัน
‫เราจะทำที่นี่เพื่อดูว่าเกิดอะไรขึ้นในเบื้องหลัง
‫รับพ็อดด้วย -w
‫จากนั้นในอีกหน้าต่างหนึ่ง เรากำลังจะสร้างการทำให้ใช้งานได้
‫สร้างการปรับใช้ เราจะเรียกสิ่งนี้ว่า httpenv
‫สิ่งนี้กำลังใช้นั้นเป็นเว็บเซิร์ฟเวอร์ HTTP
‫ที่เรียบง่าย ซึ่งโดยพื้นฐานแล้วเมื่อคุณกด cURL
‫มันจะแยกตัวแปรสภาพแวดล้อมทั้งหมดที่ได้รับกลับมาที่บรรทัดคำสั่ง
‫เป็นวิธีที่ง่ายมากและเป็นพื้นฐานสำหรับเราในการตรวจสอบว่ามันใช้งานได้
‫แต่ยังได้ค่าที่น่าสนใจเช่นชื่อของพ็อดกลับมาด้วย
‫ของแบบนั้น.
‫เมื่อสร้างเสร็จแล้ว คุณจะเห็นที่ด้านบนสุดว่าสร้างคอนเทนเนอร์
‫ให้คิดว่ามันเป็นเหมือนบันทึกที่ทุกครั้งที่มีการเปลี่ยนแปลงสถานะ
‫สถานะเปลี่ยนแปลง หรืออะไรทำนองนั้น คุณจะเห็นว่าเป็นการพิมพ์ขึ้นบรรทัดใหม่ในหน้าเหมือนไฟล์บันทึก
‫คุณจะเห็นในบรรทัดสุดท้าย ตอนนี้แสดงว่าเรามีพ็อดที่ทำงานอยู่ในสถานะกำลังทำงานอยู่ที่นั่น
‫มาหมุนพ็อดเหล่านี้กันมากขึ้น เพื่อให้เราสามารถมีคอนเทนเนอร์เหล่านี้ทำงานอยู่เบื้องหลังบริการของเราได้มากกว่าหนึ่งรายการ
‫ซึ่งเราจะสร้างขึ้นในไม่กี่วินาที
‫คำสั่งมาตราส่วนมีประโยชน์กับการปรับใช้เพราะช่วยให้เราเปลี่ยนจำนวนแบบจำลองในคำสั่งเดียวที่เป็นมิตร
‫แน่นอนว่ามีทุกอย่างใน
‫Kubernetes ในการทำเช่นนี้ แต่นี่เป็นวิธีที่ง่ายที่สุดในสถานการณ์ของเราที่นี่
‫ไม่เป็นไร. ตอนนี้ คุณจะเห็นว่ามีการสร้างพ็อดเพิ่มอีกสี่พ็อด
‫และแสดงว่ามีพ็อดที่กำลังทำงานอยู่
‫ตอนนี้ เรากำลังจะสร้างบริการนั้น
‫เพื่อที่เราใช้คำสั่ง expose
‫ในกรณีนี้ เรากำลังบอกว่า Deployment ใดที่จะเปิดเผยและพอร์ตที่
‫Deployment กำลังฟังอยู่
‫คุณจะเห็นว่าสิ่งนี้ไม่ได้เปลี่ยนแปลงพ็อดใดๆ เนื่องจากเป็นการสร้างฟีเจอร์เพิ่มเติมที่ไม่เกี่ยวข้องกับพ็อดเอง
‫นี่เป็นการสร้าง IP ของคลัสเตอร์โดยค่าเริ่มต้น
‫นั่นคือประเภทบริการ IP ของคลัสเตอร์
‫มันจะสร้างสิ่งนั้นต่อหน้า
‫Deployment ลองดูบริการที่เราเพิ่งสร้างขึ้น
‫คุณควรเห็นสองที่นี่
‫อันแรกจะเป็นปลายทาง Kubernetes
‫นั่นสำหรับ API
‫จากนั้นคุณจะเห็นบริการของเราที่เราเพิ่งสร้างขึ้นและประเภทของบริการคือ
‫IP ของคลัสเตอร์ โปรดจำไว้ว่า IP ของคลัสเตอร์ใช้ได้เฉพาะภายในคลัสเตอร์เพื่อให้โหนดและพ็อดอื่นๆ
‫สามารถเข้าถึงได้เท่านั้น
‫ที่อยู่ IP นี้ที่เราสามารถเข้าถึงได้ แต่ขึ้นอยู่กับว่าเราอยู่ที่ไหนและเราสามารถเข้าถึงได้หรือไม่
‫เนื่องจากที่อยู่ IP นั้นสามารถเข้าถึงได้จากตัวโหนดเองหรือจากพ็อดอื่นๆ
‫ภายในคลัสเตอร์เท่านั้น
‫เมื่อคุณใช้ Docker Desktop หากคุณจำได้ว่าสิ่งนี้ไม่ได้ทำงานบนโฮสต์
‫OS ของ Mac และ Windows
‫นี่เป็นเทคนิคที่ทำงานใน Linux VM ขนาดเล็ก
‫ในกรณีนี้ เราจำเป็นต้องเรียกใช้พ็อดอื่นที่ทำงานอยู่ในคลัสเตอร์นั้น
‫เพื่อที่เราจะสามารถม้วนมันได้
‫เราไม่ต้องการรัน Deployment ด้วยชุดเรพพลิกา
‫ในกรณีนี้ เราแค่อยากจะเรียกใช้พ็อดเดียวจริงๆ
‫วิธีที่ง่ายที่สุดคือการใช้ kubectl run
‫เราจะใช้เครื่องกำเนิดไฟฟ้าสำรอง
‫คุณอาจจำได้ว่าจากข้อผิดพลาดก่อนหน้านี้
‫เราจะพูดถึงสิ่งที่เครื่องกำเนิดไฟฟ้ามีอยู่เล็กน้อย
‫มีหลายอย่างที่เกิดขึ้นในคำสั่งนี้ เรามาทำลายมันกันเถอะ
‫kubectl ที่คุณเคยเห็นมาก่อน
‫ตัวสร้างคือประเภทของเทมเพลตที่เราต้องการให้เรียกใช้คำสั่งใช้
‫เราจะพูดถึงเรื่องนี้อีกเล็กน้อยในการบรรยายครั้งต่อไป
‫เรากำลังเลือกเทมเพลตพ็อดเพราะเราต้องการเรียกใช้พ็อดเท่านั้น
‫เราไม่ต้องการ
‫Deployment แบบเต็มรูปแบบด้วยชุดแบบจำลองหรืออะไรก็ตาม เราจะเรียกมันว่า tmp-shell
‫คุณจะสังเกตเห็นว่าตัวเลือกเหล่านี้บางตัวคล้ายกับการเรียกใช้นักเทียบท่า
‫นั่นเป็นความตั้งใจ
‫หนึ่งในเป้าหมายในอนาคตของคำสั่ง
‫kubectl run คือการทำหน้าที่เหมือนคำสั่ง docker
‫run อันที่จริง เราจะพูดถึงในภายหลังว่าจะเป็นอย่างไรในท้ายที่สุด
‫โดยค่าเริ่มต้น เพียงแค่สร้างพ็อดสำหรับคุณ และคุณไม่จำเป็นต้องใช้ตัวเลือกตัวสร้างนี้
‫เราจะใช้ --rm ที่นี่ ซึ่งหมายความว่าเมื่อพ็อดหยุดทำงาน
‫ให้ดำเนินการต่อและนำออก
‫-มันทำให้เรามีเชลล์ในพ็อดนั้นเมื่อเรากด
‫Enter คำสั่ง จากนั้น --image กำลังบอกเราว่าเราชอบภาพใด
‫ในกรณีนี้ เรากำลังใช้อิมเมจ netshoot ซึ่งเป็นเครือข่ายและยูทิลิตี
‫Linux ที่แตกต่างกันทั้งหมด
‫หนึ่งในนั้นคือ cURL
‫จากนั้นด้วยคำสั่ง run เราสามารถเปลี่ยน
‫cmd หรือสิ่งที่จะรันภายในคอนเทนเนอร์ได้
‫เราทำอย่างนั้นด้วยช่องว่าง -- ช่องว่าง
‫นั่นบอกคำสั่ง run ให้หยุดดูตัวเลือกต่างๆ และหลังจากนั้น
‫double dashes จะเป็นคำสั่งให้รันเมื่อฉันรันคอนเทนเนอร์นี้
‫คุณจะเห็นที่ด้านบนสุดว่า temp shell pod แสดงขึ้น
‫และตอนนี้เป็นสถานะการทำงาน และเราอยู่ใน
‫pod ด้วย bash prompt
‫สิ่งที่เราจะพูดถึงในอีกเล็กน้อยก็คือชื่อบริการที่เราสร้างขึ้นจะกลายเป็นส่วนหนึ่งของชื่อ
‫DNS สำหรับบริการนี้
‫เราสามารถใช้... คล้ายกับที่เราเพิ่งทำใน
‫Docker และ Swarm เราสามารถใช้ชื่อบริการเพื่อรับ DNS
‫จำไว้ว่ามันทำงานบนพอร์ต 8888
‫เมื่อเราทำเช่นนั้น เราจะได้รับการตอบสนองที่ฉันคาดหวังกลับคืนมา
‫ยูทิลิตี
‫httpenv นี้เพียงแค่ทิ้งตัวแปรสภาพแวดล้อมทั้งหมดบนเครื่องนั้นซึ่งอยู่ในพ็อดเฉพาะนั้น
‫คุณจะเห็นชื่อพ็อดเป็นชื่อโฮสต์
‫และค่าเริ่มต้นอื่นๆ ของ Kubernetes นั้นพร้อมใช้งานทันที
‫วิธีการนี้จะได้ผลสำหรับคุณทุกคน บนคลัสเตอร์ใดๆ
‫ตราบใดที่บรรทัดคำสั่ง kubectl ของคุณสามารถพูดคุยกับ API คำสั่งนั้นจะนำคุณเข้าสู่พ็อดใหม่ที่เรียกใช้อิมเมจนั้นภายในเชลล์
‫ที่ที่ดี
‫แต่ถ้าคุณใช้ Linux มีวิธีที่ง่ายกว่านั้น
‫เนื่องจากวิธีการทำงานของ Kubernetes คือโดยค่าเริ่มต้น โหนดและคอนเทนเนอร์ทั้งหมดสามารถพูดคุยกันได้ทันที
‫โหนดที่คุณเปิดอยู่
‫สมมติว่าคุณกำลังเรียกใช้ Kubernetes บนเครื่องท้องถิ่นนั้น จะมีสิทธิ์เข้าถึงที่อยู่
‫IP ส่วนตัวทั้งหมดเหล่านี้
‫คุณควรจะสามารถ cURL IP ของบริการได้
‫ให้ฉันออกจากเชลล์และทำ kubectl รับบริการอีกครั้ง
‫ที่อยู่ IP นั้นสำหรับ IP ของคลัสเตอร์ควรแก้ไขได้จากโฮสต์ของคุณ
‫โฮสต์ของคุณจะไม่รู้จักชื่อ
‫DNS เหมือนที่เราทำกับภายในพ็อด เนื่องจากเป็นสิทธิ์พิเศษที่จะอยู่ภายในคลัสเตอร์
‫แต่จะทราบที่อยู่ IP และสามารถเข้าถึงได้
‫คุณสามารถขลิบที่อยู่ IP :8888 ได้เหมือนกับที่คุณทำกับเครื่องอื่นในเครือข่ายของคุณ
‫สาเหตุที่ใช้ไม่ได้จาก
‫Docker Desktop ก็เพราะคุณกำลังใช้ Mac หรือ Windows เมื่อคุณพิมพ์คำสั่งเหล่านั้น และคำสั่งเหล่านั้นไม่ได้อยู่ในคลัสเตอร์
‫Kubernetes เดียวกันกับ Linux VM ที่ใช้งาน Kubernetes
‫ให้คุณ
‫ไม่เป็นไร. ไปข้างหน้าและปล่อยให้สิ่งนั้นทำงานสำหรับการบรรยายครั้งต่อไปซึ่งเราจะสร้างบริการเพิ่มเติม