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
Nhận xét
Đăng nhận xét