Tuyệt vời, để tôi chia sẻ về cái vụ “ars vs cry” hôm nay nhé. Nghe tên thì có vẻ hoành tráng, nhưng thực ra là tôi loay hoay cấu hình mấy cái linh tinh thôi.
Chuyện là thế này, dạo gần đây tôi mày mò cái vụ Kubernetes (K8s) ấy mà. Thấy mọi người bảo hay, lại đang rảnh nên quyết định thử xem sao. Tôi chọn Minikube để vọc vạch tại nhà cho nó lành. Cài đặt Minikube xong xuôi, mọi thứ có vẻ ngon nghẻ. Nhưng đời không như là mơ!
-
Đầu tiên, tôi định triển khai một cái ứng dụng web đơn giản lên K8s. Tôi viết một cái file `*`, xong rồi gõ lệnh `kubectl apply -f *`.
-
Mọi thứ có vẻ ổn, pod được tạo ra, service cũng ngon lành. Nhưng khi tôi thử truy cập vào service qua trình duyệt thì… ôi thôi, không thấy gì cả!
Tôi bắt đầu điên cuồng tìm kiếm trên mạng. Đọc đủ các loại blog, stackoverflow các kiểu. Ai dè, hóa ra là do cái Minikube của tôi chưa được cấu hình để lộ service ra ngoài. Thế là tôi lại phải loay hoay tìm cách expose cái service ra.
Sau một hồi vật lộn, cuối cùng tôi cũng tìm ra cách dùng lệnh `minikube service –url` để lấy cái URL của service. Copy cái URL đó vào trình duyệt thì… bingo! Trang web của tôi hiện ra. Mừng hú hồn!
Nhưng mà chưa hết đâu!
Sau khi mừng rơn vì chạy được web, tôi lại muốn thử cấu hình ingress để có thể truy cập vào ứng dụng của mình qua domain name. Lại một lần nữa, tôi lao vào đọc tài liệu, cài đặt ingress controller. Nhưng lần này, mọi thứ còn khó khăn hơn.
Tôi cấu hình ingress các kiểu, nhưng trình duyệt vẫn báo lỗi “connection refused”. Tôi kiểm tra log của ingress controller thì thấy một đống lỗi lằng nhằng. Lúc này tôi thực sự muốn “cry” luôn ấy chứ!
Và đây là cách tôi giải quyết:
- Kiểm tra lại cấu hình ingress: Tôi ngồi rà soát lại từng dòng trong file `*` xem có lỗi chính tả hay sai sót gì không.
- Kiểm tra DNS: Tôi đảm bảo rằng domain name của mình đã được trỏ đúng vào IP của Minikube.
- Tìm kiếm trên mạng: Lại một lần nữa, tôi nhờ đến sự trợ giúp của Google. Lần này, tôi tìm được một bài viết hướng dẫn cách cấu hình ingress trên Minikube một cách chi tiết.
Cuối cùng, sau khi làm theo hướng dẫn trong bài viết, tôi cũng đã cấu hình được ingress thành công. Tôi có thể truy cập vào ứng dụng của mình qua domain name một cách dễ dàng.
Kết luận: Cái vụ “ars vs cry” này đã dạy cho tôi một bài học rằng, làm việc với K8s không hề dễ dàng. Nhưng nếu chịu khó tìm tòi, học hỏi, thì cuối cùng cũng sẽ giải quyết được vấn đề. Quan trọng là đừng nản!