일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- AWS
- CSV
- jvm
- log
- CVAT
- Kafka
- kubernetes
- aws s3
- Spring
- JavaScript
- grafana
- Operating System
- java
- PostgreSQL
- helm
- tcp
- Vision
- kubeadm
- OS
- ip
- kubectl
- Packet
- EC2
- airflow
- zookeeper
- Python
- MAC address
- Network
- docker
- Trino
- Today
- Total
목록MLOps (53)
JUST WRITE
Kubernetes환경에서 Airflow를?!?! 요즘 가장 핫한 Workflow Tool은 Airflow입니다. python으로 개발되어서 설치도 PyPl로 간편하게 설치할 수 있습니다. 하지만 디테일하게 사용하려면 Metastore, Celery Worker 등 설정할게 많습니다. 이러던 중 Kubernetes에 Airflow를 설치해야 될 업무를 맡게 되었습니다. 이번 포스팅에서는 Airflow를 Kubernetes 환경에 설치하는 것을 정리해 보았습니다. Helm으로 Airflow 설치 Airflow에서 공식 Helm을 제공해 주기 때문에 해당 Helm으로 설치를 진행하였습니다. 다른 버전인 User-community Helm도 존재하니 참고해 주시길 바랍니다. Airflow Helm Chart를..
Worker Node join 에러 - CNI 이슈 Kubernetes Cluster를 구성하고 Server를 다시 세팅해야 돼서 Worker Node를 제거한 적이 있습니다. Server를 다시 세팅하고 해당 Server를 다시 Worker Node로 추가하였습니다. 하지만 무슨 이유인지 아래와 같은 에러가 나면서 해당 Node에서 Pod이 실행되지 않았습니다. Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "c630e66c3967b10c2d0069117b719d6241c9a0a68b6f21b89f7f90f55c425bc4" network for pod "continuous-..
Kafka야?!! 데이터 잘 처리하고 있니?! 실시간 데이터 처리를 위해 Kafka를 운영하고 있습니다. Kafka 모니터링을 위해 주로 Prometheus, Grafana를 통해서 합니다. Kafka Exporter로 Metric을 수집, Prometheus로 보내고 Grafana에서 Dashboard를 구성해서 모니터링합니다. 보통 Topic별로 들어오는 데이터의 Bytes양, Topic의 Consumer의 Lag 등을 모니터링합니다. 이 방법 말고 Kafka가 데이터를 잘 처리하고 있는지 알 수 있는 방법이 이거밖에 없는지 궁금하였습니다. 그러다가 찾은 방법이 있었습니다. Kafka 자체적으로 Performance를 테스트할 수 있는 방법이 있었습니다. 이번 포스팅에서 자체적으로 Kafka를 테스트..
손쉽게 동적으로 Persistent Volume 생성하기 Docker container에서 데이터를 저장할 때 Volume을 사용합니다. container는 독립적인 환경이라 container가 사라지면 데이터도 사라집니다. 하지만 Volume을 사용하면 Host Device에 mount 하여 container가 없어져도 Volume 데이터는 유지됩니다. Kubernetes에서도 Pod내 Container에서 사용한 데이터를 Volume으로 지정해 유지할 수 있습니다. Pod이 사라지더라도 Volume을 설정해서 데이터를 유지할 수 있습니다. 기본적으로 아래 2가지 Volume Type이 있습니다. Kubernetes Volumes EmptyDir 가장 기본적인 Volume Type으로 비어있는 상태로 ..
Kafka 재시작 후 UNKNOWN_TOPIC_ID 에러?! 최근에 Kafka Cluster를 여러 개를 구축하는 업무를 맡아서 하고 있었습니다. 각 Cluster를 3개의 Server에 Kafka를 설치하여 구성하고 있었습니다. 1개의 Cluster 중 1개의 Server가 재시작하여서 Kafka도 재시작하는 경우가 있었습니다. (포스팅 주제가 다르니 Server 재시작 원인은 다루지 않겠습니다.) Kafka를 재시작하고 Log를 살펴보니 아래와 같은 경고메시지가 눈에 띄었습니다. $ tail -5000f ./kafka/logs/server.log ... ... [2023-06-09 00:00:47,698] WARN [ReplicaFetcher replicaId=1, leaderId=3, fetcher..
ArgoCD UI 헷갈리지 않고 쉽게 접근하기 Kubernetes내 Service를 외부에서 접근하도록 설정하는 가장 쉬운 방식은 NodePort 방법입니다. Service Port를 Control Plane의 Port에 포트포워딩을 통해 접근하게 해주는 방식입니다. service-nodeport-range(default: 30000~32767)내에서 Control Plane의 Port로 포트포워딩이 가능합니다. apiVersion: v1 kind: Service metadata: name: my-service spec: type: NodePort selector: app.kubernetes.io/name: MyApp ports: - port: 80 targetPort: 80 nodePort: 30007..