Closed kundan2707 closed 2 months ago
This issue is currently awaiting triage.
If a SIG or subproject determines this is a relevant issue, they will accept it by applying the triage/accepted
label and provide further guidance.
The triage/accepted
label can be added by org members by writing /triage accepted
in a comment.
/sig network
@kubernetes/sig-network-feature-requests
xref some open issues:
At the moment, all bandwidth control is implementation-centric. Some don't support it at all, or support only one direction. Until we support it as a semi-standard (and TBD what that means, really) we can't really have standard quota.
I think the QoS issue is closest to how we really want to define the API, and that MUST solve for quota, IMO.
For bookkeeping I am going to close this, since those KEPs cover.
@thockin
I am redefining complete use case here and reopening it to keep in track for possible solution. /reopen
@kundan2707: Reopened this issue.
There isn't really a standard way to enforce bandwidth requests. We have those annotations, but they are totally optional and can't be relied upon.
Even if those WERE standardized and universally implemented, we're not scheduling against those, so they are limits without requests. We have no design for if/how to requests (guaranteed access) for bandwidth.
Without that, what does quota mean?
To be really clear - I am not against finding a way to model and manage network resources. I just don't know what it really looks like - I have more questions than answers. If we want to have an issue open for this larger goal, we can repurpose this issue and dump all the questions here.
@kundan2707 - I think we should close this. The real work is happening elsewhere, and unless you are proposing a DIFFERENT path, this is redundant
@kundan2707 - I think we should close this. The real work is happening elsewhere, and unless you are proposing a DIFFERENT path, this is redundant
Bandwidth limitation is a very difficult topic. Since people have an "intuitive" idea what it is (which is often different), it is often mistaken for a simple thing. It's not!
I agree with Tim that this should be investigated/discussed at one place.
/close
@uablrek: Closing this issue.
What would you like to be added?
CPU/Memory like bandwidth in ResourceQuota/LimitRange
Improve k8s to handle ingress-bandwidth and egress-bandwidth with ResourceQuota and LimitRange
Allow to set bandwidth settings in ResourceQuota as follows.
apiVersion: v1 kind: ResourceQuota metadata: name: pod-and-network-quota namespace: foo-ns spec: hard: pods: 4 ingress-bandwidth: "1G" <=== egress-bandwidth: "1G" <===
Allow to set bandwidth settings in LimitRange as follows.
apiVersion: v1 kind: LimitRange metadata: name: cpu-and-network-limitrange spec: limits:
Expected behaviors
(*) It's best to reject to pod creation request when pod has no bandwidth annoatation even though ResourceQuota has bandwidth setting, since pod which has no bandwidth annotation can exceeds the quota. Feature to allow admin to set bandwith limit per port in a container. Pod level bandwidth limit should be supported by ResourceQuota and LimitRange
Why is this needed?
Users can set kubernetes.io/ingress-bandwidth and kubernetes.io/egress-bandwidth to their pods. But there is no way through which admit can force it to users. Such feature is very necessary in PaaS usage.