'데이터 엔지니어'로 성장하기

정리하는 걸 좋아하고, 남이 읽으면 더 좋아함

kubernetes 33

kubernetes) k8s dashboard limited acess 설정하기_readonly

k8s dashboard를 제공하기는 해야하는데, 읽기 권한만 부여하고 싶을 때가 있어요. 예를 들어, spark on k8s 환경의 경우 분석가 분들이 pod의 memory/cpu 사용량을 봐야할 때가 있겠네요. 사용량이나 로그를 봐야지 executor와 memory를 늘릴지 말지 판단할 수 있기 때문이에요. 제가 참고한 코드는 fabianlee의 블로그에요 https://fabianlee.org/2022/08/05/kubernetes-accessing-the-kubernetes-dashboard-with-least-privilege/ Kubernetes: accessing the Kubernetes Dashboard with least privilege | Fabian Lee : Software En..

기타/K8S 2023.04.23

K8S) pod 내부에서 외부 DNS 못 찾을 때 우회법_hostAlias,coredns

쿠버네스티는 설치할 때마다 새로워요. hw가 문제일 때도 있고, kernel 버전이 안 맞을 때도 있죠 하지만 대부분의 절망 포인트는 네트워크 더라고요... pod안에서 외부 dns 접근 못하던 문제를 어떻게 우회해서 해결했는지 정리했습니다 예상 독자는 다음과 같아요 온프렘 환경에서 고군분투 쿠버를 설치하시는 분들 네트워크 잘 모르는데 쿠버 설치하시는 분들 저를 불쌍히 여기실 수 있는 분들 문제: pod 안에서 dns 를 찾지 못함 이번에는 새로운 네트워크 망에 k8s cluster를 설치하는 작업을 했어요 그런데 이상하게 서버 몇대가, 회사 DNS에 접근을 잘 못하더라고요. 12대 중 2대가 접근이 되지 않아서 /etc/hosts에 특정 host를 명시해줬어요 불안한 마음에 k8s 설치하고 busybo..

기타/K8S 2023.02.26

mc) mc cp 사용시 인증서 오류날 때_s3v2,s3v4

mc를 통해서 object storage의 데이터를 A cluster에서 B cluster로 옮기려고 했어요 참고로 저는 온프렘 k8s rook-ceph를 사용하고 있어요 alias 등록하고 목록 조회는 되는데, 다른 작업이 안되더라고요 $ mc alias ls ceph-test URL : http://192.16.172.56:30071 AccessKey : access-key SecretKey : secret-key API : S3v4 Path : dns ceph-vm URL : http://172.17.172.11:30071 AccessKey : access-key SecretKey : secret-key API : s3v4 Path : auto $ mc ls ceph-test/ [2022-10-12..

기타/K8S 2022.12.23

글또) 7기 다짐글(2022.05 ~ 2022.11)_airflow

벌써 3번째 다짐글이네요 이 포스팅의 독자는 아래와 같아요 글또 가입을 고민하시는 분 글또 7기를 같은 그룹 분들 중 제가 궁금하신 분 글또 바이럴에 도움이 되기를 바라면서 아래 3가지 내용을 준비했어요 글또를 통해 얻게된 좋은 습관 5,6기에 작성했던 글 7기에 작성하게될 글 1) 글또를 통해 얻게된 좋은 습관 글또 덕분에 여러 습관을 얻게 되었어요 주기적으로 글쓰는 습관 피드백 받을 걸 생각하고 글쓰는 습관 어떻게 효과적으로 피드백을 줄지 생각하는 습관 아직도 메모처럼 블로그에 글을 작성하고 있지만, 매 기수마다 발전하는 저를 볼 수 있어요. 그리고 어떤 글을 썼는지 목차를 보며 그 동안 어떤 기술에 제가 관심이 있엇는지 볼 수 있어 좋아요 2) 5,6기에 작성했던 글 21년에는 elk, k8s를 공..

Data/Airflow 2022.07.10

K8s) host명으로 내부 데이터 접근하기_spark,boto3,k8s

IP로 데이터에 접근하다보니, 불안해서 host명으로 수정했어요 k8s에서 작업하시는 분들께 도움이 되었으면 합니다 :) 요약 문제 : IP로 데이터 접근하니, 보안 리스크가 생김 상황 : spark image, jupyterhub, airflow 에 적용가능함 조치 : IP를 host명으로 대체함 결론 : 보안 리스크 줄이고, cluster 관리가 편해짐 설명 1. 문제 data에 IP로 접근해서 생길 수 있는 보안 이슈 발견 k8s cluster를 여러개 관리하다보니까, IP가 이제 꼬이기 시작했어요. 보안 이슈도 있었지만, 곧 신규 cluster 구축이 예정되어있어서 미리 변경하고 싶었어요 제가 편해야 시스템도 안정적으로 변하니까요ㅎ 2. 상황 일단 3가지 먼저, spark image/ jupyte..

기타/K8S 2022.07.07

Airflow) 'Task 분리' 실무 적용하기 _k8s/spark

2022.05~07, 3달동안 진행한 airflow 스터디를 끝내고 실무에 적용한 내용 일부를 정리햇어요 airflow를 운영하면서 가장 불편했던 부분은 'Task가 분리되지 않은 것' 이었어요 어디서 문제가 생겼는지 추적할 수도 없는게 불편했어요 데이터 흐름이 어떻게 되있는지 알 수 없었어요 멱등성, 원자성도 지켜지지 않았어요 예상 독자는 아래와 같아요 airflow 도입을 고민하는 분 airflow를 이제 막 사용하시는 분 airflow 관리가 어려운 운영 담당자 요약 문제: airflow에서 spark job이 간헐적으로 실패함 분석: task의 분리가 필요함 적용: task를 분리함 결과: 문제 발생 시점을 알 수 있고, 불필요한 작업을 줄일 수 있게됨 설명 1. 문제 airflow에서 spark..

Data/Airflow 2022.07.04

Mlflow) python, airflow로 테스트해보기

mlflow를 설치하고 hello world를 실행해봤어요 모델러 입장에서는 git처럼 이력 관리를 할 수 있고, 엔지니어 입장에서는 api를 특정 시점으로 변경할 수 있어서 좋은 것 같아요 제가 생각한 장점은 일단 쉽고 이뻐요 - UI 가 이쁘다. - 모델간의 비교가 가능하다. - 모델 정보를 s3에 저장할 수 있다. (pickle, source, parameter, etc) 요약 1. k8s에 mlflow 설치 2. juptyterhub로 테스트 3. airflow로 테스트 4. 결론 설명 1. k8s에 mlflow 설치 mlflow-pgsql.yaml mlflow-pvc.yaml mlflow.yaml https://mightytedkim.tistory.com/55 2. juptyterhub로 테스트..

AI/MLOps 2022.06.26

Kubernetes) 자주 사용하는 명령어_메모용

내가 자주 사용하는 명령어 # 특정 pod 지우기 kubectl delete pods --field-selector status.phase=Failed -n mlflow kubectl delete pods --field-selector status.phase=Succeeded -n mlflow kubectl delete pods --field-selector status.phase=Pending -n mlflow #과거 replicaset 지우기 kubectl delete replicaset -n jhub $(kubectl get replicaset -n jhub | grep "0 0 0"| cut -d' ' -f 1) #ns 강제로 지우기 kubectl get namespace "rook-ceph" -..

기타/K8S 2022.04.26

mariadb) pvc 부족으로 인한 fail -> binary 파일이 원인

구글링할 때 이런 에러로 검색하니 나옴, pvc 할당을 늘려줌 -> binary 파일을 삭제하지 않아서 그런거였음 + 추가 갑자기 pvc가 늘어난 원인을 찾았음 실시간 대용량 log 데이터를 바로 mariadb로 insert하고 있었음 그것도 1 connection, 1 insert kafka, redis 같은 큐 사용 왜하지 않았냐고 물으니까. 이렇게 많을 줄 몰랐다고.. 말인지 방구인지 문제 오픈했는데, 일단 이렇게 진행하자는 대답이 들어옴... 믿을 수 없음. 책임만 있고 권한은 없는 관리자가 나임 요약 문제발생 원인분석 조치 설명 1. 문제 발생 HQ mariadb 접속 안되는 문제 발생 2. 원인 분석 kubernetes pod CrashLoopBackOff, 재시작이 안되는 문제 -> pvc를..

Storage/mariadb 2022.04.15

Ceph)rgw instance 늘리기_ephemeral storage

jupyterhub에서 spark_submit 날렸는데, storage 설정 주지 않아서 문제가 생겼음 (ceph rgw 죽음) 요약 1. ceph rgw fail 발생 2. spark job에서 설정 누락 3. ceph rgw instance 늘림 설명 1. ceph rgw fail 발생 ceph rgw 죽어서 object storage 안됨 2. spark job에서 설정 누락 spark submit할때 local_storage 동적할당 안해서 부하가 생긴것으로 추정 fail 대비해서 replica 1개 올려야겠다고 생각함 3. ceph rgw instance 늘림 $ vi object.yaml gateway: instances: 2 #1 # 결과 $k get all -n rook-ceph | gre..

Storage/Ceph 2022.04.04