
[CKA] 쿠버네티스 보안과 접근 관리
Authentication k8s에서 인증은 사용자가 누구인지 확인하는 단계로 클러스터에 요청한 사람의 신원을 확인하는 방식이다. 이러한 사람의 신원에 대한 정보는 kube-config에 저장되어 있으며, 권한을 부여 받으며 클러스터에 접근하여 작업(get pods, delete secrets 방식을 사용한다. 이러한 권한을 주는데는 주로 RBAC...
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에 저장하는것은 옳...
본 글은 Udemy Certified Kubernetes Administrator (CKA) 강의를 참조해 정리한 내용을 기록했습니다. Replicaset Pod의 집합을 안정적으로 유지하고 동일 pod의 갯수에 대한 가용성을 보장해주는 쿠버네티스 리소스 쿠버네티스에서 pod의 갯수를 유지(replica)해주는 컨트롤러의 역할을 담당...
본 글은 Udemy Certified Kubernetes Administrator (CKA) 강의를 참조해 정리한 내용을 기록했습니다. Kubernetes 클러스터 핵심 개념 Master와 Worker Node 쿠버네티스 아키텍쳐 Master Node Master는 kube-api, kube-scheduler(pod를 관찰하며 pod가 할당되...
현재 아키텍쳐 구조도 대부분의 CI/CD 파이프라인과 Azure 리소스 자원이 찍힌 상태로 아키텍쳐는 위와 같다. 위 구조로 서비스를 배포하고 서비스에 접속하니 하나의 에러와 마주쳤다. Front ↔ Backend 통신 에러 FrontEnd(Vue.js)와 BackEnd(Spring Boot)를 별도의 pod으로 기동 시키고 FrontEnd의...