천천히 꾸준히 조용히
Recent Posts
-
[Kubernetes] Certified Kubernetes Administrator 정리
[Kubernetes] Certified Kubernetes Administrator 정리
2026.08.251. RBAC 문제 풀이주체 (deploy-bot) - 대상 (pods) - 권한 (get, list, watch) - 산출물 Role과 RoleBinding을 describe로 찍어보기 k get sa,role,rolebinding -n r1-rbac k describe role pod-reader -n r1-rback describe rolebinding pod-reader-binding -n r1-rbac roleRef는 생성 후 변경할 수 없으니 삭제 후 재생성 해야 한다. k -n r1-rbac delete rolebinding pod-reader-bindingk -n r1-rbac create rolebinding pod-reader-binding \ --role=pod-reader --.. -
[Kubernetes] kubectl 연습 - namespace와 Secret
[Kubernetes] kubectl 연습 - namespace와 Secret
2026.08.20namespace는 클러스터 내부의 구역을 의미한다. 클러스터 안의 리소스(Pod, Deployment, Service)를 논리적으로 묶는 라벨으로 생각하면 됨.클러스터는 하나고, 그 안의 리소스를 그룹으로 구분한다. 노드를 구분하는 것도 아님. 노드와 namespace는 완전히 다른 축이다. 클러스터 안에 두 개의 노드가 있고 (Control Plane, Worker Node)그 노드 안에는 Pod가 있다. namespace는 저렇게 물리적으로 구분하는게 아니고 같은 클러스터 안을 논리적으로 구분한다. 저걸 쓰는 이유는 C++의 namespace를 사용하는 이유와 똑같음. my-web 이라는 deployment를 여러 군데에서 사용할 때 namespace만 다르게 지정해주면 된다. 개발 / .. -
[Kubernetes] Certified Kubernetes Administrator 연습 (4)
[Kubernetes] Certified Kubernetes Administrator 연습 (4)
2026.08.17Q1. 인증 API를 staging namespace에 배포함. auth-api Pod이 잘 뜨도록 설정하고 prod namespace의 tester Pod에서 auth-svc로 접속되도록 하기. cross-namespace 주소를 쓸 때는 namespace를 명시해 줘야 함. k exec tester -n prod -- wget -qO- auth-svc.staging └──┬──┘ namespace 붙임 Q2. init container가 설정 파일을 준비하고 nginx가 서빙하는 구조인데, Pod이 안 뜬다. web-init Pod가 정상 작동.. -
[Kubernetes] Certified Kubernetes Administrator 연습 (3)
[Kubernetes] Certified Kubernetes Administrator 연습 (3)
2026.08.06Q1. GPU 작업용 워크로드를 minikube-m03 노드에 배포하려는데 Pod이 안뜬다. m03노드는 GPU 전용임. 일반 워크로드가 못 들어오도록 설정해뒀음. m03 기본설정은 유지하되 Pod 2개가 m03에서 Running 되도록 조치하기. 특정 노드에 Pod를 배치하지 않도록 설정하는건 taint. toleration은 그 거부 표시를 견딜 수 있음을 명시하는 표식으로 Pod에 붙인다. 0/3 nodes are available: 1 node(s) had untolerated taint(s) ← m03: taint 있는데 Pod에 통행증 없음 2 node(s) didn't match Pod's node affinity/selector ← minikube.. -
[Kubernetes] Certified Kubernetes Administrator 연습 (2)
[Kubernetes] Certified Kubernetes Administrator 연습 (2)
2026.08.04Q1. 잘 돌아가다가 이미지 교체하니까 결제서버가 죽었다. 복구하시오 13months@13monthsBook k8s % k rollout undo deployment/payment -n opsWarning: resource deployments/payment was previously managed with 'kubectl apply'. Rolling back will not update the kubectl.kubernetes.io/last-applied-configuration annotation, which may cause unexpected behavior on future 'kubectl apply' operations. Consider using 'kubectl apply' with you.. -
[GCP] Professional Cloud Architect 정리
[GCP] Professional Cloud Architect 정리
2026.08.03AWSGCP차이점EC2Compute Engine-Auto Scaling GroupManaged Instance Group-AMICustom Image / Image Family이미지는 글로벌 리소스임Spot InstanceSpot VM-EKSGKE-ECS / FargateCloud Run LambdaCloud Run Functions지금은 Cloud Run으로 통합되긴 함 S3Cloud Storage Standard / IA / Glacier / Deep ArchiveStandard / Nearline / Coldline / ArchiveArchive도 밀리초 단위로 조회 가능EBSPersistent Disk / HyperDisk-EFSFilestore Storage GatewayStorage Trans.. -
[AWS] SAA-C03 오답노트 (2)
[AWS] SAA-C03 오답노트 (2)
2026.07.30대상 추적 정책 = CPU 사용률. Amazon Web Services (AWS)에서도 ingress와 egress 용어가 사용되며, 주로 보안 그룹(Security Group)과 네트워크 액세스 제어 목록(Network Access Control List, ACL) 등과 관련이 있습니다. 1. ingress (인그레스): - AWS에서 Ingress는 허용된 트래픽이 보안 그룹이나 ACL을 통해 EC2 인스턴스 또는 다른 리소스로 들어오는 것을 나타냅니다. - 예를 들어, 특정 포트에서의 외부에서 내부로의 연결을 허용하거나, 특정 IP 주소 범위로부터의 트래픽을 허용하는 경우 Ingress 규칙을 구성할 수 있습니다. 2. egress (이그레스): - egress는 리소스에서 외부로 나가는 트래픽을 .. -
[Kubernetes] CRD, Controller
[Kubernetes] CRD, Controller
2026.07.28YAML 쓸 때 항상 kind: 로 이게 쿠버의 무슨 리소스를 지정하는지 명시하는데 Custom Resource Definition을 사용하면 쿠버에 새로운 kind를 등록할 수 있다. HTML 처음 배울 때 이런거 말고 나만의 태그를 만들수는 없나 생각했었고 WEb Components가 그걸 가능하게 해줬는데 쿠버에서는 CRD를 통해 구현할 수 있음. kind: Database metadata: name: my-dbspec: engine: postgres version: "15" storage: 10Gi 이렇게 설정해주면 쿠버의 API가 확장되니 kubectl으로 k get databases 같은 명령어를 실행할 수 있게 된다. CRD만 만들면 아무 일도 안 일어난다. 그냥 데이터.. -
[Kubernetes] HPA, kubeadm, Helm, Kustomize
[Kubernetes] HPA, kubeadm, Helm, Kustomize
2026.07.28지금까지는 k create deployment web --replicas=3 명령어로 replicas 개수를 직접 설정해줬다. 트래픽이 변하니 수동으로 조작하지 말고 부하를 보고 Pod 동적으로 조절하는게 필요함. 이 때 HPA를 사용한다. (Horizontal Pod Autoscaler) AWS Auto Scaling Group이 EC2 인스턴스 수를 조절하듯 쿠버의 HPA는 Pod 수를 조절한다. 설정 방식도 똑같다. CPU 점유율 기준, min/max 인스턴스 기준 HPA가 제대로 동작하려면 CPU 사용률을 측정할 수 있어야 함. 이 때는 metrics-server를 사용한다. metrics-server가 없으면 HPA가 CPU를 확인하지 못해서 제대로 작동하지 않는다. Ingress가 Contr.. -
[Kubernetes] NetworkPolicy, Ingress
[Kubernetes] NetworkPolicy, Ingress
2026.07.28같은 클러스터 안에서 Pod 끼리는 서로 자유롭게 통신할 수 있다. 다만 이러면 해킹당한 Pod이 다른 Pod에 마음대로 접근할 수 있어서 보안상 위험하다. 그러니 누가 누구랑 통신할 수 있는지를 제한하는게 NetworkPolicy이다. 네트워크 수준에서의 방화벽임. NetworkPolicy가 없다면 기본적으로 전부 허용하고, NetworkPolicy가 Pod에 적용되면 그 Pod는 명시한 것만 허용하고 나머지는 차단한다.RBAC랑 비슷함. AWS처럼 Ingress와 Egress를 정의해야 함. 다만 Ingress를 잘 다루는게 더 중요하다. Label Selector로 Pod를 고르고.. YAML 적을 때는 그냥 k8s docs 그대로 가져다 쓰면 된다. 아무도 외워서 안씀.템플릿 가져와서 필요한.. -
[Kubernetes] Probe, Resource Limits
[Kubernetes] Probe, Resource Limits
2026.07.27컨테이너가 Running 이라고 해서 항상 정상 작동하지는 않는다. 앱이 떠 있지만 내부적으로 멈춰서 요청을 못 받을 수 있고, 앱이 뜨는 도중 요청이 들어올 수 있음. 그러니 Probe를 사용한다. 프로토스에서 미네랄 캐는 일꾼이 Probe인데 여기서도 나름 비슷함.. 컨테이너가 잘 살아있는지 조사하는 역할을 수행한다. 종류는 세 개 1. livenessProbe컨테이너가 살아있는지를 검사하고 실패하면 컨테이너를 재시작한다.앱이 응답하는지 확인하고 재시작시킴. 2. readinessProbe 컨테이너가 요청 받을 준비가 됐는지를 검사한다. 실패하면 서비스에서 제외하고 트래픽을 보내지 않음. 3. startupProbe시작이 느린 앱의 startup이 끝날 때 까지 다른 probe를 미룬다. httpG.. -
[Kubernetes] Certified Kubernetes Administrator 연습 (1)
[Kubernetes] Certified Kubernetes Administrator 연습 (1)
2026.07.27Q1. 가상의 회사에서 요청이 왔다 blog라는 namespace를 만들고, 그 안에 블로그 앱을 배포하라.namespace: blogSecret: 이름 blog-secret, 내용은 DB_PASSWORD=supersecretPVC: 이름 blog-storage, ReadWriteOnce, 2GiDeployment: 이름 blog-app, 이미지 nginx, replicas 2개Secret blog-secret을 환경변수로 주입PVC blog-storage를 /var/data 경로에 마운트 (/data 아님)Service: 이름 blog-svc, NodePort, 포트 80 명령어로 namespace 만들고 secret 만들고, k8s docs 기반으로 PVC 만들고, dry-run으로 deployme.. -
[Kubernetes] kubectl 연습 - RoleBinding
[Kubernetes] kubectl 연습 - RoleBinding
2026.07.26실제 회사 클러스터에서는 누가 뭘 할 수 있는지를 제어해야 한다. Role-Based Access Control이 필요함. secret을 다룰 때도 사실 그냥 인코딩일 뿐이니 진짜 secret처럼 다루려면 RBAC로 아무나 get secret을 수행하지 못하게 해야한다. 주체 : 쿠버 밖의 사람, ServiceAccountRole: 권한의 목록으로 뭘 할 수 있느닞를 정의한다.RoleBinding : 주체와 Role을 묶는다. 특정 사람에게 이 Role을 준다. Role과 RoleBinding은 특정 namespace 안에서만 유효하고, ClusterRole과 ClusterRoleBinding은 클러스터 전체에서 유효하다. 13months@13monthsBook k8s % k create se.. -
[AWS] SAA-C03 오답노트 (1)
[AWS] SAA-C03 오답노트 (1)
2026.07.25S3에 쿼리하는건 AWS Athena. JSON 쿼리 가능. SQL을 사용해서 S3에 있는 데이터를 간편하게 분석할 수 있는 서비스이다. 복제가 효과적으로 작동하려면 각 읽기 전용 복제본에 원본 DB 인스턴스에 동일한 양의 컴퓨팅 및 스토리지 리소스가 있어야 함. AWS EBS는 가상 하드디스크를 의미함. SSD랑 똑같다. 단일 EC2 인스턴스에 마운트됨. EFS는 여러 EC2가 마운트되고 사용할 수 있음. DataSync는 데이터 전송 및 마이그레이션에 사용된다. SnowBall Edge는 대용량 데이터를 네트워크를 안타고 하드웨어 디바이스로 AWS로 이관함 다중 MSA 환경에서는 메세지 수신을 위해 SNS가 필요함. 메세지 폭증에도 안전하게 처리하려면 SQS 필요. 기존 환경을 AWS 클라우드로 현.. -
[Kubernetes] kubectl 연습 - Service, Volume, Scheduling
[Kubernetes] kubectl 연습 - Service, Volume, Scheduling
2026.07.23서비스는 Pod 앞에 고정 창구를 세우는거고, 서비스의 타입에 따라서 접근 범위가 달라진다. 그리고 서비스의 타입은 3가지가 있음. (내부 전용부터 외부 노출까지) 1. ClusterIP클러스터 내부 전용 아이피로 외부에서는 접근할 수 없다. 2. NodePortClusterIP + 노드의 포트를 열어서 외부에서 접근할 수 있도록 설정한다. (30000 ~ 32767) 3. LoadBalancerNodePart + 클라우드의 외부 로드밸런서를 붙여서 서비스를 외부 인터넷에 접근할 때 사용한다. 클라우드에서만 가능. minikube 에서는 불가능. 지금은 로컬 맥북에서 하고있으니 NodePort를 사용해보자. 13months@13monthsBook k8s % kubectl create deployme.. -
NET 챌린지 13 : 멀티드론 기반 3D 상황인식 시스템 - 착수보고회
NET 챌린지 13 : 멀티드론 기반 3D 상황인식 시스템 - 착수보고회
2026.07.23마당을 나온 드론 팀 발표 시작하겠습니다.저희가 넷챌린지 캠프에서 개발할 과제는 멀티드론 기반 재난 현장 3D 상황인식 시스템, SkyLens입니다. 드론으로 현장을 촬영하고, 그 영상을 3D 상황판으로 보여주는 시스템을 목표로 합니다. 먼저 저희가 만드려고 하는게 어떤 건지, 개요와 개발 필요성을 담은 기획안을 먼저 말씀드리고 이어서 이 아이디어를 실제로 어떻게 구현할 것인지에 대한 계획과 KOREN 활용 방안 및 일정을 말씀드리겠습니다.마지막으로는 연구 개발비 사용 계획으로 마무리하겠습니다. 먼저 개요입니다. 여러 대의 드론이 RGB 카메라와 열화상 카메라로 현장을 촬영하면, 그 영상이 KOREN 고속망을 타고 코어 서버로 실시간으로 전송됩니다. 서버에서는 이 영상을 3D로 복원하고 AI가 .. -
[Kubernetes] kubectl 연습 - Deployment ReplicaSet
[Kubernetes] kubectl 연습 - Deployment ReplicaSet
2026.07.21내가 쿠버네티스 클러스터를 다룰 때는 kubectl을 사용한다. (kube-control) 그냥 명령어임. 도커 데스크탑 말고 CLI로 쓸 때 열심히 치던 명령어와 비슷하다. 13months@13monthsBook ~ % kubectl create deployment my-web --image=nginxdeployment.apps/my-web created13months@13monthsBook ~ % Deployment로 간단한 웹서버를 하나 띄워보자.Pod을 직접 만들지 않고 Deployment를 사용해서 띄운다. 13months@13monthsBook ~ % kubectl get deploymentsNAME READY UP-TO-DATE AVAILABLE AGEmy-w.. -
[Kubernetes] Kubernetes Concept
[Kubernetes] Kubernetes Concept
2026.07.21쿠버네티스는 컨테이너를 관리하는 도구이다.여기서 컨테이너는 애플리케이션을 격리해서 실행하는 기술으로, 도커는 컨테이너 기술을 쉽게 쓰는 구현체 중 하나임. 쿠버네티스가 직접 컨테이너를 실행하지는 않음. 도커에 종속된 기술은 아니다. 컨테이너를 실행하는 런타임은 꼭 도커가 아니여도 상관없음. (2022부터 쿠버는 containerd 런타임을 사용한다) docker run으로 컨테이너 띄우고 컨테이너에 웹 띄우고 자러갔는데 컨테이너가 메모리 부족으로 죽어버렸다.쿠버네티스를 사용하지 않으면 다시 docker run을 입력해야 함. 갑자기 사용자가 10배로 늘어버리면 컨테이너 하나로는 감당할 수 없으니 컨테이너를 여러 개 만들어야 한다.서버컴 하나에 컨테이너 10개를 두는건 힘드니 서버컴 n개에 컨테이너 m개를.. -
[Embedded Challenge] 자율주행 프로젝트 회고
[Embedded Challenge] 자율주행 프로젝트 회고
2026.07.01먼저 풀어야 할 문제를 명확하게 정의해보자.미로는 약 5 m × 10 m 직사각형 공간이며, 출발선에서 출발하여 북쪽에 위치한탈출구에 충돌 없이 가장 빠르게 도달하는 것이 목표다. 장애물은 uBrain 포장 박스로 구성된 고정형 장애물과 이동형uBrain 1 대로 구분된다. 여기서 핵심은 탈출구가 반드시북쪽에 위치하며 ‘ㅁ’형 맵이 아니라는 특징 그리고, 탈출구에도달하기 위해 필요한 방향 전환 횟수가 정해져 있다는부분이다. 이 강한 가정을 통해서, 완전성이 보장되므로 이 문제를 디바이스에 방향에 대한 정보를 제공하여 북쪽(디바이스가 처음 놓인 방향) 탈출구로 안정적으로 수렴시키는 그리디 문제로 재정의했다. 초기에는 Occupancy Grid 기반 mapping, 벽 추출, A*/D* 전역 경로계획을 통합.. -
[Data Science] Data Mining
[Data Science] Data Mining
2026.06.18Association Rule MiningA를 구매한 사람은 B도 같이 구매하더라~ 같은 패턴을 찾는게 목표 itemset : 물건들의 집합 support : 아이템셋이 전체 거래 중 몇 비율에서 등장하는지 나이브하게 생각하면 모든 가능한 연관 규칙을 찾고 support값과 confidence값을 계산해도 된다.다만 이렇게 하면 규칙 수가 너무 많아져서 느림 -> Apriori 알고리즘 사용 최소 지지도인 minsup과 최소 신뢰도인 minconf를 지정하고 비교함 (각각 직접 설정하는 파라미터)support >= minsup , confidence >= minconf (흔한 패턴만 보겠다 + 믿을 만한 규칙만 보겠다) 어떤 itemset이 frequent 하다면 (support >= min..