From Fedora Project Wiki
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 25: Line 25:
== Summary ==
== Summary ==
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. -->
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. -->
Kubernetes provides a mechanism for providing storage to containers called Persistent VolumesPersistent Volumes support several underlying storage protocols, but clients are needed to support each type.  Native GlusterFS and Ceph clients will be added to the Atomic host base to support new Persistent Volume types.
Kubernetes provides a mechanism for providing storage to Pods via volumes.  Volumes support several underlying storage protocols, but clients are needed to support each type.  Native GlusterFS and Ceph clients will be added to the Atomic host base to support these Volume types.


== Owner ==
== Owner ==
Line 55: Line 55:
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development
-->
-->
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1303546 1303546]


== Detailed Description ==
== Detailed Description ==
Line 61: Line 61:
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->
<!-- Expand on the summary, if appropriate.  A couple sentences suffices to explain the goal, but the more details you can provide the better. -->


By design, Docker container internal storage is ephemeral in nature and data is lost when a container is stopped.  Kubernetes uses Persistent Volumes to provide a means for containers to keep data for extended periods of time and between restarts.
By design, Docker container internal storage is ephemeral in nature and data is lost when a container is stopped.  Kubernetes uses Volumes to provide a means for Pods keep data for extended periods of time and between container restarts.  


A Persistent Volume (PV) in Kubernetes represents a real piece of underlying storage capacity in the infrastructure.  Persistent volumes are intended for "network volumes" like NFS shares, GlusterFS volumes, or Ceph devices.
A Volume in Kubernetes represents a real piece of underlying storage capacity in the infrastructure.  Persistent Volumes are a way for users to "claim" a Volume without knowing the details of the particular storage environment.  Persistent volumes are intended for "network volumes" like NFS shares, iSCSI devices, GlusterFS volumes, or Ceph devices.  Persistent Volumes also exist past the Pod lifecycle.


In order to access the underlying storage, the appropriate drivers must be available to Kubernetes on the Atomic host.  We will add the appropriate packages to support the following Persistent Volume types:
In order to access the underlying storage, the appropriate drivers must be available to Kubernetes on the Atomic host.  We will add the appropriate packages to support the following Volume types:


* GlusterFS
* GlusterFS
* Ceph
* RBD (Ceph Block Device)
 
Both projects currently have packages available and accepted in Fedora for general use.  No new packaging should be required.


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 75: Line 77:
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?-->
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?-->


Better support for Kubernetes
Kubernetes Volume support is currently limited to NFS and iSCSI.  Adding these two open source software defined storage clients will expand the capabilities of the Atomic platform to more use cases.
 
== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners:
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
<!-- What work do the feature owners have to accomplish to complete the feature in time for release?  Is it a large change affecting many parts of the distribution or is it a very isolated change? What are those changes?-->
** Add GlusterFS client Fedora packages to Atomic package list
** Add Ceph client Fedora packages to Atomic package list
*** The Ceph packaging will be changing to reduce the number of dependencies.  This may cause some bloat in the image until fixed.


* Other developers: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
* Other developers: N/A (not a System Wide Change) <!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Line 97: Line 103:
== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
<!-- What happens to systems that have had a previous versions of Fedora installed and are updated to the version containing this change? Will anything require manual configuration or data migration? Will any existing functionality be no longer supported? -->
 
This is additional functionality, not a replacement for existing. Can be safely ignored if not needed.
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)  
N/A (not a System Wide Change)  
Line 115: Line 121:
3. What are the expected results of those actions?
3. What are the expected results of those actions?
-->
-->
* 0. Access to an appropriate storage cluster (gluster or ceph)
* 1. Configure kubernetes on an Atomic host or cluster of hosts.
* 2. Mount storage on hosts with native client
* 3. Create a physical volume in the mount point in kubernetes
* 4. Create a volume in kubernetes
* 5. Use volume in pod definition


<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
Line 126: Line 138:
== Dependencies ==
== Dependencies ==
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
<!-- What other packages (RPMs) depend on this package?  Are there changes outside the developers' control on which completion of this change depends?  In other words, completion of another change owned by someone else and might cause you to not be able to finish on time or that you would need to coordinate?  Other upstream projects like the kernel (if this is not a kernel change)? -->
 
Native client packages are owned by someone else, but are currently maintained for F23 and not slated for removal in F24.
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
<!-- REQUIRED FOR SYSTEM WIDE CHANGES -->
N/A (not a System Wide Change)  
N/A (not a System Wide Change)  
Line 153: Line 165:
-->
-->


[[Category:ChangePageIncomplete]]
[[Category:ChangeAcceptedF24]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->

Latest revision as of 09:35, 1 February 2016


Atomic Storage Clients

Summary

Kubernetes provides a mechanism for providing storage to Pods via volumes. Volumes support several underlying storage protocols, but clients are needed to support each type. Native GlusterFS and Ceph clients will be added to the Atomic host base to support these Volume types.

Owner

  • Name: mmicene
  • Email: nzwulfin@gmail.com
  • Release notes owner:

Current status

Detailed Description

By design, Docker container internal storage is ephemeral in nature and data is lost when a container is stopped. Kubernetes uses Volumes to provide a means for Pods keep data for extended periods of time and between container restarts.

A Volume in Kubernetes represents a real piece of underlying storage capacity in the infrastructure. Persistent Volumes are a way for users to "claim" a Volume without knowing the details of the particular storage environment. Persistent volumes are intended for "network volumes" like NFS shares, iSCSI devices, GlusterFS volumes, or Ceph devices. Persistent Volumes also exist past the Pod lifecycle.

In order to access the underlying storage, the appropriate drivers must be available to Kubernetes on the Atomic host. We will add the appropriate packages to support the following Volume types:

  • GlusterFS
  • RBD (Ceph Block Device)

Both projects currently have packages available and accepted in Fedora for general use. No new packaging should be required.

Benefit to Fedora

Kubernetes Volume support is currently limited to NFS and iSCSI. Adding these two open source software defined storage clients will expand the capabilities of the Atomic platform to more use cases.

Scope

  • Proposal owners:
    • Add GlusterFS client Fedora packages to Atomic package list
    • Add Ceph client Fedora packages to Atomic package list
      • The Ceph packaging will be changing to reduce the number of dependencies. This may cause some bloat in the image until fixed.
  • Other developers: N/A (not a System Wide Change)
  • Release engineering: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

This is additional functionality, not a replacement for existing. Can be safely ignored if not needed. N/A (not a System Wide Change)

How To Test

  • 0. Access to an appropriate storage cluster (gluster or ceph)
  • 1. Configure kubernetes on an Atomic host or cluster of hosts.
  • 2. Mount storage on hosts with native client
  • 3. Create a physical volume in the mount point in kubernetes
  • 4. Create a volume in kubernetes
  • 5. Use volume in pod definition

N/A (not a System Wide Change)

User Experience

N/A (not a System Wide Change)

Dependencies

Native client packages are owned by someone else, but are currently maintained for F23 and not slated for removal in F24. N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No
  • Blocks product? product

Documentation

N/A (not a System Wide Change)

Release Notes