diff options
| author | Jenkins <jenkins@review.openstack.org> | 2016-10-17 08:05:16 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2016-10-17 08:05:16 +0000 |
| commit | 2fde030fd4245e0288c4ec3789ab217bf0e3c2ef (patch) | |
| tree | 0edf83ba38c5f687e9b99a7d795c4f0cebfc60ca /specs/containerize-openstack.rst | |
| parent | 4490f2c6b9fed0a34d7b8dfa6100085f03569744 (diff) | |
| parent | a31a70d265b7696b8607a7dcc65823611bc3c5cd (diff) | |
| download | kolla-2fde030fd4245e0288c4ec3789ab217bf0e3c2ef.tar.gz kolla-2fde030fd4245e0288c4ec3789ab217bf0e3c2ef.zip | |
Merge "Delete the unnecessary space"
Diffstat (limited to 'specs/containerize-openstack.rst')
| -rw-r--r-- | specs/containerize-openstack.rst | 46 |
1 files changed, 23 insertions, 23 deletions
diff --git a/specs/containerize-openstack.rst b/specs/containerize-openstack.rst index 11d775d46..89f2e71bc 100644 --- a/specs/containerize-openstack.rst +++ b/specs/containerize-openstack.rst @@ -9,8 +9,8 @@ Containerize OpenStack ====================== When upgrading or downgrading OpenStack, it is possible to use package based -management or image-based management. Containerizing OpenStack is meant to -optimize image-based management of OpenStack. Containerizing OpenStack +management or image-based management. Containerizing OpenStack is meant to +optimize image-based management of OpenStack. Containerizing OpenStack solves a manageability and availability problem with the current state of the art deployment systems in OpenStack. @@ -20,34 +20,34 @@ Problem description Current state of the art deployment systems use either image based or package based upgrade. -Image based upgrades are utilized by TripleO. When TripleO updates a system, +Image based upgrades are utilized by TripleO. When TripleO updates a system, it creates an image of the entire disk and deploys that rather than just the -parts that compose the OpenStack deployment. This results in significant -loss of availability. Further running VMs are shut down in the imaging -process. However, image based systems offer atomicity, because all related +parts that compose the OpenStack deployment. This results in significant +loss of availability. Further running VMs are shut down in the imaging +process. However, image based systems offer atomicity, because all related software for a service is updated in one atomic action by reimaging the system. -Other systems use package based upgrade. Package based upgrades suffer from -a non-atomic nature. An update may update 1 or more RPM packages. The update +Other systems use package based upgrade. Package based upgrades suffer from +a non-atomic nature. An update may update 1 or more RPM packages. The update process could fail for any number of reasons, and there is no way to back -out the existing changes. Typically in an OpenStack deployment it is +out the existing changes. Typically in an OpenStack deployment it is desirable to update a service that does one thing including it's dependencies -as an atomic unit. Package based upgrades do not offer atomicity. +as an atomic unit. Package based upgrades do not offer atomicity. To solve this problem, containers can be used to provide an image-based update approach which offers atomic upgrade of a running system with minimal -interruption in service. A rough prototype of compute upgrade [1] shows +interruption in service. A rough prototype of compute upgrade [1] shows approximately a 10 second window of unavailability during a software update. The prototype keeps virtual machines running without interruption. Use cases --------- -1. Upgrade or rollback OpenStack deployments atomically. End-user wants to +1. Upgrade or rollback OpenStack deployments atomically. End-user wants to change the running software versions in her system to deploy a new upstream release without interrupting service for significant periods. -2. Upgrade OpenStack based by component. End-user wants to upgrade her system +2. Upgrade OpenStack based by component. End-user wants to upgrade her system in fine-grained chunks to limit damage from a failed upgrade. -3. Rollback OpenStack based by component. End-user experienced a failed +3. Rollback OpenStack based by component. End-user experienced a failed upgrade and wishes to rollback to the last known good working version. @@ -180,16 +180,16 @@ The various container sets are composed in more detail as follows: * swift-proxy-server In order to achieve the desired results, we plan to permit super-privileged -containers. A super-privileged container is defined as any container launched +containers. A super-privileged container is defined as any container launched with the --privileged=true flag to docker that: * bind-mounts specific security-crucial host operating system directories - with -v. This includes nearly all directories in the filesystem except for + with -v. This includes nearly all directories in the filesystem except for leaf directories with no other host operating system use. * shares any namespace with the --ipc=host, --pid=host, or --net=host flags We will not use the Docker EXPOSE operation since all containers will use ---net=host. One motive for using --net=host is it is inherently simpler. +--net=host. One motive for using --net=host is it is inherently simpler. A different motive for not using EXPOSE is the 20 microsecond penalty applied to every packet forwarded and returned by docker-proxy. If EXPOSE functionality is desired, it can be added back by @@ -207,12 +207,12 @@ If the container does not pass its healthcheck operation, it should be restarted. Integration of metadata with fig or a similar single node Docker orchestration -tool will be implemented. Even though fig executes on a single node, the +tool will be implemented. Even though fig executes on a single node, the containers will be designed to run multi-node and the deploy tool should take -some form of information to allow it to operate multi-node. The deploy tool +some form of information to allow it to operate multi-node. The deploy tool should take a set of key/value pairs as inputs and convert them into inputs -into the environment passed to Docker. These key/value pairs could be a file -or environment variables. We will not offer integration with multi-node +into the environment passed to Docker. These key/value pairs could be a file +or environment variables. We will not offer integration with multi-node scheduling or orchestration tools, but instead expect our consumers to manage each bare metal machine using our fig or similar in nature tool integration. @@ -220,7 +220,7 @@ Any contributions from the community of the required metadata to run these containers using a multi-node orchestration tool will be warmly received but generally won't be maintained by the core team. -The technique for launching the deploy script is not handled by Kolla. This +The technique for launching the deploy script is not handled by Kolla. This is a problem for a higher level deployment tool such as TripleO or Fuel to tackle. @@ -229,7 +229,7 @@ Logs from the individual containers will be retrievable in some consistent way. Security impact --------------- -Container usage with super-privileged mode may possibly impact security. For +Container usage with super-privileged mode may possibly impact security. For example, when using --net=host mode and bind-mounting /run which is necessary for a compute node, it is possible that a compute breakout could corrupt the host operating system. |
