hongkunyoo / blog-comments

blog comments for utteranc.es
1 stars 0 forks source link

쿠버네티스 Argo workflow 소개 #6

Open hongkunyoo opened 3 years ago

hongkunyoo commented 3 years ago

Written on 02/14/2020 18:11:07

URL: https://coffeewhale.com/kubernetes/workflow/argo/2020/02/14/argo-wf/

hongkunyoo commented 3 years ago

Comment written by Sunghoon Kang on 02/17/2020 02:56:28

안녕하세요, 좋은 글 잘 읽었습니다 🙂

작성해주신 Argo의 단점 중

각 스탭마다 개별적인 컨테이너를 실행하기 때문에 Job간의 데이터를 빠르게 공유하는 것이 비교적 힘듭니다. 물론 쿠버네티스의 emtpy volume의 memory 미디어를 활용한다면 메모리간 데이터 이동을 할 수 있겠지만 Host 서버의 메모리 크기에 제한을 받기에 유념하여 사용해야 합니다.

에서 제가 알기로는 각각의 스텝마다 Pod이 생성되어 emptyDir volume을 통해 데이터를 공유할 수 없을 것 같습니다. (Tekton의 경우 Task의 스텝들이 하나의 Pod 안에 각각의 컨테이너로 실행되고 있어 emptyDir volume으로 데이터를 공유할 수 있는 것으로 알고 있습니다.)

hongkunyoo commented 3 years ago

Comment written by HongKun Yoo on 02/17/2020 03:57:06

@devholic:disqus
다시 보니 말씀하신 내용이 맞는것 같네요!
확인 감사합니다!
---------
>> 수정 완료했습니다. 감사합니다.

hongkunyoo commented 3 years ago

Comment written by heumsi on 09/16/2020 00:40:47

혹시 지금도 계속해서 사용하고 계신가요?
airflow 1.10.* 부터 KubernetesExecutor 와 KubernetesPodOperator 가 등장하면서,
airflow 에서도 Pod 형태로 워크플로를 돌리는 방식으로 옮기는 추세인 것 같습니다.

airflow와 python에 익숙해서 그런지, yaml 로 워크플로를 선언하면 많이 유용할지 호기심이 생기네요.
여전히 Argo workflow를 사용하고 계신지, 만족도 등이 궁금합니다!

hongkunyoo commented 3 years ago

Comment written by HongKun Yoo on 09/16/2020 05:06:51

네, 말씀하신대로 airflow KubernetesExecutor, Operator를 사용하면 동일하게 컨테이너간의 종속성을 부여할 수 있습니다. 그렇게 사용해도 크게 다르지 않을 것 같습니다.

작은 차이라면 airflow에서 DAG 설정은 파이썬을 이용하여 조금 더 다이나믹하게 DAG를 컨트롤하고 싶을 때 유용할 것 같고, argo의 DAG 구성은 YAML형식의 선언형 명령 스타일로 정적인 DAG를 구성합니다. 저희도 사실 동적으로 YAML을 생성 후 argo로 YAML을 던지고 있습니다.

그렇다면 argo를 왜 사용하느냐? 라고 생각했을 때, argo의 몇가지 장점을 얘기해 보자면 DAG를 만드는 스크립트가 꼭 Argo 플랫폼 안에 있지 않고 어디서든 Argo YAML 파일만 생성하여 argo로 던지면 워크플로우를 실행할 수 있고 꼭 파이썬이 아니더라도 argo에서 정의한 YAML을 만들 수 있는 어떤한 언어로도 워크플로우를 실행할 수 있는 장점이 있는 것 같습니다.

다이나믹한 DAG 설정이 중요한 워크플로우라면 airflow를,
어디서든, 파이썬 이외의 언어로 워크플로우를 실행하고 싶다면 argo를 선택하는 것이 어떨까 싶습니다. 제가 틀린 부분이 있을 수도 있는데 있다면 알려주세요~ 제 글에 관심가져 주시고 좋은 의견 주셔서 감사합니다.