Music

header ads

มาเล่น Kubernetes kubelet ใน CoreOS Linux

CoreOS รุ่นใหม่เพิ่ม kubelet เข้ามาช่วยให้คุณสามารถสร้าง Kubernetes cluster ได้เร็วยิ่งขึ้น โดยปกติ kubelet จะทำหน้าที่เป็น agent คอยดูแล pod ที่ถูกสร้างขึ้น register node เข้าไปยัง Kubernetes cluster ส่ง event, สถานะของ pod และรายงาน resource utilization นอกจากจะทำงานใน Kubernetes cluster แล้วยังสามารถทำงานแบบ stanalone ได้อีกด้วย ดังนั้นเราสามารถใช้ kubelet สร้าง single node Kubernetes cluster พร้อมระบบ monitoring resource utilization อย่าง cAdvisor ได้
มาเริ่มกันเลย เราจะใช้ CoreOS เวอร์ชั่น 773.1.0 ขึ้นไป อันดับแรกมาตั้งค่า service ใน systemd ให้ kubelet กันก่อน

sudo vim /etc/systemd/system/kubelet.service
[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/kubernetes/kubernetes
[Service]
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStart=/usr/bin/kubelet \
--api-servers=http://127.0.0.1:8080 \
--allow-privileged=true \
--config=/etc/kubernetes/manifests \
--v=2
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
view rawkubelet.service hosted with ❤ by GitHub
จากนั้นสั่ง start kubelet โดยใช้ systemctl ดังนี้
sudo systemctl daemon-reload
sudo systemctl start kubelet
ตรวจสอบสถานะ kubelet ด้วยคำสั่ง
sudo systemctl status kubelet
จากนั้นเราจะสั่ง bootstrap Kubernetes cluster โดยใช้ไฟล์ pod manifest ซึ่งเป็น default pod ใส่ลงใน /etc/kubernetes/manifests เมื่อ kubelet ตรวจสอบสถานะของ pod ก็จะพบว่าไม่มี pod default ตามไฟล์ manifests ที่สร้างไว้ kubelet จะสร้าง pod และสร้าง container ให้เราขึ้นมาใหม่โดยอัตโนมัติ
มาลองทดสอบกัน ดาวน์โหลด Kubernetes pod manifest มาก่อนดังนี้
wget https://raw.githubusercontent.com/coreos/pods/master/kubernetes.yaml
จากนั้นคัดลอกไฟล์ kubernetes.yaml ไปไว้ใน /etc/kubernetes/manifests/
sudo cp kubernetes.yaml /etc/kubernetes/manifests/
จากนั้นรอสักพัก แล้วใช้คำสั่ง docker เพื่อดูว่า kubelet จัดการ pod ให้เราจริงหรือไม่
sudo docker images
sudo docker ps
เราจะพบว่า kubelet ดาวน์โหลด images และสร้าง Kubernetes ให้อัตโนโมัติ
ลองใช้ kubectl ตรวจสอบ Kubernetes cluster ดูได้ดังนี้
wget https://storage.googleapis.com/kubernetes-release/release/v1.0.3/bin/linux/amd64/kubectl
chmod +x kubectl
./kubectl cluster-info
จากนี้คุณก็สามารถใช้งาน Kubenetes ตามปกติ มาดู cAdvisor กันบ้าง cAdvisor จะทำงานบน port 4194 ดังนี้
จะเห็นได้ว่าเราสามารถติดตั้ง Kubernetes cluster แบบ single node โดยใช้ kubelet ได้ง่ายๆ

Post a Comment

0 Comments