[ 
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 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.


> 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: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to