[
https://issues.apache.org/jira/browse/YARN-8160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Chandni Singh updated YARN-8160:
--------------------------------
Description:
Ability to upgrade dockerized yarn native services.
Ref: YARN-5637
*Background*
Container upgrade is supported by the NM via {{reInitializeContainer}} api.
{{reInitializeContainer}} does *NOT* change the ContainerId of the upgraded
container.
NM performs the following steps during {{reInitializeContainer}}:
- kills the existing process
- cleans up the container
- launches another container with the new {{ContainerLaunchContext}}
NOTE: {{ContainerLaunchContext}} holds all the information that needs to
upgrade the container.
With {{reInitializeContainer}}, the following does *NOT* change
- container ID. This is not created by NM. It is provided to it and here RM is
not creating another container allocation.
- {{localizedResources}} this stays the same if the upgrade does *NOT* require
additional resources IIUC.
The following changes with {{reInitializeContainer}}
- the working directory of the upgraded container changes. It is *NOT* a
relaunch.
*Changes required in the case of docker container*
- {{reInitializeContainer}} seems to not be working with Docker containers.
Investigate and fix this.
- [Future change] Add an additional api to NM to pull the images and modify
{{reInitializeContainer}} to trigger docker container launch without pulling
the image first which could be based on a flag.
-- When the service upgrade is initialized, the ServiceMaster can trigger
the NMs to pull the image
-- When a component instance is upgrade, it calls the
{{reInitializeContainer}} with the flag pull-image set to false, since the NM
will have already pulled the images.
was:
Ability to upgrade dockerized yarn native services.
Ref: YARN-5637
*Background*
Container upgrade is supported by the NM via {{reInitializeContainer}} api.
{{reInitializeContainer}} does *NOT* change the ContainerId of the upgraded
container.
NM performs the following steps during {{reInitializeContainer}}:
- kills the existing process
- cleans up the container
- launches another container with the new {{ContainerLaunchContext}}
NOTE: {{ContainerLaunchContext}} holds all the information that needs to
upgrade the container.
With {{reInitializeContainer}}, the following does *NOT* change
- container ID. This is not created by NM. It is provided to it and here RM is
not creating another container allocation.
- {{localizedResources}} this stays the same if the upgrade does *NOT* require
additional resources IIUC.
The following changes with {{reInitializeContainer}}
- the working directory of the upgraded container changes. It is *NOT* a
relaunch.
*Changes required for docker container*
- {{reInitializeContainer}} seems to not be working with Docker containers.
Investigate and fix this.
- [Future change] Add an additional api to NM to pull the images and modify
{{reInitializeContainer}} to trigger docker container launch without pulling
the image first which could be based on a flag.
-- When the service upgrade is initialized, the ServiceMaster can trigger
the NMs to pull the image
-- When a component instance is upgrade, it calls the
{{reInitializeContainer}} with the flag pull-image set to false, since the NM
will have already pulled the images.
> Yarn Service Upgrade: Support upgrade of service that use docker containers
> ----------------------------------------------------------------------------
>
> Key: YARN-8160
> URL: https://issues.apache.org/jira/browse/YARN-8160
> Project: Hadoop YARN
> Issue Type: Sub-task
> Reporter: Chandni Singh
> Assignee: Chandni Singh
> Priority: Major
> Labels: Docker
>
> Ability to upgrade dockerized yarn native services.
> Ref: YARN-5637
> *Background*
> Container upgrade is supported by the NM via {{reInitializeContainer}} api.
> {{reInitializeContainer}} does *NOT* change the ContainerId of the upgraded
> container.
> NM performs the following steps during {{reInitializeContainer}}:
> - kills the existing process
> - cleans up the container
> - launches another container with the new {{ContainerLaunchContext}}
> NOTE: {{ContainerLaunchContext}} holds all the information that needs to
> upgrade the container.
> With {{reInitializeContainer}}, the following does *NOT* change
> - container ID. This is not created by NM. It is provided to it and here RM
> is not creating another container allocation.
> - {{localizedResources}} this stays the same if the upgrade does *NOT*
> require additional resources IIUC.
>
> The following changes with {{reInitializeContainer}}
> - the working directory of the upgraded container changes. It is *NOT* a
> relaunch.
> *Changes required in the case of docker container*
> - {{reInitializeContainer}} seems to not be working with Docker containers.
> Investigate and fix this.
> - [Future change] Add an additional api to NM to pull the images and modify
> {{reInitializeContainer}} to trigger docker container launch without pulling
> the image first which could be based on a flag.
> -- When the service upgrade is initialized, the ServiceMaster can trigger
> the NMs to pull the image
> -- When a component instance is upgrade, it calls the
> {{reInitializeContainer}} with the flag pull-image set to false, since the NM
> will have already pulled the images.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]