‫ให้ฉันบอกคุณเกี่ยวกับการวิ่งแบบแห้งและแบบต่าง
‫ๆ ซึ่งเป็นสิ่งใหม่
‫Kubernetes สองสามเวอร์ชันล่าสุดที่ขึ้นต้นด้วย 1 13 มีตัวเลือกใหม่ที่ช่วยให้เราเห็นสิ่งที่เรากำลังจะเปลี่ยนแปลงก่อนที่เราจะเปลี่ยนแปลง
‫เราเคยเห็นมาก่อนแล้ว
‫ฉันได้แสดงให้คุณเห็นสองสามตัวอย่างก่อนหน้านี้ในหลักสูตร
‫แต่วิธีการใช้กับคำสั่ง Apply นี้เป็นวิธีที่ใหม่และดีกว่า
‫สิ่งที่เรามีในอดีตคือเรามีการดำเนินการแบบแห้ง
‫แต่เกิดขึ้นกับลูกค้าเท่านั้น
‫ลูกค้าไม่ได้คุยกับเซิร์ฟเวอร์เพื่อบอกว่า
‫เฮ้ มีทรัพยากรเหล่านี้อยู่แล้วหรือไม่
‫ฉันจำเป็นต้องสร้างใหม่หรือไม่ หรือกำลังจะได้รับการอัปเดตหรือจะเกิดอะไรขึ้น
‫ถูกต้อง.
‫ที่ไม่เคยเกิดขึ้นมาก่อน
‫ตอนนี้มีตัวเลือกการรันเซิร์ฟเวอร์ที่จะส่ง YAML
‫ของเราไปยังเซิร์ฟเวอร์และเปรียบเทียบ หาว่าต้องเกิดอะไรขึ้นจริง
‫ๆ แล้วรายงานกลับไปที่บรรทัดคำสั่งว่าจะมีการเปลี่ยนแปลงอะไร
‫มาดูกันว่าในการดำเนินการ
‫ฉันอยู่ในไดเร็กทอรี YAML ของ K8 อย่างที่ฉันได้กล่าวไว้ก่อนหน้านี้ในการบรรยาย
‫ถ้าคุณอยู่ใน repo ของ Docker Mastery และคุณไม่มีไดเร็กทอรีนี้
‫คุณต้องทำการ git-pull เพื่อรับการอัปเดตล่าสุด
‫นี่คือไฟล์ที่เราเคยเห็นในการบรรยายครั้งก่อน
‫แอพ ยม. นี่คือบริการ รวมถึงการปรับใช้
‫ในไฟล์เดียว
‫ในทางเทคนิคแล้วจะมีการสร้างทรัพยากรสองแห่งโดยใช้คำสั่งเดียวและเกี่ยวข้องกัน
‫บริการใช้ตัวเลือกซึ่งเรายังไม่ได้พูดถึง
‫Selectors
‫คือวิธีที่วัตถุหนึ่งค้นหาทรัพยากรที่ต้องการพูดคุยหรือทำอะไรบางอย่างด้วย
‫บริการจำเป็นต้องพูดคุยกับพ็อด จึงต้องหาวิธีเข้าถึงบริการเหล่านั้น
‫มันใช้ตัวเลือกในการจับคู่รูปแบบเป็นหลักเพื่อจับคู่ป้ายกำกับกับคีย์และค่าต่างๆ
‫ที่นั่น ถ้าฉันทำแบบแห้งแบบดั้งเดิมที่นี่
‫สิ่งเดียวที่ลูกค้าจะทำก็คือลูกค้าจะดูที่การทาแล้วพูดว่า
‫ใช่ ฉันจะสร้างวัตถุเหล่านี้
‫ไม่เป็นไร. มันมักจะกลับมาและบอกว่าสร้างขึ้น
‫นั่นเป็นเพราะการสมัครไม่เฉพาะเจาะจงมาก
‫หากคุณกำลังใช้การอัปเดต
‫หรือคำสั่ง create หรือ delete ซึ่งฉันไม่รู้สึกว่าเป็นเวิร์กโฟลว์ที่ใช้
‫DevOps มากนัก
‫คำสั่งเหล่านั้นจะทำแบบแห้งและคุณรู้ว่าคำสั่งอัปเดตจะบอกว่าใช่พวกเขาทั้งคู่จะได้รับการอัปเดต
‫แต่มันไม่รู้จริง
‫ๆ ในคลัสเตอร์ของคุณใช่ไหม มันไม่ได้พูดคุยกับเซิร์ฟเวอร์เพื่อคิดออก
‫เราต้องการลองใช้เซิร์ฟเวอร์แบบแห้งซึ่งเปิดใช้งานโดยค่าเริ่มต้นกับอะไรก็ได้ที่
‫1 13 และใหม่กว่า
‫เมื่อฉันทำอย่างนั้น มันจะไปคุยกับเซิร์ฟเวอร์และตอบกลับฉันอย่างเหมาะสม
‫ไปข้างหน้าและสร้างสิ่งนี้
‫ฉันจะปิดเซิร์ฟเวอร์แบบแห้ง
‫สิ่งนี้จะสร้างทรัพยากรทั้งสอง การปรับใช้และบริการ
‫ตอนนี้ ถ้าฉันกดลูกศรขึ้นและกลับไปที่เซิร์ฟเวอร์แบบแห้ง
‫คุณจะเห็นว่ามันไม่มีการเปลี่ยนแปลงสำหรับทั้งคู่
‫มันไม่ได้บอกฉันว่ามีอะไรเปลี่ยนแปลงหรือมีบางอย่างที่จะเปลี่ยนแปลงสิ่งที่มันจะเป็น
‫มันแค่บอกฉันว่าทรัพยากรจะมีการเปลี่ยนแปลงหรือไม่เปลี่ยนแปลง
‫เป็นการสลับสับเปลี่ยน ใช่ หรือ ไม่ใช่
‫การรับความแตกต่างที่แท้จริงระหว่างสิ่งที่เราต้องการให้เซิร์ฟเวอร์กับสถานะปัจจุบันของทรัพยากรของเราเป็นอย่างไร
‫นั่นคือคำสั่ง kubectl diff
‫ถ้าฉันเพียงแค่ให้ความแตกต่างแทนที่จะใช้ มันจะเปรียบเทียบ
‫YAML ที่ฉันมีกับข้อมูลจำเพาะที่อยู่ในเซิร์ฟเวอร์ที่ทำงานอยู่ในขณะนี้
‫สถานะนั้นกลับมาและมันจะทำให้เกิดความแตกต่าง
‫มาทำกัน
‫มันจะไม่พูดอะไรเพราะไม่มีความแตกต่าง
‫แต่ถ้าเราไปเปลี่ยน YAML ล่ะ?
‫จะเกิดอะไรขึ้นถ้าฉันเปลี่ยนแบบจำลองเป็นสองรายการ
‫จากนั้นฉันเพิ่มป้ายกำกับในข้อมูลเมตาและฉันจะให้มันเช่น...
‫สิ่งที่ต้องการ.
‫เซิร์ฟเวอร์ dmz.
‫ฉันทำมันขึ้น ไม่เป็นไรจริงๆ
‫จากนั้นเราก็มีแบบจำลองสองแบบ
‫ถ้าฉันทำส่วนต่างแบบเดียวกัน มันจะกลับมาพร้อมกับข้อดีและข้อเสีย
‫หากคุณเคยอ่าน diff's สิ่งนี้เหมาะสมสำหรับคุณ
‫ถ้าคุณไม่คุ้นเคยกับ
‫diff's เครื่องหมายลบหมายความว่าเส้นนั้นจะหายไป
‫จากนั้นบรรทัดเหล่านี้จะถูกเพิ่ม
‫จากนั้นด้านล่างจะแสดงให้คุณเห็นว่าบรรทัดใดและอักขระใดในบรรทัดที่จะถูกลบออก
‫กำลังเพิ่มสิ่งนี้
‫มันทำให้การจัดรูปแบบ YAML นั้นดี
‫เป็นการแจ้งให้เราทราบว่ามีการเปลี่ยนแปลงหลายอย่างเกิดขึ้น
‫ยอดเยี่ยม. แน่นอนว่านี่ไม่ใช่การทำบางอย่างเช่นนกขมิ้นหรือทดสอบการใช้งานหรืออะไรก็ตาม
‫ไม่ได้พยายามทำสิ่งนั้นแล้วเห็นผลเป็นอย่างไร
‫เป็นเพียงการดูข้อมูลจำเพาะที่มีบันทึกไว้
‫และข้อมูลจำเพาะที่เรามีบนดิสก์ของเรา
‫ตรวจสอบข้อมูลเพิ่มเติมในลิงก์แหล่งข้อมูล
‫เป็นบทความในบล็อกจากทีม Kubernetes เกี่ยวกับอนาคตของสิ่งเหล่านี้และวิธีที่พวกเขาจะเล่นเมื่อออกจากเบต้า
‫โปรดจำไว้ว่า
‫คุณลักษณะเหล่านี้เป็นรุ่นเบต้า อย่างน้อยใน 1 15 พวกเขาเป็น
‫หวังว่าคุณจะสามารถสร้างเวิร์กโฟลว์ของคุณเองสำหรับการสร้าง
‫YAML ตั้งแต่เริ่มต้น จัดการข้อกำหนดใน
‫YAML เหล่านั้น จากนั้นใช้คำสั่ง Apply ซ้ำแล้วซ้ำเล่าเพื่อทำการเปลี่ยนแปลง
‫นั่นเป็นโครงสร้างพื้นฐานที่เป็นมิตรต่อ DevOps มากกว่ามาก เนื่องจากเป็นวิธีการทำโค้ดประเภทหนึ่ง
‫ทุกสิ่งที่คุณทำได้รับการบันทึกไว้แล้ว หวังว่าใน Git
‫ดังนั้น คุณหวังว่าจะสร้าง git-commit สำหรับการเปลี่ยนแปลงแต่ละครั้งที่คุณทำใน
‫YAML ก่อนที่จะปรับใช้กับเซิร์ฟเวอร์
‫จากนั้นคุณก็มีเอกสารที่ดีใน Git เช่นเดียวกับเอกสารประกอบเมื่อคุณทำอะไรบางอย่างเช่น
‫diff เพื่อดูว่าคุณมีอะไรบ้างกับสิ่งที่กำลังทำงานอยู่