Chuyển đến nội dung chính

Day 1: Kubernetes Components - Part 2

Pod là gì?

Một Pod là một khái niệm trừu tượng của Kubernetes, đại diện cho một nhóm gồm một hoặc nhiều ứng dụng containers (ví dụ như Docker hoặc rkt) và một số tài nguyên được chia sẻ cho các containers đó. Những tài nguyên đó bao gồm:

  • Lưu trữ được chia sẻ, dưới dạng Volumes
  • Kết nối mạng, như một cluster IP duy nhất
  • Thông tin về cách chạy từng container, chẳng hạn như phiên bản container image hoặc các ports cụ thể để sử dụng

Mỗi pod sẽ sở hữu một internal IP riêng và có thể giao tiếp với nhau. 

Địa chỉ IP này sẽ được thay đổi khi các pod được khởi tạo lại (re-creation). 

Thông thường một ứng dụng sẽ được chạy trên một pod. Vì địa chỉ IP của pod được thay đổi mỗi khi được khởi tạo lại nên giả sử container db của ta bị lỗi khiến pod chứa 2 container db và app phải tiến hành khởi tạo lại để thay thế cái cũ thì lúc này 2 pod sẽ bị mất kết nối. Chính vì vậy ta sẽ có tiếp một khái niệm mới là service.

Container

Container là một run-time environment mà ở đó người dùng có thể chạy một ứng dụng độc lập. Những container này rất gọn nhẹ và cho phép bạn chạy ứng dụng trong đó rất nhanh chóng và dễ dàng.

Service

Service được xác định dựa trên label, đại diện cho một entry point để truy cập vào ứng dụng. Mỗi service có địa chỉ IP và port không đổi. Client có thể kết nối đến các IP và port của service, sau đó sẽ được điều hướng đến các pod để xử lý. Quan trọng hơn hết là life cycle của service và pod không liên quan quan (kết nối) với nhau nên khi một pod bị crash (hoặc chết) thì service và IP của nó vẫn tồn tại. Chúng ta có thể định nghĩa external service hoặc internal service tùy vào mục đích sử dụng. Khi browser request đến ứng dụng, lúc này ta sẽ sử dụng IP để kết nối (external service) nhưng url với những sản phẩm production sẽ có domain name lúc này ta có tiếp một khái niệm là ingress.

Ingress

Ingress là thành phần dùng để điều hướng các yêu cầu trafic giao thức HTTP và HTTPS từ bên ngoài vào các dịch vụ bên trong Cluster. Nó chỉ phục vụ các cỏng, yêu cầu HTTP và HTTPS còn lại các cổng khác, giao thức khác được truy cập từ bên ngoài thì ta dùng các kiểu service khác. Lúc này request sẽ đi đến ingreass và chuyển tiếp đến các service.

Label

Label cung cấp meta data nhận dạng cho các object trong Kubernetes. Label cho phép ta tổ chức và nhóm các object trong cluster. Một object có thể có nhiều label và một label có thể được gán cho nhiều object khác nhau (n-n). Ta có thể dùng label để lọc các đối tượng trong cluster một cách dễ dàng

 

Tham khảo

Bạn này viết khá dễ hiểu, mình dựa vào đây để thêm vào blog: https://viblo.asia/p/tim-hieu-ve-kubernetes-OeVKBrRAKkW

Nhận xét

Bài đăng phổ biến từ blog này

[ASP.NET MVC] Authentication và Authorize

Một trong những vấn đề bảo mật cơ bản nhất là đảm bảo những người dùng hợp lệ truy cập vào hệ thống. ASP.NET đưa ra 2 khái niệm: Authentication và Authorize Authentication xác nhận bạn là ai. Ví dụ: Bạn có thể đăng nhập vào hệ thống bằng username và password hoặc bằng ssh. Authorization xác nhận những gì bạn có thể làm. Ví dụ: Bạn được phép truy cập vào website, đăng thông tin lên diễn đàn nhưng bạn không được phép truy cập vào trang mod và admin.

ASP.NET MVC: Cơ bản về Validation

Validation (chứng thực) là một tính năng quan trọng trong ASP.NET MVC và được phát triển trong một thời gian dài. Validation vắng mặt trong phiên bản đầu tiên của asp.net mvc và thật khó để tích hợp 1 framework validation của một bên thứ 3 vì không có khả năng mở rộng. ASP.NET MVC2 đã hỗ trợ framework validation do Microsoft phát triển, tên là Data Annotations. Và trong phiên bản 3, framework validation đã hỗ trợ tốt hơn việc xác thực phía máy khách, và đây là một xu hướng của việc phát triển ứng dụng web ngày nay.

Tổng hợp một số kiến thức lập trình về Amibroker

Giới thiệu về Amibroker Amibroker theo developer Tomasz Janeczko được xây dựng dựa trên ngôn ngữ C. Vì vậy bộ code Amibroker Formula Language sử dụng có syntax khá tương đồng với C, ví dụ như câu lệnh #include để import hay cách gói các object, hàm trong các block {} và kết thúc câu lệnh bằng dấu “;”. AFL trong Amibroker là ngôn ngữ xử lý mảng (an array processing language). Nó hoạt động dựa trên các mảng (các dòng/vector) số liệu, khá giống với cách hoạt động của spreadsheet trên excel.