Kubernetes Giới thiệu cho người mới bắt đầu

Nghe nhiều về Kubernetes nhưng không chắc chúng là gì?


Kubernetes là gì?

Kubernetes là một công cụ nguồn mở, đảm nhiệm việc điều phối container. Nó tự động hóa việc triển khai container, mở rộng liên tục và giảm tỷ lệ, cân bằng tải container, v.v..

Kubernetes GeekFlare

Google đã phát triển ban đầu Kubernetes trên ngôn ngữ lập trình Go.

Hiện tại, nó là công ty dẫn đầu thị trường trong việc sắp xếp các container. Kubernetes là một nền tảng lý tưởng để lưu trữ các ứng dụng microservice mở rộng linh hoạt. Khi bạn đang làm việc trên một môi trường sản xuất, Kubernetes là nền tảng được ưa thích và an toàn nhất cho việc điều phối container.

Bởi vì trong môi trường sản xuất, bạn mong đợi thời gian chết bằng không, cụm của bạn sẽ luôn hoạt động..

Với Google Cloud Platform (GCP), bạn có thể khởi chạy Kubernetes chỉ bằng vài cú nhấp chuột. Nó được hỗ trợ bởi các nhà cung cấp đám mây khác, cũng như AWS và Azure. Và, có nhiều nền tảng Kubernetes được quản lý có sẵn.

Tại sao Kubernetes?

Trước đó, một cuộc chiến giữa các nhà phát triển và người thử nghiệm là một điều phổ biến.

Các môi trường được sử dụng là khác nhau đối với họ; những gì hoạt động trên hệ thống nhà phát triển hệ thống không chạy trên hệ thống thử nghiệm.

Bây giờ hầu hết các tổ chức sử dụng container, các vấn đề xuất hiện do sự khác biệt trong môi trường không xảy ra nữa.

Nhưng tổ chức và chạy nhiều container cũng không phải là một nhiệm vụ dễ dàng. Khi bạn đang làm việc trên các ứng dụng động, tăng / giảm tỷ lệ, số lượng container là một điều thường xuyên. Làm các nhiệm vụ như vậy có thể phức tạp và rủi ro. Do đó, cần có một công cụ điều phối container và đó là lý do tại sao Kubernetes là cần thiết.

Tính năng Kubernetes

Có rất nhiều, nhưng sau đây là một số trong những người tốt nhất.

# Đóng gói thùng tự động

Kubernetes đóng gói ứng dụng của bạn và nó tự động đặt các thùng chứa dựa trên yêu cầu của chúng và các tài nguyên có sẵn

# Khám phá dịch vụ và cân bằng tải

Kubernetes tự động gán các container địa chỉ IP của họ và tên DNS cho các container chạy các hoạt động logic. Tính năng Cân bằng tải cũng có mặt giữa bộ container.

# Dàn nhạc lưu trữ

Kubernetes tự động gắn kết hệ thống lưu trữ mà bạn chọn. Nó có thể là bộ nhớ cục bộ hoặc nhà cung cấp đám mây công cộng như AWS.

# Tự chữa bệnh

Bất cứ khi nào Kubernetes nhận ra rằng một trong các container của bạn bị lỗi, nó sẽ tự khởi động lại container đó cũng tạo ra một container mới thay cho container bị hỏng. Trong trường hợp nút của bạn không thành công, các thùng chứa đang chạy trên nút đó sẽ bắt đầu trên một nút đang chạy khác trong cụm.

# Thu nhỏ theo chiều ngang

Bạn có thể mở rộng ứng dụng của mình lên xuống nhanh chóng bằng một lệnh đơn giản. Lệnh đơn giản có thể được chạy trên CLI hoặc thông qua bảng điều khiển Kubernetes. Cũng có thể tự động điều chỉnh tỷ lệ, dựa trên mức độ sử dụng CPU, các thùng chứa của bạn sẽ tự động được thu nhỏ hoặc thu nhỏ lại.

# Tự động quay lại và triển khai

Bất cứ khi nào có một bản cập nhật cho ứng dụng của bạn, Kubernetes sẽ liên tục đưa ra các thay đổi và cập nhật này cho ứng dụng hoặc cấu hình của nó. Không phải tất cả các trường hợp được cập nhật cùng một lúc, do đó đảm bảo có tính sẵn sàng cao. Nếu có lỗi xảy ra, thì Kubernetes sẽ quay lại thay đổi ngay lập tức.

Thuật ngữ Kubernetes

Trước khi bạn bị bẩn tay, bạn cần biết một số thuật ngữ được sử dụng trong Kubernetes thường xuyên.

# Pod

Nó đại diện cho một hoặc nhiều container đang chạy trong một cụm.

# Dịch vụ

Một cách trừu tượng để truy cập pod / ứng dụng.

Không gian tên

Nó được sử dụng để loại bỏ xung đột tên trong một cụm. Nó hỗ trợ nhiều cụm ảo trên cùng một cụm vật lý.

# Nút

Máy công nhân Kubernetes.

# Cụm

Bao gồm một nhóm các nút chạy các ứng dụng được đóng gói trên Kubernetes.

# Chú thích

Một nhãn để lưu trữ dữ liệu theo yêu cầu của tài nguyên.

# Âm lượng

Đây là thư mục dữ liệu chứa trong truy cập pod.

# Bản sao

Một số bản sao của pod chạy.

# Nhãn

Đặt tên cho các đối tượng Kubernetes để có thể xác định tên đó trên toàn hệ thống.

# Kubelet

Nó là một tác nhân chạy trên mỗi nút và kiểm tra xem các container có đang chạy trong các nhóm không.

# Kubectl

Tiện ích dòng lệnh để tương tác với máy chủ API Kubernetes.

# Kube-proxy

Proxy mạng chứa tất cả các quy tắc mạng trên mỗi nút trong cụm.

Kubernetes và Docker

Bây giờ bạn có thể nghĩ, Kubernetes khác với Docker như thế nào. Cụm từ Kubernetes vs Docker có thể gây hiểu nhầm.

Docker là một nền tảng đóng gói hệ điều hành, thư viện và ứng dụng bên trong một container. Hãy để tôi nói với bạn rằng Docker làm điều tương tự mà nó có nghĩa là làm trong Kubernetes. Nhưng khi bạn làm việc chỉ với Docker, mọi thứ đều thủ công. Bạn cần bắt đầu và dừng container bằng tay. Nhưng với Kubernetes, mọi thứ sẽ được tự động hóa.

Kubernetes có thể lên lịch các nhóm có container, Kubelet sau đó bảo Docker bắt đầu hoặc dừng container. Kubelet trong Kubernetes chịu trách nhiệm giám sát các container đó và thu thập thông tin của chúng trên nút chính. Vì vậy, sự khác biệt cơ bản là thay vì các quản trị viên nói với Docker phải làm gì, trong Kubernetes, tất cả đều tự động.

Có một công cụ khác được sử dụng để điều phối container là Docker Swarm. Vì vậy, những gì khác biệt giữa họ?

Kubernetes vs Docker Swarm

KubernetesDocker Swarm
Cài đặt phức tạpCài đặt đơn giản
Cộng đồng nguồn mở lớn hơnCộng đồng nhỏ hơn so với Kubernetes
Có thể sắp xếp 100 container dễ dàngTốt cho việc sắp xếp 10-20 container
Bảng điều khiển Kubernetes cung cấp GUIKhông có GUI
Hỗ trợ tự động mở rộng quy môKhông hỗ trợ tự động mở rộng quy mô
Hỗ trợ cập nhật cuộn với rollback tự độngHỗ trợ cập nhật cuộn nhưng không tự động rollback
Ghi nhật ký và giám sát có sẵn trong xây dựngCần bên thứ 3 như ELK để ghi nhật ký và giám sát
Có thể chia sẻ khối lượng với các thùng chứa trong cùng một nhómCó thể chia sẻ khối lượng với bất kỳ container trong cụm

Phần kết luận

Tôi hy vọng bây giờ bạn có một sự hiểu biết cơ bản về Kubernetes là gì và nó giúp ích như thế nào. Nếu bạn vào DevOps hoặc suy nghĩ để tham gia, thì tôi khuyên bạn nên dùng cái này khóa học Udemy tuyệt vời để học Kubernetes.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map