0
0
Posts
Việt Hoàng
Việt Hoàngviethoang28

Giới thiệu về Kubernetes

Đăng vào 1 tuần trước

• 6 phút đọc

Chủ đề:

Kubernetes

Kubernetes chỉ là một phần trong hệ sinh thái của container ngày nay, do vậy trước khi đi vào tìm hiểu về Kubernetes, chúng ta cần biết tổng quan về hệ sinh thái của container. Trong hệ sinh thái của container có 03 phần chính, bao gồm

  • Phần 1: Đây là thành phần cơ bản và cốt lõi nhất trong hệ sinh thái container, các thành phần này bao gồm: Kiến trúc lõi của container (các khái niệm về runtime spec, image format speck); khái niệm images, network và storage.
  • Phần 2: Các công nghệ về platform liên quan tới container, bao gồm: các sản phẩm để orchestration container (sử dụng để khởi tạo các container theo các cơ chế điều phối), nền tảng để quản lý các container và các nền tảng PaaS dựa trên container.
  • Phần 3: Các công nghệ hỗ trợ container, bao gồm: công nghệ hỗ trợ khi triển khai container trên nhiều máy chủ vật lý, các giải pháp phụ trợ về thu thập log và gaims sát.
Docker-ecosys1
  • Kubernetes là một sản phẩm nằm trong phần 2 của hệ sinh thái của container hiện nay. Nó đóng vai trò là là một công cụ orchestration (tạo ra, điều phối và chỉ huy các container) - nôm na mà nói thì kubernetes là thằng túm đầu các máy vật lý hoặc máy ảo được cài đặt môi trường để triển khai container.

Các thông tin khởi đầu với Kubernetes

Cần chuẩn bị gì khi tìm hiểu về Kubernetes

  • Cần vừa đọc khái niệm lý thuyết vừa thực hành.
  • Để tìm hiểu tốt về Kubernetes thì cần tìm hiểu về hệ sinh thái container và docker ở mức cở bản (có nghĩa là cài cắm và thực hành được với docker cơ bản). Tài liệu về docker cơ bản ở đây: Khoá học docker
  • Kỹ năng và kiến thức tối quan trọng khi làm việc với Kubernetes là: Linux, Linux và Linux.
  • Kỹ năng bổ trợ khác: Network (TCP/IP), một vài kỹ năng cài đặt các ứng dụng cơ bản như web server, database.
  • Đối tượng người dùng thích hợp khi tìm hiểu Kubernetes: Sinh viên IT, các sysadmin, các lập trình viên và xa hơn nữa là bất kỳ ai có nhu cầu tìm hiểu.
  • Tài liệu chuẩn của Kubernetes tất nhiên là ở trang chủ của họ https://kubernetes.io/, ngoài ra github này cũng coi như là một tham khảo tốt.

Các thông tin tóm tắt về Kubernetes

  • Khơi mào cho Kubernetes là anh Google. Anh ấy sinh ra nó vì anh ấy bá và tất nhiên trong hệ thống của anh Google có ứng dụng container (theo mật báo thì có khoảng 2 tỉ container trong datacenter của google.
  • Kubernetes được dân chuyên môn hay viết tắt là K8S, tra từ điển ENG-VIETNAM thì không có nghĩa của từ này :). Trong các tài liệu này sẽ dùng từ K8S cho nhanh gọn nhé.
  • Kubernetes là một orchestration tools trong hệ sinh thái của container (có nghĩa còn các thứ khác tương đương hay là đối thủ của nó). Tóm lại nó là thằng để tạo, sửa, xóa, thay đổi, thêm bớt ... các container. Sử dụng nó thì skill về docker của bạn sẽ lên một level mới ;).
  • Kubernetes có thay thế OpenStack hay VMware ... được không?. Câu trả lời tới giờ là KHÔNG, thậm chí chúng còn kết hợp được với nhau. Bạn cần đủ kỹ năng sử dụng để tích hợp chúng, tôi sẽ giới thiệu ở tài liệu khác.
  • Kubernetes triển khai phù hợp với ngữ cảnh nào!
    • Với hệ thống nhiều máy chủ vật lý (trên 3 hoặc 5) có container engine (nghĩa là có sử dụng container), hoặc các hệ thống có số lượng container rất lớn lên đến vài trăm container trở lên (trong các bài mà hãng khoe thì toàn vài trăm nghìn ấy ạ).
    • Thích hợp với những ứng dụng có kiến trúc microservice hay cloud native app.
    • Thích hợp với các ứng dụng có nhu cầu scale khi có tải lớn (scale phải tự động chứ không chơi au tu mây cơm nhé. Đại ý là khi số lượng request tăng lên thì các container được quản lý bởi K8S sẽ tự động sinh ra hoặc khi 1 trong số các container bị down thì K8S tự động biết và bổ sung để thay thế.
    • Các sysadmin, developer ... cty muốn tự động hóa các nhu cầu cài đặt, triển khai hoặc tích hợp các giải pháp về CI/CD ( tự tìm thêm khái niệm về CI/CD này nhá, mình chỉ thấy nó hay được dùng cho các giải pháp này thôi).
    • Kubernetes có thể cài đặt trên 1 node hoặc nhiều node (máy chủ - tính cả vật lý, máy ảo, các máy trên các cloud Provider ...). Những anh như Google - AWS - M$ còn cung cấp sẵn sản phẩm về K8S luôn. Có click cái có ngay mà ko cần cài gì cả :).
    • Kubernetes cũng có rất nhiều cách cài đặt khác nhau, mỗi cách cài đặt thì lại phù hợp với các đối tượng (hay chính xác hơn là skill của đối tượng) hoặc các mô hình hoặc các môi trường (Môi trường thử nghiệm, môi trường dùng để demo hay đánh giá, môi trường production - chạy sản phẩm thật).
    • Nếu lười cài thì có thể làm theo trang này để vọc vạch về Kubernetes: https://kubernetes.io/docs/tutorials/kubernetes-basics/
    • Kubernetes có nhiều thành phần và khái niệm móc xích tới nhau, cần tìm hiểu cẩn thận và hiểu rõ để thuận lợi hơn cho bạn khi làm việc với Kubernetes.
    • Các sản phẩm tương đương với K8S là: Docker Swarm, Mesos.
    • Khi cài đặt K8S thì ta thường cài lên nhiều máy chủ - khi đó chúng được gọi là cụm Cluster.

Các cách cài đặt K8S

K8S có rất nhiều cách cài (công cụ khác nhau) khác nhau, tùy ngữ cảnh mà áp dụng. Tựu chung lại có 02 phương pháp cài đặt chính, đó là cài bằng tay và cài tự động (tự động thông qua các tools hoặc script mà bên khác cung cấp.

Cài bằng tay: Có nghĩa là cài theo kiểu step by step theo tài liệu của K8S.

  • Cài bằng tay thì tốn nhiều thời gian (có cách khắc phục là viết script hoặc lợi dụng các tools ở dưới) nhưng mang lại lợi ích về việc nắm chắc các bước nếu như bỏ thời gian đọc và cài theo.
  • Thích hợp với các môi trường phục vụ chạy production hoặc mô trường có nhiều host vật lý.
  • Cài bằng tay bằng các lệnh hoặc biên dịch từ mã nguồn mà K8S cung câp.

Minikube: Là một công cụ để cài đặt K8S - sử dụng nó như là cách bạn sử dụng mỳ ăn liền ấy. Minikube có các đặc điểm sau:

  • Minikube có thể hiểu là mì ăn liền trong thực tế, như vậy nó có tương đối các thành phần để đảm bảo K8S hoạt động được.
  • Minikube thích hợp với việc thử nghiệm ban đầu và thường cài trên 1 máy.
  • Minikube có thể chạy trên nhiều hệ điều hành khác nhau nhưng tốt nhất nên có một máy Ubuntu 14.04 hoặc Ubuntu 16.04 hoặc CentOS7 để cài Minikube.

Cài bằng các tools đã được chế lại theo môi trường triển khai, tùy vào nhà cung cấp dịch vụ mà họ sẽ cung cấp các công cụ cài hoặc thậm chí đã cài sẵn, ta chỉ việc vọc mà thôi :). Họ không tính tiền cài nhưng giá đã được bao gồm rồi nhé.

==> P/S: Thực ra mình nhìn thấy chỉ có 2 cách là cài đặt bằng tay và cài đặt tự động thôi :).

Đọc tới đây thì các bạn đã có thể sang bước thực hành về cài đặt được rồi.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào