DevOps ได้เปลี่ยนแปลงวิธีที่วิศวกรซอฟต์แวร์และนักพัฒนาซอฟต์แวร์พัฒนาและปรับใช้แอปพลิเคชันอย่างมาก หนึ่งในเทคโนโลยีที่เป็นหัวใจสำคัญของการปฏิวัตินี้คือ Kubernetes
มาสำรวจกันว่าคุณจะติดตั้งอินสแตนซ์ในเครื่องของ Kubernetes บน Ubuntu โดยใช้ MicroK8 (MicroKates) ได้อย่างไร ด้วยการตั้งค่านี้ คุณสามารถโฮสต์แอปพลิเคชันคอนเทนเนอร์ในลักษณะที่ปลอดภัย เชื่อถือได้ และปรับขนาดได้สูง
ทำไมต้องใช้ MicroK8
Kubernetes เป็นแพลตฟอร์มโอเพ่นซอร์สที่ช่วยปรับปรุงการดำเนินงาน DevOps โดยการปรับใช้ การปรับขนาด และการจัดการแอปพลิเคชันที่มีคอนเทนเนอร์โดยอัตโนมัติ Kubernetes เรียกอีกอย่างว่า K8s ซึ่งเป็นชื่อที่ได้มาจากการนับตัวอักษรแปดตัวระหว่าง k และ s ในชื่อคูเบอร์เนเตส คิดว่า MicroK8 เป็นอินสแตนซ์ของ Micro Kubernetes
สภาพแวดล้อมระบบคลาวด์ระดับสาธารณะและส่วนตัวส่วนใหญ่ที่ใช้ Ubuntu ใช้ Charmed Kubernetes เพื่อจัดการแอปที่มีคอนเทนเนอร์ อย่างไรก็ตาม ความท้าทายของ Charmed Kubernetes คือต้องใช้ทรัพยากรมากและต้องใช้ความรู้ในระดับดีเพื่อกำหนดค่าอย่างเหมาะสม
นี่คือที่มาของ MicroK8 MicroK8s คือ Kubernetes ต้นน้ำขนาดเล็กและน้ำหนักเบาที่สามารถทำงานบนพีซีของนักพัฒนา อุปกรณ์ IoT หรืออุปกรณ์ Edge ได้โดยไม่ต้องใช้เครื่องเสมือน MicroK8 เป็นแบบข้ามแพลตฟอร์มและทำงานได้ทั้งบนสถาปัตยกรรม Intel และ ARM
MicroK8s ช่วยให้คุณทำความคุ้นเคยกับ Kubernetes ได้ดีที่สุดวิธีหนึ่งโดยแทบไม่ต้องเสียอะไรเลย เป็นอัปสตรีม Kubernetes ที่ผ่านการรับรองโดย Cloud Native Computing Foundation (CNCF) ซึ่งช่วยให้มั่นใจได้ว่าการใช้งาน Kubernetes จะสอดคล้องและทำงานร่วมกันได้ตามมาตรฐานอุตสาหกรรมที่ระบุ
ขั้นตอนที่ 1:การติดตั้ง MicroK8 บน Ubuntu
คุณสามารถติดตั้ง MicroK8 บน Ubuntu ได้อย่างง่ายดายโดยใช้คำสั่ง snap
sudo snap install microk8s --classic
หรือคุณสามารถติดตั้ง MicroK8 จาก GUI โดยใช้ Ubuntu Software Center เพียงค้นหา microk8s แล้วคลิกปุ่ม ติดตั้ง ปุ่ม.
ขั้นตอนที่ 2:การกำหนดค่าไฟร์วอลล์ของคุณสำหรับ MicroK8
เพื่อให้การสื่อสารระหว่างพ็อดและอินเทอร์เน็ตเป็นไปอย่างราบรื่น คุณควรเปิดใช้งานการสื่อสารขาเข้าและขาออกบนอินเทอร์เฟซเครือข่ายคอนเทนเนอร์ของไฟร์วอลล์ของคุณ
พ็อดเป็นหน่วยประมวลผลที่เล็กที่สุดใน Kubernetes อาจเป็นคอนเทนเนอร์เดี่ยวหรือกลุ่มที่มีพื้นที่เก็บข้อมูลที่ใช้ร่วมกันและทรัพยากรเครือข่าย ฯลฯ
sudo ufw allow in on cni0 && sudo ufw allow out on cni0
จากนั้นรันคำสั่งต่อไปนี้:
sudo ufw default allow routed
เรียนรู้เพิ่มเติมวิธีกำหนดค่าไฟร์วอลล์ Ubuntu ด้วย UFW
ขั้นตอนที่ 3:การเพิ่มผู้ใช้ของคุณไปยังกลุ่ม MicroK8s
ในขณะนี้ คุณจะต้องใช้ sudo คำสั่งเพื่อรันคำสั่ง MicroK8s ส่วนใหญ่ แม้ว่าจะเป็นมาตรการรักษาความปลอดภัยที่ดีบนเซิร์ฟเวอร์ที่ใช้งานจริง แต่ก็อาจไม่จำเป็นสำหรับเครื่องที่กำลังพัฒนา
เพิ่มผู้ใช้ของคุณในกลุ่ม MicroK8 เพื่อหลีกเลี่ยงการใช้ sudo
sudo usermod -aG microk8s $USER
นอกจากนี้ กำหนดให้ผู้ใช้ปัจจุบันของคุณเป็นเจ้าของ ~/.kube ไดเรกทอรี
sudo chown -f -R $USER ~/.kube
เพื่อให้การเปลี่ยนแปลงมีผล ให้โหลดกลุ่มผู้ใช้ใหม่โดยเรียกใช้คำสั่งต่อไปนี้:
newgrp microk8s
เรียนรู้เพิ่มเติม:วิธีจัดการกลุ่มผู้ใช้บน Linux
ขั้นตอนที่ 4:การเปิดใช้งานส่วนเสริมที่สำคัญ
ตามค่าเริ่มต้น MicroK8 จะมีค่าขั้นต่ำเปล่าเพื่อให้เกิดรอยเท้าน้อยที่สุดบนอุปกรณ์ Edge และอุปกรณ์ IoT อย่างไรก็ตาม คุณสามารถติดตั้งส่วนเสริมที่สำคัญบางอย่างเพื่อจัดการบริการ MicroK8 ได้ เปิดใช้งานส่วนเสริม DNS แดชบอร์ด และพื้นที่เก็บข้อมูลด้วย microk8s คำสั่ง
microk8s enable dns dashboard storage
บริการอื่นอาจจำเป็นต้องใช้ส่วนเสริม DNS ดังนั้นจึงแนะนำให้เปิดใช้งานเสมอ
ส่วนเสริมแดชบอร์ดให้ภาพรวมกราฟิกของบริการใน MicroK8 แก่คุณ คุณยังสามารถใช้เพื่อจัดการบริการต่างๆ ได้อีกด้วย
คุณสามารถดูรายการ Add-on ของ MicroK8 ที่มีได้โดยเรียกใช้คำสั่ง:
microk8s status
ขั้นตอนที่ 5:การดูแดชบอร์ด MicroK8s
เมื่อคุณเปิดใช้งานส่วนเสริมแดชบอร์ดแล้ว คุณสามารถเข้าถึงแดชบอร์ด MicroK8 จากเว็บเบราว์เซอร์ของคุณได้อย่างง่ายดาย
ก่อนอื่น คุณต้องมีที่อยู่ IP ของพ็อดแดชบอร์ด คุณสามารถรับได้โดยการรันคำสั่ง:
microk8s kubectl get all --all-namespaces
จากผลลัพธ์ของคำสั่งด้านบน คุณจะสังเกตเห็นว่า kubernetes-dashboard บริการกำลังทำงานบนที่อยู่ IP 10.152.183.35 และกำลังฟังบนพอร์ต TCP 443 โปรดทราบว่าที่อยู่ IP นี้อาจแตกต่างจากที่ใช้บริการแดชบอร์ดของคุณเพราะถูกสร้างแบบสุ่ม
ในเบราว์เซอร์ของคุณ ไปที่ที่อยู่ IP ที่ระบุไว้ ในกรณีนี้จะเป็น https://10.152.183.35:443 . ตรวจสอบว่าคุณชี้ไปที่ URL ที่ถูกต้อง
เพื่อความปลอดภัย แดชบอร์ด Kubernetes จะขอรายละเอียดการตรวจสอบสิทธิ์เพื่อลงชื่อเข้าใช้จากคุณ คุณสามารถเข้าถึงโทเค็นแดชบอร์ดเริ่มต้นได้โดยการเรียกใช้คำสั่งต่อไปนี้ จากนั้นคัดลอก kubernetes.io/service-account-token นำเสนอและวางลงในอินพุตโทเค็น
token=$(microk8s kubectl -n kube-system get secret | grep default-token | cut -d " " -f1)
microk8s kubectl -n kube-system describe secret $token
แดชบอร์ดจะแสดงภาพรวมของเวิร์กโหลด บริการ การกำหนดค่า คลัสเตอร์ของ MicroK8 ให้กับคุณ
ขั้นตอนที่ 6:การสร้างบริการด้วย MicroK8
หากต้องการดูการทำงานของ MicroK8 ให้สร้างการปรับใช้บริการ microbot ที่มีสองพ็อด สร้างพ็อดโดยใช้ kubectl คำสั่ง:
microk8s kubectl create deployment microbot --image=dontrebootme/microbot:v1
ปรับขนาดพ็อดไมโครบอทโดยใช้คำสั่งด้านล่าง
microk8s kubectl scale deployment microbot --replicas=2
สร้างบริการเพื่อเปิดเผยการปรับใช้ไมโครบอท
microk8s kubectl expose deployment microbot --type=NodePort --port=80 --name=microbot-service
ขณะนี้เราได้ปรับใช้พ็อดไมโครบอทสองเครื่องภายใต้ชื่อ บริการ/ไมโครบอท-บริการ . คุณสามารถดูรายละเอียดของบริการไมโครบอทและบริการอื่นๆ ได้โดยเรียกใช้คำสั่งต่อไปนี้:
microk8s kubectl get all --all-namespaces
คุณจะสังเกตเห็นว่าบริการไมโครบอททำงานบน NodePort ดังนั้นคุณจึงสามารถเข้าถึงได้ผ่านเบราว์เซอร์บนพีซีของคุณ ในกรณีนี้ บริการกำลังทำงานบนพอร์ตที่สร้างแบบสุ่ม 30353
ในเบราว์เซอร์ของคุณ ไปที่ URL https://localhost:30353, โดยที่ 30353 คือหมายเลขพอร์ตที่แสดงในเอาต์พุตด้านบน ตรวจสอบให้แน่ใจว่าคุณใช้หมายเลขพอร์ตที่ถูกต้อง
Kubernetes กับ Docker:คุณควรเลือกอันไหน
คู่มือนี้กล่าวถึงวิธีการติดตั้ง Kubernetes ขั้นต่ำในเครื่องพีซีหรืออุปกรณ์ Edge ของคุณ Kubernetes เป็นส่วนหนึ่งของเวิร์กโฟลว์ของนักพัฒนาจำนวนมาก และใช้กันอย่างแพร่หลายในการปรับใช้แอปพลิเคชันที่มีคอนเทนเนอร์ระดับสูงในการผลิต
Kubernetes ใช้สำหรับจัดการหรือจัดกลุ่มคอนเทนเนอร์ เช่น คอนเทนเนอร์เทียบท่าได้อย่างง่ายดาย ในทางกลับกัน Docker แบบสแตนด์อโลนส่วนใหญ่จะใช้สำหรับการจัดการคอนเทนเนอร์เดี่ยว การเลือกว่าจะใช้ Docker หรือ Kubernetes จะขึ้นอยู่กับความสามารถของทีมของคุณและขนาดของซอฟต์แวร์ที่จะปรับใช้กับการผลิต