Xin chào tất cả các bạn. Rất vui được gặp lại các bạn trên blog foxcodesite hôm nay, mình sẽ cùng các bạn đi setup Rancher UI, hay nói cách khác là Dashboard cho K3s cluster mà mình và các bạn đã cùng nhau xây dựng từ bài trước nhé.
Tại sao cần Dashboard?
Chắc hẳn các bạn khi làm việc với kubernetes sẽ không còn xa lạ gì với các câu command siêu ngầu bắt đầu bằng một từ thần thánh là kubectl. Theo quan điểm của cá nhân mình thì khi mới làm quen với kubernetes thì chúng ta không nên quá lạm dụng dashboard mà tập trung vào học và sử dụng các command, cách viết file *.yaml để thao tác với kubernetes. Cũng giống với việc bạn sử dụng Source Tree thay vì sử dụng các câu lệnh đơn giản khi làm việc với git vậy. Khi mới làm quen bạn hãy tập sử dụng các git command một cách thành thạo và hiểu được bản chất của nó thì sau đó mới kết hợp sử dụng với UI tools như Source Tree. Tuy nhiên, chúng ta không thể phủ nhận vai trò của Dashboard UI trong một trường hợp cụ thể như sau. Vào một buổi đêm mùa hè đầy trăng và sao, bạn đang chở bạn gái vi vu quanh hồ Tây. Gió đưa hương một chút hoa sữa, bạn đang tận hưởng cảm giác chill chill sau một ngày làm việc mệt mỏi thì bỗng nhiên. Tinh … tinh … tinh … tinh Tiếng chuông điện thoại cất lên, oái, không biết giờ này sếp gọi gì nhỉ?
Alo, em nghe ạ.
T à, con service mày viết cho ông Takudo đang chết rồi nhé, tạm thời rollback lại về
version cũ cho anh nhé. Rồi anh hỏi tội mày sau?Dạ vâng anh ! :(.
Và thế bạn liền quay xe về để ssh vào server và thực hiện rollback. Nhưng khoan, bất giác bạn nhớ ra hệ thống có Dashboard UI, chỉ cần đăng nhập vào và thực hiện một cú click. Xời, tuyệt vời, bạn rollback chỉ trong chưa đầy một nốt nhạc. Sau đó ban vẫn có thể dạo chơi cùng bạn gái, service mai có thể check sau :)))) Đó chỉ là một ví dụ vui để chúng ta có thể hình dung được vai trò của Dashboard UI. Ngay sau đây, mình và các bạn cùng đi xây dựng một Dashboard UI cho k3s cluster thôi nào.
Tiến hành cài đặt
Chuẩn bị: Ta cần chuẩn bị 1 VPS thỏa các điều kiện sau:
Có public IP
Đã được cài đặt docker
Cài đặt: Rancher được cài đặt rất đơn giản bằng lệnh docker sau:
docker run -d --restart=unless-stopped \
-p 8000:80 -p 4443:443 \
--privileged \
rancher/rancher:latest
Sau khi chạy lệnh trên, ta kiểm tra bằng lệnh
docker ps | grep rancher
Kết quả là:
Done! Rancher của chúng ta đang khởi chạy. Đến đây chúng ta có thể đứng dậy làm tách trà rồi quay lại để chờ cho rancher khởi chạy bạn nhé :))))
Chúng ta truy cập vào rancher bằng link sau:
https://public_ip_vps:4443
Tại giao diện welcome, Rancher cho chúng ta 2 cách lấy initial password, do chúng ta cài đặt sử dụng docker nên dùng lệnh sau để lấy password:
docker logs container-id 2>&1 | grep "Bootstrap Password:"
Tiến hành copy/paste password, sau khi đăng nhập thành công, Rancher yêu cầu chúng ta đổi mật khẩu mặc định cho user admin.
Done! Sau khi đổi mật khẩu thành công, chúng ta đã vào được Home page của Rancher.
Để có thể thao tác được với k3s cluster chúng ta dựng hôm trước trên Rancher, ta phải tiến hành import cluster vào rancher. Bạn click vào button import như hình trên nhé. Rancher sẽ dẫn chúng ta đến trang import cluster.
Bạn nhập vào tên của cluster theo ý mình muốn. Sau đó click create và kết quả như sau:
Đến đây, bạn copy dòng lệnh thứ 2, như trên hình thì mình sẽ chạy lệnh sau trên k3s-cluster sử dụng kubectl:
curl --insecure -sfL https://34.126.172.98:4443/v3/import/vdsb6vsxh75t5ltlxbx89kjgqv9t4lx6xv4mwft6flrhfhbp2fjlbp_c-m-5dmp82l9.yaml | kubectl apply -f -
Kết quả là:
Vậy là chúng ta đã tiến hành import cluster trên Rancher, nào, lại nâng tách trà lên, thưởng thức vài ba nhấp và kiếm tra lại.
Bùm, thế là cluster của chúng ta đã active trên Rancher rồi. Bây giờ bạn có thể tha hồ kham phá cluster của mình bằng cách sử dụng Dashboard UI.
Tổng kết.
Trong bài viết này mình đã cùng các bạn setup Dashboard cho k3s cluster sử dụng Rancher và docker. Nếu điều kiện không cho phép các bạn tạo thêm một VPS để chạy riêng Rancher thì bạn có thể tham khảo cách cài đặt Rancher trực tiếp trên k3s cluster sử dụng helm ở link sau nhé. Ở bài viết sau, mình sẽ cùng các bạn setup ingress controller để public app của chúng ta ra ngoài internet. Cảm ơn các bạn đã theo dõi bài viết của mình. Xin chào và hẹn gặp lại.