Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optional Health Check Add-on for LoadBalancer API #946

Open
afritzler opened this issue Dec 19, 2023 · 0 comments
Open

Optional Health Check Add-on for LoadBalancer API #946

afritzler opened this issue Dec 19, 2023 · 0 comments
Labels
enhancement New feature or request networking

Comments

@afritzler
Copy link
Member

afritzler commented Dec 19, 2023

Background

In the IronCore project, the LoadBalancer API currently manages network traffic distribution. We aim to introduce an optional health check feature for NetworkInterface targets to enhance this functionality, ensuring it remains an optional add-on that preserves existing behavior when not configured.

Goal

Implement an optional health check mechanism for NetworkInterface targets attached to the LoadBalancer. This feature aims to improve reliability when enabled, while keeping the current behavior as the default when not configured.

Proposed Feature

Optional Health Check for NetworkInterfaces:

  • Objective: Provide an optional mechanism to assess the health status of NetworkInterface targets.
  • Mechanism:
    • Health Check Parameters (Optional):
      • Port: Port on the NetworkInterface for the health check.
      • Protocol: Protocol used (e.g., TCP, HTTP, HTTPS).
      • Interval: Frequency of health check.
      • Timeout: Duration to wait for a response.
      • Unhealthy Threshold: Consecutive failed checks before marking as unhealthy.
      • Healthy Threshold: Consecutive successful checks before marking as healthy again.
    • Default Behavior:
      • Without health check configuration, the LoadBalancer assumes all targets are viable for traffic.

Expected Outcomes

  1. Enhanced Flexibility and Reliability: Optional health check mechanism to direct traffic to healthy targets, maintaining existing functionality when not used.
  2. Dynamic and Efficient Traffic Management: Real-time adjustments in traffic distribution based on target health status.
  3. User Configurability: Ability for users to opt-in and tailor health check parameters.
  4. API Enhancement Proposal: Develop a comprehensive enhancement proposal documenting the changes to the LoadBalancer API, detailing the new health check feature, its configuration options, and integration with existing functionality.

Preparatory Tasks

  1. Research on Kubernetes Service Endpoint Availability:
    • Examine Kubernetes approaches to health checks and endpoint availability.
  2. Study of Other IaaS Implementations:
    • Explore health check implementations in other IaaS contexts.
  3. Analysis of Integration Challenges:
    • Identify potential challenges in integrating this feature with current LoadBalancer API and NetworkInterface setups.

Request for Comments

We seek feedback on:

  • Proposed health check structure and behavior.
  • Insights from Kubernetes and other IaaS implementations.
  • Additional tasks or considerations for effective implementation.

Conclusion

This proposal for an optional health check add-on aims to enhance the IronCore project's LoadBalancer API with improved reliability and user control. Community collaboration is key to refining and successfully integrating this feature.


This issue is created to reflect the evolving requirements of the IronCore project. We value community expertise and collaboration for this initiative.

@afritzler afritzler added enhancement New feature or request networking labels Dec 19, 2023
@afritzler afritzler added this to Core Dec 19, 2023
@afritzler afritzler moved this to Todo in Core Dec 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request networking
Projects
Status: Todo
Development

No branches or pull requests

1 participant