- vừa được xem lúc

Tìm hiểu cơ bản về Kubernetes - K8s (Part 1)

0 0 124

Người đăng: Vương Minh Thái

Theo Viblo Asia

Lời nói đầu

  • V.I.Lenin đã từng nói "HỌC, HỌC NỮA, HỌC MÃI", và câu nói ấy vẫn chứng minh được tính đúng đắn của mình cho đến tận ngày nay, và đặc biệt là trong xã hội công nghệ 4.0 hiện nay. Các công nghệ mới xuất hiện và cập nhật liên tục như một cơn gió (ví dụ như Laravel 8.x đã ra đời chỉ sau Laravel 7 vỏn vẹn có 6 tháng 😱😱😱😱) đòi hỏi mỗi lập trình viên đều phải tự tìm tòi học hỏi các công nghệ mới để tránh việc bản thân bị lạc hậu và đào thải.
  • Và lần này, mình đang tìm hiểu về Kubernetes. Còn về lí do vì sao mình lại chọn Kubernetes thì hãy chờ xuống dưới để hiểu được Kubernetes có thể làm được những gì nhé.
  • Bắt đầu thôi nào!

Nội dung

  • Khi tìm hiểu về một công nghệ mới thì cái bạn quan tâm chắc chắn là:

    • Nó là gì?
    • Nó dùng để làm gì?
    • Ai phát triển ra nó
    • Sử dụng nó như thế nào?
  • Và series bài viết này cũng sẽ đi theo một bố cục như thế để giúp cho các bạn có thể nắm được thông tin một cách nhanh nhất: "MÌNH CÓ CẦN HỌC CÁI NÀY KHÔNG?"

Kubernetes là gì

Kubernetes (K8s) is an open-source system for automating deployment, scaling, and management of containerized applications.

  • Theo như trên trang chủ tự giới thiệu thì Kubernetes là một hệ thống mã nguồn mở phục vụ mục đích deploy dự án tự động (automating deployment), mở rộng hệ thống (scaling) và quản lý các container.

  • Và cha đẻ của nó chính là ông lớn Google, đây cũng là một điểm cộng rất lớn về độ uy tín của công cụ này rồi phải không nào. Trước đó, Google sử dụng một công cụ nội bộ gọi là Borg để vận hành và quản lý các service của mình. Và với hơn 15 năm kinh nghiệm về vận hành sản phẩm của mình, Google đã cho ra mắt Kubernetes vào 07/06/2014.

    Và nếu các bạn có hứng thú có thể đọc phần lịch sử phát triển ở đây, cũng khá là nhiều thứ hay ho và này nọ 😄

  • Về cách gọi tên thì mình cũng không chắc chắn lắm, các bạn có thể lựa chọn 1 trong những cách sau:

    • Ciu-bơ-ne-ti-sờ: đây là phiên âm của google dịch
    • Ciu-bơ-nét: đây là phiên âm của mình, bỏ âm gió ngắn gọn hơn mà người nghe vẫn có thể hiểu được
    • K8s: cái này thì không sợ phát âm sai, cả thế giới đều có thể hiểu đúng 😆😆😆😆 Còn lí giải vì sao lại thế thì đơn giản nó là K-8-chữ-cái-ở-giữa-s nên gọi là K8s (theo như cách đặt tên này thì mình sẽ là T2I 😅😅😅😅)

Các khái niệm cơ bản

  • Cluster : Một Kubernetes cluster là một tập các máy ảo/vật lý được cài đặt Kubernetes dùng để chạy các ứng dụng. Các máy ảo/máy vật lý này được gọi là các nodes, được phân ra thành node master và các nodes worker. Như hình ảnh phía dưới là mô tả hệ thống gồm Kubernetes Master Node và các Worker Nodes (và như các bạn có thể nhìn thấy trong ảnh thì ở đây có thể có được hàng chục, thậm chí hàng ngàn worker nodes)

  • Node (https://kubernetes.io/docs/concepts/architecture/nodes/): Kubernetes nodes là các máy ảo hay máy vật lý chạy kubernetes. Các node này cần chạy Kubernetes và docker, và mỗi máy này là một docker host.

    Node là đơn vị nhỏ nhất của phần cứng máy tính trong Kubernetes. Nó là đại diện của một máy duy nhất trong Kubernetes cluster. Trong hầu hết các hệ thống Kubernetes, một node có thể sẽ là một máy vật lý thật sự hoặc máy ảo của một cloud platform như Google Cloud Platform hay AWS, hoặc đơn giản là một máy ảo được tạo bởi VirtualBox trên một máy đơn.

    Chúng ta có thể đơn giản xem mỗi node như một tập hợp tài nguyên CPU và RAM có thể được sử dụng. Bằng cách này, bất kỳ máy nào cũng có thể thay thế bất kỳ máy nào khác trong Kubernetes cluster.

  • Pods (https://kubernetes.io/docs/concepts/workloads/pods/): Khi một ứng dụng được đóng gói thì ứng dụng đó sẽ có thể chạy trên một container độc lập, Kubernetes sử dụng khái niệm pod để nhóm các container lại với nhau. Một pod là một nhóm các container, các container này sẽ dùng chung tài nguyên và network, các container trong một pod có thể duy trì giao tiếp với nhau như trên một máy chủ nhưng vẫn giữ được sự độc lập cần thiết.

    Với Kubernetes, các pods thường là nhóm các containers có cùng mục đích sử dụng, ví dụ như một pod tập hợp 4 container chạy nginx + backend, và một pod tập hợp 2 container chạy frontend + nginx .v.v. , Vì vậy bài toán scale ứng dụng sẽ trở nên rất đơn giản vì chỉ cần scale các pods.

Một số module cơ bản của Kubernetes

  • Và như trang chủ có liệt kê một số module cơ bản của Kubernetes như hình bên dưới:

    • Create Kubernetes cluster
    • Deploy an app
    • Explore app
    • Expose app publicity
    • Scale up app
    • Update app

    Và các bài viết tiếp theo trong series này cũng sẽ tìm hiểu lần lượt từng bước như vậy.

Kết luận

  • Trong phạm vi của 1 bài viết mở màn, mình chỉ có thể giới thiệu cho các bạn một số khái niệm cơ bạn về K8s, trong những bài viết tiếp theo của series này mình sẽ dần dần cung cấp thêm cho các bạn các kiến thức về setup và ứng dụng K8s, các bạn hãy đón chờ các bài viết tiếp theo trong series này của mình nhé!

Tài liệu tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 524

- vừa được xem lúc

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 396

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 734

- vừa được xem lúc

Tìm hiểu về Resource Controller trong Laravel

Giới thiệu. Trong laravel, việc sử dụng các route post, get, group để gọi đến 1 action của Controller đã là quá quen đối với các bạn sử dụng framework này.

0 0 357

- vừa được xem lúc

Phân quyền đơn giản với package Laravel permission

Như các bạn đã biết, phân quyền trong một ứng dụng là một phần không thể thiếu trong việc phát triển phần mềm, dù đó là ứng dụng web hay là mobile. Vậy nên, hôm nay mình sẽ giới thiệu một package có thể giúp các bạn phân quyền nhanh và đơn giản trong một website được viết bằng PHP với framework là L

0 0 448

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 433