728x90
파이썬 flask를 활용해 웹서버를 구축할 때 생긴 오류였다.
진행하고 있던 내용은 외부의 DB에서 데이터를 쿠버네티스 클러스터 내의 웹서버에 보내고 이 웹서버가 다시 쿠버네티스 클러스터 내의 DB로 저장하는 상황이었는데
데이터를 넘겨주는 과정에서 잘 넘어가는지 확인하기 위해 pod에 접근했었다.
근데 로컬에서 잘만되던 코드가 클러스터에 올려놓으니까 거짓말처럼 되지가 않았다.
DNS 서비스에 문제가 있나 싶어 coredns도 확인해봤고
pod의 로그를 확인해봐도 rest api가 잘 성공했다는 200코드만 뜰 뿐 data에 대한 print문이 출력되지 않았다.
그 이후 수많은 구글링을 시도했고
결국 인프런 쿠버네티스강사님에게 질문을 했었다.
문제는 python에 있었고 print할 때 해당 코드를 flush하라는 내용이었다.
flush : 기본값이 false, print 시에 즉시 스트림을 출력함으로써 버퍼의 텍스트를 비우는 권한을 갖게함.
print("Hello world!")
해당 코드를
print("Hello world!", flush=True)
이런식으로 바꿔주니 원할하게 수행되었다.
실행되는 이유는 아직도 모르겠다. 나처럼 파이썬 출력 관련해서 문제가 생기는 분들에게 도움이 되었으면 좋겠다.
반응형
'DevOps > 쿠버네티스(Kubernetes)' 카테고리의 다른 글
[쿠버네티스 #5] Docker compose와 kubernetes의 차이 (0) | 2020.03.01 |
---|---|
[쿠버네티스 #tip3] 컨테이너 안에서 쉘 스크립트를 사용할 때 경로지정 (1) | 2020.02.14 |
[쿠버네티스 #4] Replica set 과 Deployment (0) | 2020.01.29 |
[쿠버네티스 #3] Service (0) | 2019.12.26 |
[쿠버네티스 #2] Pod (0) | 2019.12.16 |