Kubernetes

Networking 선수 지식 - Switching Routing 네트워크란 무엇인가? 클라우드에 두 대의 컴퓨터(A와 B), 노트북, 데스크탑, 가상 머신이 있는 경우 시스템 A가 B에 어떻게 도달하는가? 이를 스위치에 연결하면 스위치는 두 시스템을 모두 포함하는 네트워크를 생성한다. 각 호스트에는 스위치에 연결하기 위한 물리적 또는 가상 인터페이스가 필요하다. 호스트의 인터페이스를 보려면 IP link 명령을 사용 이 경우 스위치에 연결하기 위해 Eth0이라는 인터페이스를 살펴보자. 네트워크 주소가 192.168.1.0인 네트워크라고 가정한다. 그런 다음 시스템에 동일한 네트워크의 IP 주소를 할당하면된다. 이렇게 하려면 ip addr 명령을 사용하면된다. 링크가 연결되고 IP 주소가 할당되면 이제 ..
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..
Application Lifecycle Management 강의 개요 응용 프로그램 수명 주기 관리에 대해 생각해보자. 업데이트와 롤백에서 시작해 응용 프로그램을 구성하는 다양한 방법 Self-Healing Application Rolling Update & Rollbacks 먼저 배포 시 롤아웃과 버전 관리를 이해해보자 처음 배포를 실행하게 되면 새로운 롤아웃으로 인해 새로운 배포 Revision을 생성하게 된다. 새로 앱이 업그레이드 되면 컨테이너 버전이 새 것으로 업데이트 되면 새 롤아웃이 트리거되고 새 배포 Revision이 생성된다. 배포 과정 중 일어난 변화를 추적할 수 있게 해주고 필요하다면 배포의 이전 버전으로 되돌릴 수 있게 해준다. kubectl rollout status deploym..
Logging & Monotoring 강의 개요 다양한 로깅과 모니터링 옵션 클러스터 구성 요소를 모니터링하는 방법과 그 위에 호스팅된 응용 프로그램 모니터링 클러스터 구성요소와 응용 프로그램에 대한 로그를 보고 관리하는 방법 Monitor Cluster Components 쿠버네티스 자원은 어떻게 모니터할 수 있을까? 더 중요한 것은 무엇을 관찰할지를 정하는 것이다. 예로는 노드 레벨 지표와 파드 레벨 지표가 있다. 노드 레벨 지표는 클러스터 내 노드의 수와 정상적인 개수, 성능 지표 (CPU, 메모리, 네트워크, 디스크 등등) 와 같은 것들이 있다. 파드 레벨 지표는 파드 개수와 각 파드 성능 지표(CPU,메모리 등등) 이런 메트릭들을 모니터링하고 저장하고 데이터에 대한 분석을 제공할 솔루션이 필요하..
Scheduling 강의 개요 스케줄러의 행동 방식을 사용자 지정하고 구성하는 다양한 옵션 수동 스케줄링 방법 및 데몬셋, 레이블, 셀렉터, Requirements와 Limit 다중 스케줄러를 구성하는 방법과 스케줄러 이벤트 보는 법 수동 스케줄링 apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - name: nginx image: nginx nodeName: kube-01 클러스터에 스케줄러가 없으면 내장된 스케줄러에 의존하는 대신 파드를 직접 스케줄링 해야 한다. nodeName 이라는 필드는 파드 매니페스트 파일을 만들 때 지정하진 않고 쿠버네티스가 자동으로 추가한다. 스케줄러는 모든 파드를 확인해 nodeName 속성이 설정되지 ..
Nowon9159
'Kubernetes' 태그의 글 목록 (2 Page)