Hi, Adolfo,

Sure, I'm pushing a draft tomorrows' morning as soon as Martin confirms that it 
works as expected in real environment .


Thank you,


Regards,

Dmitry

________________________________
From: Adolfo Perez-Duran <[email protected]>
Sent: Wednesday, April 24, 2019 4:02:43 PM
To: Puzikov Dmitry; Klozik Martin
Cc: onap-discuss
Subject: Re: [cia] minimization candidate OOMK8S/readiness-check

Martin,

That's an important observation. Thank you for bringing this to our attention.

Dmitry,

Thanks for looking into this.

Could we queue up a patch?

That will offer the team the option to benefit from this significant reduction 
as soon as they are ready to merge it.

Thanks,

Adolfo

On Wed, Apr 24, 2019, 05:01 Puzikov Dmitry 
<[email protected]<mailto:[email protected]>> wrote:

Hi, Martin,



I had some free minutes to look into readiness-check.

Please find minimized image based on python:2-alpine here: 
<https://cloud.docker.com/repository/docker/zhabba/readiness-check> 
<https://cloud.docker.com/u/zhabba/repository/docker/zhabba/readiness-check> 
https://hub.docker.com/r/zhabba/readiness-check

Image size reduced to 99.7MB.

I've checked it with following command:


touch /tmp/token; docker run --rm -it --env NAMESPACE=onap --env 
KUBERNETES_SERVICE_HOST=localhost  -v 
/tmp:/var/run/secrets/kubernetes.io/serviceaccount/<http://kubernetes.io/serviceaccount/>
 zhabba/readiness-check -t 10 -c qwe


Output is obvious as I don't have local k8s running, but script started and 
tried to do what expected:


2019-04-24 10:44:35,813 - INFO - Checking if qwe  is ready
2019-04-24 10:44:35,814 WARNING Retrying (Retry(total=2, connect=None, 
read=None, redirect=None, status=None)) after connection broken by 
'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 
0x7f3791e7f190>: Failed to establish a new connection: [Errno 111] Connection 
refused',)': /api/v1/namespaces/onap/pods?watch=False
2019-04-24 10:44:35,814 WARNING Retrying (Retry(total=1, connect=None, 
read=None, redirect=None, status=None)) after connection broken by 
'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 
0x7f3791e7f310>: Failed to establish a new connection: [Errno 111] Connection 
refused',)': /api/v1/namespaces/onap/pods?watch=False
2019-04-24 10:44:35,815 WARNING Retrying (Retry(total=0, connect=None, 
read=None, redirect=None, status=None)) after connection broken by 
'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 
0x7f3791e7f450>: Failed to establish a new connection: [Errno 111] Connection 
refused',)': /api/v1/namespaces/onap/pods?watch=False
2019-04-24 10:44:35,815 - ERROR - Exception when calling list_namespaced_pod: 
HTTPSConnectionPool(host='localhost', port=443): Max retries exceeded with url: 
/api/v1/namespaces/onap/pods?watch=False (Caused by 
NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 
0x7f3791e7f550>: Failed to establish a new connection: [Errno 111] Connection 
refused',))



Regards,

Dmitry


________________________________
From: [email protected]<mailto:[email protected]> 
<[email protected]<mailto:[email protected]>> on behalf of 
Klozik Martin <[email protected]<mailto:[email protected]>>
Sent: Wednesday, April 24, 2019 11:16:19 AM
To: [email protected]<mailto:[email protected]>; 
[email protected]<mailto:[email protected]>
Subject: [onap-discuss] [cia] minimization candidate OOMK8S/readiness-check

Hi all,

I'm not sure if readiness-check container minimization has been already 
discussed.

Anyhow, the container itself is part of every ONAP installation and even with 
multiple versions. The container itself just runs a simple python script, but 
it is based on Ubuntu and it installs also a lot of debugging software. So it 
has about 600MB. By using python alpine image and by removal of debugging 
packages, we can shrink it to few dozens of MBs.

However it won't help if different ONAP helm charts will still point to old 
Ubuntu based versions. So part of the minimization process should be a 
modification (and testing) of all helm charts to use the same small readiness 
check container.

Docker file:
https://git.onap.org/oom/tree/kubernetes/readiness/docker/init/Dockerfile

Currently used image versions and their popularity:
oom/kubernetes# grep -r "readiness-check:" | sed -e 
"s/^.*readiness-check\:/readiness-check\:/" | sort | uniq -c
      4 readiness-check:1.1.0
    125 readiness-check:2.0.0
      1 readiness-check:2.0.1
     15 readiness-check:2.0.2

Sizes of readiness-images:
# docker images | grep readiness
oomk8s/readiness-check                                           2.0.2          
        cdfde4f65367        6 weeks ago         592MB
oomk8s/readiness-check                                           2.0.1          
        a54f2020b856        8 months ago        632MB
oomk8s/readiness-check                                           2.0.0          
        867cb038e1d2        13 months ago       616MB
oomk8s/readiness-check                                           1.1.0          
        c0cce3bbe795        14 months ago       585MB

The number of image versions available at each k8s node is based on set of ONAP 
components running there. In worst case all image versions are available at all 
nodes.

A quick look into docker inspect shows, that only 2.0.0 and 2.0.1 shares a few 
layers. Thus I've tested it locally and all 4 images together consume over 
2.3GB of disk space (i.e. just 125MB is shared among them).

I would recommend readiness-check container image for minimization.

Best Regards,
Martin


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#16690): https://lists.onap.org/g/onap-discuss/message/16690
Mute This Topic: https://lists.onap.org/mt/31320038/21656
Group Owner: [email protected]
Unsubscribe: https://lists.onap.org/g/onap-discuss/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to