DevOps Engineer

Storage Storage in Docker (건너뛰어도 됨) 쿠버네티스 같은 컨테이너 오케스트레이션 도구의 스토리지를 이해하려면 먼저 Docker에서 스토리지가 어떻게 작동하는지 이해하면 더 쉬워질 것이다. Docker에서는 스토리지 드라이버와 볼륨 드라이버가 있다. Docker를 설치하면 기본적으로 /var/lib/docker/ 경로에 폴더 구조를 생성한다. aufs, containers, image, volumes 등 여러 개의 폴더가 있다. 여기가 docker가 기본ㄱ밧으로 모든 데이터를 저장하는 곳이다. 여기서 데이터란 Docker 호스트에서 실행되는 이미지 및 컨테이너와 관련된 파일을 말한다. 먼저 Docker의 계층 구조를 이해해보자 Docker는 이미지를 구축할 때 레이어드 아키텍처에 구..
Service Accounts Service Account 의 개념은 Authentication, Authorization, RBAC 등의 쿠버네티스의 다른 보안 관련 개념과 연결되어 있다. 쿠버네티스에서 Account는 두 개의 유형으로 분리되어 있다. 하나는 User Account 또 다른 하나는 Service Account. User Account는 사람이 사용하고 Service Account는 컴퓨터가 사용한다. User Account는 관리 작업을 수행하기 위해 클러스터에 액세스하는 관리자가 될 수 있고 응용프로그램 배포 등을 위해 클러스터에 액세스하는 개발자가 될 수 있다. Service Account는 앱이 쿠버네티스 클러스터와 상호 작용할 때 사용하는 계정이다. 예를 들어 프로메테우스 같은..
KubeConfig curl 을 이용해서 REST API에 대한 파드 목록을 조회하는 방법을 사용할 때 kube-apiserver 주소로 curl 요청을 보내면서 옵션으로 bearer 파일과 CA 인증서를 전달해 사용자를 인증하는 데 사용한다. 그렇다면 kubectl 명령어를 사용하는 것은 어떨까? kubectl 명령어를 사용하면서 키, 인증서 등등 여러가지 옵션을 사용하는 것은 매우 귀찮은 작업이 되기 때문에 kubeconfig라는 구성파일에 이를 저장해 놓는다. 그래서 우리가 여태까지 kubectl 명령어를 사용할 때 키,인증서 등등의 옵션 없이도 명령어를 사용할 수 있었던 것이다. 기본적으로 kubectl 도구는 사용자의 홈 디렉토리/.kube/config 파일을 찾는다. 이 파일에는 Cluster..
Security 강의 개요 쿠버네티스 보안의 초기 단계 쿠버네티스 접근 가능 이유, 접근 통제 방법 다양한 인증 메커니즘 보안 관련 또는 인증서 관련 이슈 핸들 Security Primitives 쿠버네티스 호스트부터 시작해보자. 호스트에 대한 모든 액세스는 보안 처리가 되어야한다. Root 액세스 해제, 암호 기반 인증 해제, Only SSH 키 기반 인증만 사용 가능해야한다. 클러스터 보안을 위해 어떤 위험과 조치를 취해야 할까? 쿠버네티스의 중심에는 kube-apiserver가 있다. kubectl 이나 API에 직접 액세스 함으로써 상호작용 하게된다. API를 통하게 되면 클러스터에서 거의 모든 작업을 수행할 수 있다. API 서버 자체에 대한 액세스를 제어하는 게 1차 방어선이다. 두가지 결정을..
Cluster Maintenance 강의 개요 운영체제 업그레이드 클러스터 업그레이드, 클러스터 end to end 업그레이드 백업과 복원 OS Upgrade 유지보수 목적으로 노드를 제거해야 하는 시나리오에 대해 논의해보자. 소프트웨어 기반 업그레이드나 패치 적용, 보안 패치 등을 클러스터에 적용하는 것이다. 노드와 파드가 응용 프로그램을 제공해준다. 허나 노드 중 하나가 다운이되면 어떻게 되는가? 파드가 접근이 불가능해진다. 예를 들어 레플리카셋으로 구성된 파드가 있다면 노드가 죽어도 파드가 계속 유지될 것이다. 만약 레플리카셋으로 구성되어 있지 않다면? 노드가 중지되면 파드는 영향을 받고 다른 노드에 올라오지 않으니 사용자가 애플리케이션을 이용하는데 영향을 줄것이다. 노드가 Up 상태로 변경되면 K..
웹 페이지를 배포했다고 앞 페이지에서 안내 했음 페이지 확인 해보니 blue deployment를 분석하고 pod가 몇개 배포 되었는지 확인하라 grep 명령어로 간단히 확인했는데 아래와 같이 확인해도 된다. controlplane ~ ➜ k get deploy frontend -n default -o jsonpath='{.spec.replicas}' 4 애플리케이션을 배포하는 데 사용되는 컨테이너 이미지는 무엇입니까? controlplane ~ ➜ k get deploy frontend -n default -o jsonpath='{.spec.template.spec.containers[*].image}' kodekloud/webapp-color:v1 deployment를 분석하고 현재 전략이 어떻게 되..
Application Lifecycle Management 강의 개요 응용 프로그램 수명 주기 관리에 대해 생각해보자. 업데이트와 롤백에서 시작해 응용 프로그램을 구성하는 다양한 방법 Self-Healing Application Rolling Update & Rollbacks 먼저 배포 시 롤아웃과 버전 관리를 이해해보자 처음 배포를 실행하게 되면 새로운 롤아웃으로 인해 새로운 배포 Revision을 생성하게 된다. 새로 앱이 업그레이드 되면 컨테이너 버전이 새 것으로 업데이트 되면 새 롤아웃이 트리거되고 새 배포 Revision이 생성된다. 배포 과정 중 일어난 변화를 추적할 수 있게 해주고 필요하다면 배포의 이전 버전으로 되돌릴 수 있게 해준다. kubectl rollout status deploym..
metric-server를 배포하세요, git repo에서 pull 해와서 제시해준 git clone 명령어로 파일을 가져왔다. 모든 yaml 파일 생성하시오 kubectl top node로 node 메트릭 확인하기 어떤 노드가 제일 많은 CPU 자원을 사용중인가요? k top node 명령어로 확인하면 된다. controlplane이 많이 사용중 어떤 노드가 가장 많은 메모리를 사용 중인가요? controlplane이 많이 사용중 어떤 파드가 가장 많은 메모리를 사용 중인가요? k top pod 명령어로 확인하면 된다. rabbit 파드가 제일 많이 사용중 가장 적은 CPU를 사용하는 파드는 무엇인가요? lion이다. USER5 유저는 application에 접근하는 데 문제가 있다. 원인을 파악하세요..
Logging & Monotoring 강의 개요 다양한 로깅과 모니터링 옵션 클러스터 구성 요소를 모니터링하는 방법과 그 위에 호스팅된 응용 프로그램 모니터링 클러스터 구성요소와 응용 프로그램에 대한 로그를 보고 관리하는 방법 Monitor Cluster Components 쿠버네티스 자원은 어떻게 모니터할 수 있을까? 더 중요한 것은 무엇을 관찰할지를 정하는 것이다. 예로는 노드 레벨 지표와 파드 레벨 지표가 있다. 노드 레벨 지표는 클러스터 내 노드의 수와 정상적인 개수, 성능 지표 (CPU, 메모리, 네트워크, 디스크 등등) 와 같은 것들이 있다. 파드 레벨 지표는 파드 개수와 각 파드 성능 지표(CPU,메모리 등등) 이런 메트릭들을 모니터링하고 저장하고 데이터에 대한 분석을 제공할 솔루션이 필요하..
Nowon9159
'분류 전체보기' 카테고리의 글 목록 (4 Page)