
[CKA] 쿠버네티스 네트워킹
k8s에서의 네트워크 일반적인 물리적 장비가 없는 pod들은 클러스터 내 어디서든지 서로 통신이 가능해야한다.(라우팅 가능) 이러한 내부 통신을 위해 DNS라는 개념 특히 CoreDNS라는 개념을 사용하는데 pod 내부에서는 svc.cluster.local 형식으로 서비스 이름을 조회 가능하다. 이런 클러스터에 kube-dns라는 이름으로 서비스가 ...
k8s에서의 네트워크 일반적인 물리적 장비가 없는 pod들은 클러스터 내 어디서든지 서로 통신이 가능해야한다.(라우팅 가능) 이러한 내부 통신을 위해 DNS라는 개념 특히 CoreDNS라는 개념을 사용하는데 pod 내부에서는 svc.cluster.local 형식으로 서비스 이름을 조회 가능하다. 이런 클러스터에 kube-dns라는 이름으로 서비스가 ...
컨테이너 모니터링 클러스터 운영에 있어 리소스 사용량 또는 문제 해결을 위해 모니터링을 사용할 경우가 있다. kubernetes는 이러한 모니터링을 지원하기 위해 경량 모니터링 도구(Metrics Server)를 지원하는데 kubectl top명령어를 사용하게 해준다. 설치 여부 확인 kubectl get deployment metrics-ser...
Docker Volume (가장 기본적인 컨테이너 저장소) pod는 기본적으로 두가지 Layer기반으로 운영된다. 컨테이너 레이어(읽기 + 쓰기 가능)과 이미지 레이어(읽기 가능) 읽기만 가능한 이미지 레이어의 경우 이미 docker를 통해 이미지화가 되어 있기에 수정이 불가능하다. (이미지 파일의 소스코드는 수정할 수 없음) 기본적으로 컨테이...
Authentication k8s에서 인증은 사용자가 누구인지 확인하는 단계로 클러스터에 요청한 사람의 신원을 확인하는 방식이다. 이러한 사람의 신원에 대한 정보는 kube-config에 저장되어 있으며, 권한을 부여 받으며 클러스터에 접근하여 작업(get pods, delete secrets 방식을 사용한다. 이러한 권한을 주는데는 주로 RBAC...
스케일링이란? 수직적 확장이란 CPU나 메모리의 증설을 뜻하고, 수평적 확장은 서버의 갯수를 늘리는 것이다. 쿠버네티스에서는 이러한 두 가지 방식의 스케일링 방식을 지원한다. HPA Pod 수를 자동으로 스케일링(늘렸다가 줄였다가)하는 스케일러 언제나 자리에 앉아서 kubectl top depoly를 할 수는 없는 노릇이다. 이를 위...
Command & Arguments 컨테이너의 Life Cycle Container는 별도의 OS가 존재하지 않기 때문에 실행 중인 프로세스가 없다면 즉시 종료되는 성질을 가지고 있다. (PID 1의 Life Cycle과 동일) 모든 프로레스가 종료된다면 컨테이너는 Completed 상태(또는 CrashLoopBackOff)로 변경되어 마...
Application을 운용하면서 일정 시간마다 작업을 해야할 필요성이 있다. ex) n개월이 지난 개인정보의 삭제, 조근 점검의 자동화, 이메일 보내기 이러한 작업을 사람이 해도 되겠지만 이런 귀찮은 작업을 자동화 하는 것이 개발자가 아닐까? 쿠버네티스에서도 이러한 반복작업을 자동화 할 수 있게 유닉스 계열 기반 Cronjob이라는 리소스를 지원...
본 글은 Udemy Certified Kubernetes Administrator (CKA) 강의를 참조해 정리한 내용을 기록했습니다. Label & Selector Kubernetes에는 다양한 리소스가 존재하고 이를 구별하기 위해 그룹화를 하는데 이런 그룹화를 위한 개념 Label은 특정 Pod, Node, Service를 구분하고, ...
본 글은 Udemy Certified Kubernetes Administrator (CKA) 강의를 참조해 정리한 내용을 기록했습니다. Manual Scheduling 앞서 배운 kube-scheduler는 자동으로 pod를 적절한 노드에 배치한다. 어떤 Node가 적합한지 점수를 측정해 판단하는 kube-scheduler 하지만 실제 운영...
AKS <-> Azure Key Vault 이용하기 AKS에 컨테이너 기반 개발을 하다보면 비밀에 대한 고민을 많이 하게 된다. 중요정보 또는 개인정보를 properties 내부에 암호화를 하고 이를 복호화 할 수 있는 Key나 DB에 접속하기 위해 사용되는 Username/Password는 Java 파일이나 yaml에 저장하는것은 옳...