Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีตั้งค่า Local Kubernetes Instance ด้วย MicroK8s บน Ubuntu

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 แล้วคลิกปุ่ม ติดตั้ง ปุ่ม.

วิธีตั้งค่า Local Kubernetes Instance ด้วย MicroK8s บน Ubuntu

ขั้นตอนที่ 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
วิธีตั้งค่า Local Kubernetes Instance ด้วย MicroK8s บน Ubuntu

จากผลลัพธ์ของคำสั่งด้านบน คุณจะสังเกตเห็นว่า 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
วิธีตั้งค่า Local Kubernetes Instance ด้วย MicroK8s บน Ubuntu

แดชบอร์ดจะแสดงภาพรวมของเวิร์กโหลด บริการ การกำหนดค่า คลัสเตอร์ของ MicroK8 ให้กับคุณ

วิธีตั้งค่า Local Kubernetes Instance ด้วย MicroK8s บน Ubuntu

ขั้นตอนที่ 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
วิธีตั้งค่า Local Kubernetes Instance ด้วย MicroK8s บน Ubuntu

คุณจะสังเกตเห็นว่าบริการไมโครบอททำงานบน NodePort ดังนั้นคุณจึงสามารถเข้าถึงได้ผ่านเบราว์เซอร์บนพีซีของคุณ ในกรณีนี้ บริการกำลังทำงานบนพอร์ตที่สร้างแบบสุ่ม 30353

ในเบราว์เซอร์ของคุณ ไปที่ URL https://localhost:30353, โดยที่ 30353 คือหมายเลขพอร์ตที่แสดงในเอาต์พุตด้านบน ตรวจสอบให้แน่ใจว่าคุณใช้หมายเลขพอร์ตที่ถูกต้อง

วิธีตั้งค่า Local Kubernetes Instance ด้วย MicroK8s บน Ubuntu

Kubernetes กับ Docker:คุณควรเลือกอันไหน

คู่มือนี้กล่าวถึงวิธีการติดตั้ง Kubernetes ขั้นต่ำในเครื่องพีซีหรืออุปกรณ์ Edge ของคุณ Kubernetes เป็นส่วนหนึ่งของเวิร์กโฟลว์ของนักพัฒนาจำนวนมาก และใช้กันอย่างแพร่หลายในการปรับใช้แอปพลิเคชันที่มีคอนเทนเนอร์ระดับสูงในการผลิต

Kubernetes ใช้สำหรับจัดการหรือจัดกลุ่มคอนเทนเนอร์ เช่น คอนเทนเนอร์เทียบท่าได้อย่างง่ายดาย ในทางกลับกัน Docker แบบสแตนด์อโลนส่วนใหญ่จะใช้สำหรับการจัดการคอนเทนเนอร์เดี่ยว การเลือกว่าจะใช้ Docker หรือ Kubernetes จะขึ้นอยู่กับความสามารถของทีมของคุณและขนาดของซอฟต์แวร์ที่จะปรับใช้กับการผลิต