-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Replace CTLB workaround with a config option #8139
Changes from 4 commits
8a7bb1f
1299688
7ce8985
3b1a14a
e4234c7
bcbc294
a6e9086
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -69,6 +69,23 @@ const ( | |
FloatingIPsDisabled FloatingIPType = "Disabled" | ||
) | ||
|
||
// +kubebuilder:validation:Enum=Enabled;Disabled | ||
type BPFHostNetworkedNATType string | ||
|
||
const ( | ||
BPFHostNetworkedNATEnabled BPFHostNetworkedNATType = "Enabled" | ||
BPFHostNetworkedNATDisabled BPFHostNetworkedNATType = "Disabled" | ||
) | ||
|
||
// +kubebuilder:validation:Enum=TCP;Enabled;Disabled | ||
type BPFConnectTimeLBType string | ||
|
||
const ( | ||
BPFConnectTimeLBTCP BPFConnectTimeLBType = "TCP" | ||
BPFConnectTimeLBEnabled BPFConnectTimeLBType = "Enabled" | ||
BPFConnectTimeLBDisabled BPFConnectTimeLBType = "Disabled" | ||
) | ||
|
||
// FelixConfigurationSpec contains the values of the Felix configuration. | ||
type FelixConfigurationSpec struct { | ||
// UseInternalDataplaneDriver, if true, Felix will use its internal dataplane programming logic. If false, it | ||
|
@@ -437,8 +454,16 @@ type FelixConfigurationSpec struct { | |
// BPFConnectTimeLoadBalancingEnabled when in BPF mode, controls whether Felix installs the connection-time load | ||
// balancer. The connect-time load balancer is required for the host to be able to reach Kubernetes services | ||
// and it improves the performance of pod-to-service connections. The only reason to disable it is for debugging | ||
// purposes. [Default: true] | ||
// purposes. This will be deprecated. Use BPFConnectTimeLoadBalancing [Default: true] | ||
BPFConnectTimeLoadBalancingEnabled *bool `json:"bpfConnectTimeLoadBalancingEnabled,omitempty" validate:"omitempty"` | ||
// BPFConnectTimeLoadBalancing when in BPF mode, controls whether Felix installs the connect-time load | ||
// balancer. The connect-time load balancer is required for the host to be able to reach Kubernetes services | ||
// and it improves the performance of pod-to-service connections.When set to TCP, connect time load balancing | ||
// is available only for services with TCP ports. [Default: Enabled] | ||
BPFConnectTimeLoadBalancing *BPFConnectTimeLBType `json:"bpfConnectTimeLoadBalancing,omitempty" validate:"omitempty,oneof=TCP Enabled Disabled"` | ||
// BPFHostNetworkedNATWithoutCTLB when in BPF mode, controls whether Felix does a NAT without CTLB. This along with BPFConnectTimeLoadBalancing | ||
// determines the CTLB behavior. [Default: Disabled] | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Default should be enabled The end result is that DNS which is UDP does not break when backend dies, while TCP does not pay the perf hit. |
||
BPFHostNetworkedNATWithoutCTLB *BPFHostNetworkedNATType `json:"bpfHostNetworkedNATWithoutCTLB,omitempty" validate:"omitempty,oneof=Enabled Disabled"` | ||
// BPFExternalServiceMode in BPF mode, controls how connections from outside the cluster to services (node ports | ||
// and cluster IPs) are forwarded to remote workloads. If set to "Tunnel" then both request and response traffic | ||
// is tunneled to the remote node. If set to "DSR", the request traffic is tunneled but the response traffic | ||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Imo our default should be TCP