Bug 1315995
Summary: | Creating pods on OSE v3.1.1.911 with awsElasticBlockStore only assigns devices /dev/xvdb - /dev/xvdp to openshift node | |||
---|---|---|---|---|
Product: | OKD | Reporter: | Elvir Kuric <ekuric> | |
Component: | Storage | Assignee: | Jan Safranek <jsafrane> | |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Jianwei Hou <jhou> | |
Severity: | low | Docs Contact: | ||
Priority: | urgent | |||
Version: | 3.x | CC: | aos-bugs, bchilds, chaoyang, eparis, jeder, jsafrane, mmcgrath, pep | |
Target Milestone: | --- | |||
Target Release: | --- | |||
Hardware: | Unspecified | |||
OS: | Unspecified | |||
Whiteboard: | ||||
Fixed In Version: | atomic-openshift-3.5.0 | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 1318974 (view as bug list) | Environment: | ||
Last Closed: | 2017-03-22 09:12:21 UTC | Type: | Bug | |
Regression: | --- | Mount Type: | --- | |
Documentation: | --- | CRM: | ||
Verified Versions: | Category: | --- | ||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
Cloudforms Team: | --- | Target Upstream Version: | ||
Embargoed: | ||||
Bug Depends On: | ||||
Bug Blocks: | 1318974 |
Description
Elvir Kuric
2016-03-09 08:36:32 UTC
This is the root cause: https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/aws/aws.go#L903 Kubernetes uses only devices /dev/xvd[f-p] or /dev/sd[f-p], as suggested by http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html#available-ec2-device-names: "Recommended for EBS Volumes: ... /dev/sd[f-p]" This leaves us with 11 EBS volumes, which is quite few. IMO we could use more, up to 40 volumes supported by Amazon. As related bug, when Kubernetes runs out of device names, 'kubectl describe pod' shows cryptic error: 'Value (/dev/xvd) for parameter device is invalid. /dev/xvd is not a valid EBS device name.' IMO we should print something like 'Too many devices attached, only 11 devices are supported by AWS.' Note to self: look at https://github.com/kubernetes/kubernetes/blob/master/pkg/cloudprovider/providers/aws/aws.go#L1054 and try to return an error here. Created PR https://github.com/kubernetes/kubernetes/pull/22942 and waiting for upstream feedback. The first part, raising the limit to 39 has been merged to Kubernetes 1.2. Admins can adjust the limit by setting env. variable "KUBE_MAX_PD_VOLS" in scheduler process (openshift-master), however kubelet will refuse to attach more that 39 volumes anyway. 'oc describe pod' will show clear message that too many volumes are attached and a pod can't be started. https://github.com/kubernetes/kubernetes/pull/22942 The second part, allowing kubelet to attach more than 39 volumes, is still open and I'm working on it. Tracked here: https://github.com/kubernetes/kubernetes/issues/22994 sorry, wrong bug, moving back to assigned Experimental fix for the second part: https://github.com/kubernetes/kubernetes/pull/23254 Waiting for upstream feedback. Fix merged upstream. Target this for OSE 3.2.1 ? I'm marking it as 'POST', i.e. fixed in Kubernetes and waiting for OpenShift rebase. AWS changed in the meantime and now it actually enforces devices to be named according to https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html Only devices /dev/xvd[b-c][a-z] are usable now. This was merged into Kubernetes as https://github.com/kubernetes/kubernetes/pull/41455 and into OpenShift as bug #1422531 (see the bug for releases where it was fixed). |