It turns out I can figure this out by just checking the state of pods. :)
Empirically, it seems that the pods are all QoS level "Burstable" no matter whether there are resource requests, limits, both or none.
$ kubectl describe pod requests-limits-3312827547-hony0
...
Containers:
...
Limits:
memory: 50G
Requests:
cpu: 100m
memory: 30G
...
QoS Class: Burstable
$ kubectl describe pod requests-only-3220520255-a8689
...
Containers:
...
Requests:
cpu: 100m
memory: 14G
...
QoS Class: Burstable
$ kubectl describe pod none-set-328716889-3icpc
...
Containers:
...
Requests:
cpu: 100m
memory: 150M
...
QoS Class: Burstable
In the last case, I set no requests in the manifest for the pod, but kubernetes sets a default request.
I feel like this is a bug because the spec says that if all containers have the same amount of requests it should be "Guaranteed" which I think is true if there is one container and it defines a limit.