- Cơ sở dữ liệu (Databases), là một bộ sản phẩm cơ sở dữ liệu được
1.5.3. Tính năng self healing Health check:
Health check:
- Health check là một cách đơn giản để cho hệ thống biết một ứng dụng có đang hoạt động khơng? Từ đó, các dịch vụ khác sẽ khơng truy cập hoặc không gửi yêu cầu đến ứng dụng không hoạt động cho đến khi nó sẵn sàng và Kubernetes cũng có các cơ chế tự động để cố gắng đưa ứng dụng của ta hoạt động trở lại (Hình 1.10).
- Kubernetes cung cấp cho chúng ta hai loại health checks là Liveness check và Readiness check, điều quan trọng là ta phải hiểu được công dụng, sự khác biệt giữa 2 loại health checks này để có thể sử dụng chúng một cách có hiệu quả.
Hình 1.10. Hình ảnh mơ tả hoạt động của các Healthcheck Probes trong pod lifecycle.
- Liveness checks: Cơ chế liveness probe được sử dụng để kiểm tra xem khi
nào thì nên khởi động lại một pods. Tức là nó sẽ kiểm tra xem ứng dụng của ta còn sống hay đã chết hoặc khơng hoạt động đúng chức năng (Ví dụ, liveness probe có thể phát hiện deadlock, nơi một ứng dụng đang chạy, nhưng khơng có kết quả). Nếu ứng dụng của ta cịn đang hoạt động, thì Kubernetes sẽ khơng đụng gì đến nó cả. Nhưng nếu ứng dụng của ta đã chết, Kubernetes sẽ loại bỏ pod đó và bắt đầu một pod mới để thay thế nó.
- Readiness checks: Kubernetes sử dụng cơ chế readiness probe để xác định mức độ sẵn sàng cho ứng dụng của ta. Nó sẽ kiểm tra và đảm bảo khi nào ứng dụng sẵn sàng đón nhận lưu lượng truy cập trước khi cho phép một dịch vụ gửi lưu lượng truy cập đến pods đó. Nếu một sự thăm dị và kiểm tra khơng thành cơng nó sẽ ngừng gửi lưu lượng truy cập cho đến khi ứng dụng vượt qua được sự kiểm tra.
- Các loại Probes:Kubernetes cung cấp 3 loại probs
- HTTP probe: Kubernetes sẽ thực hiện ping tới một đường dẫn và nếu nó nhận lại được HTTP response trong phạm vi 200 hoặc 300 thì sẽ coi pod của ta là đang healthy, cịn nếu khơng pod đó sẽ được đánh dấu là unhealthy
- Command probe: Kubernetes sẽ chạy một command bên trong một container của ta. Nếu command được chạy trả về bằng 0, container của
ta sẽ được đánh dấu là healthy, ngược lại, sẽ được đánh dấu là unhealthy.
- TCP probe: Kubernetes sẽ cố gắng thiết lập một kết nối TCP trên port được chỉ định. Nếu nó có thể thiết lập kết nối, thì Pod được coi là healthy, ngược lại sẽ là một pod unhealthy
Auto-repairing nodes
- GKE sử dụng trạng thái sức khỏe của node để xác định xem một node có cần được sửa chữa hay khơng. Một node báo cáo trạng thái sẵn sàng (ready) được coi là khỏe mạnh. GKE kích hoạt hành động sửa chữa nếu một node báo cáo các báo cáo trạng thái không lành mạnh liên tiếp trong một ngưỡng thời gian nhất định. Tình trạng khơng lành mạnh có thể có nghĩa là:
- Một node báo cáo trạng thái NotReady khi kiểm tra liên tiếp trong ngưỡng thời gian nhất định (khoảng 10 phút).
- Một node không báo cáo bất kỳ trạng thái nào trong tất cả các ngưỡng thời gian nhất định (khoảng 10 phút).
- Đĩa khởi động của node hết dung lượng đĩa trong một khoảng thời gian dài (khoảng 30 phút).