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

Add one option to disable envoy panic threshold with MeshCircuitBreaker policy #11704

Open
Icarus9913 opened this issue Oct 8, 2024 · 3 comments
Labels
kind/feature New feature triage/pending This issue will be looked at on the next triage meeting
Milestone

Comments

@Icarus9913
Copy link
Contributor

Description

I noticed that there's an implementation difference between our MeshCircuitBreaker and Istio's (https://github.com/istio/istio/blob/7b2d8b9dacb7989d75b3b3d860988cadb9f5a848/pilot/pkg/networking/core/cluster_traffic_policy.go#L416-L423),
maybe we could add one flag to disable panic threshold and it depends on the user's choice.

@Icarus9913 Icarus9913 added triage/pending This issue will be looked at on the next triage meeting kind/feature New feature labels Oct 8, 2024
@Icarus9913 Icarus9913 added this to the 2.10.x milestone Oct 8, 2024
@lahabana
Copy link
Contributor

lahabana commented Oct 10, 2024

Would that be something like:

https://kuma.io/docs/dev/policies/meshcircuitbreaker/

      outlierDetection:
        panicDisabled: true
        interval: 5s
        baseEjectionTime: 30s
        maxEjectionPercent: 20
        splitExternalAndLocalErrors: true

?

Also from looking at the docs I see no mention of panic, we should talk about it (kumahq/kuma-website#1953).

Is there any possible workaround to set configuration in a way that will avoid entering panic?

@Icarus9913
Copy link
Contributor Author

Is there any possible workaround to set configuration in a way that will avoid entering panic?

During load balancing, Envoy will generally only consider available (healthy or degraded) hosts in an upstream cluster. However, if the percentage of available hosts in the cluster becomes too low, Envoy will disregard health status and balance either amongst all hosts or no hosts.

If you want to avoid entering panic mode, which means the upstream clusters keep in the healthy state and do not turn into unhealth. I guess maybe we just need to disable the Outlier detection ? And the upstream cluster would keep in health even they returned lots of failures.

@Icarus9913
Copy link
Contributor Author

For now, I can just only use the MeshProxyPatch to disable the enovy-panic-threshold

apiVersion: kuma.io/v1alpha1
kind: MeshProxyPatch
metadata:
  name: circuit-breaker
  namespace: kuma-system
spec:
  default:
    appendModifications:
    - cluster:
        jsonPatches:
        - op: add
          path: /common_lb_config
          value:
            healthy_panic_threshold: {}
        match:
          name: httpbin-1_kuma-demo_svc_8000
        operation: Patch
  targetRef:
    kind: Mesh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature New feature triage/pending This issue will be looked at on the next triage meeting
Projects
None yet
Development

No branches or pull requests

2 participants