본문 바로가기

전체 글

(520)
[Basic] 쿠버네티스 오케스트레이션 실습 쿠버네티스 오케스트레이션 실습쿠버네티스 클러스터 구축클러스터 구축 1Centos 7 기반 3개의 가상머신: 각 서버의 /etc/hosts 파일172.16.1.100 k8s-master172.16.1.101 k8s-node1172.16.1.102 k8s-node2도커 설치# yum install -y yum-utils device-mapper-persistent-data lvm2# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# yum install docker-ce# systemctl start docker && systemctl enable docker클러스터 구축 2kubeadm 설치 준비SEL..
[Basic] 쿠버네티스 네트워크 쿠버네티스 네트워크클러스터 네트워킹쿠버네티스 클러스터 네트워크아래의 이미지는 고수준의 컴포넌트 아키텍처이며 더 자세한 내용은 쿠버네티스 공식 문서를 참고한다.전체 클러스터를 위한 하나의 가상 네트워크다.각 파드에는 고유한 IP가 존재한다.서비스는 파드와 다른 범위의 IP 대역을 가진다.클러스터 CIDR: 클러스터 내 파드에 할당하는데 사용되는 IP 범위다.서비스 클러스터 IP 범위: 서비스에 대한 IP 범위이며 클러스터 CIDR와 중첩되면 안된다.파드 CIDR: 특정 워커 노드 내 파드에 대한 IP 범위이며 이 범위는 클러스터 CIDR 내에 있어야 하지만 다른 워커 노드의 파드 CIDR과 겹치면 안된다.Master and Node (Minion)쿠버네티스 네트워킹IP는 컨테이너가 아니라 파드에 할당된다...
[Basic] 쿠버네티스 보안 쿠버네티스 보안계정 인증인증 (Authentication)쿠버네티스는 계정 체제를 관리함에 있어서 사람이 사용하는 사용자 계정과 시스템이 사용하는 서비스 계정 두 가지 개념을 제공한다.일반적인 사용자일반적인 사용자는 우리가 일반적으로 생각하는 사용자 아이디의 개념이다.쿠버네티스는 자체적으로 사용자 계정을 관리하고 이를 인증(Authenticate)하는 시스템이 없다.반드시 별도의 외부 계정 시스템을 사용해야 하며 계정 시스템 연동을 위해서 OAuth나 구글 계정(Google Account)이나 오픈스택의 키스톤(keystone)과 같은 계정 연동 방식을 지원한다.서비스 계정쿠버네티스가 직접 관리하는 사용자 계정이다.클라이언트가 쿠버네티스 API를 호출하거나 콘솔이나 기타 클라이언트가 쿠버네티스 API를 ..
[Basic] 쿠버네티스 모니터링 쿠버네티스 모니터링쿠버네티스 모니터링 시스템쿠버네티스 모니터링 개념시스템을 운영하는데 있어서 운영 관점에 있어서 가장 중요한 기능 중의 하나는 시스템에 대한 모니터링이다.시스템 자원의 사용량이나 에러 등에 대한 모니터링을 통해서 시스템을 안정적으로 운영하고 문제 발생 시 원인 파악과 대응이 가능하다.아래는 쿠버네티스 기반의 시스템 모니터링 대상이다.리소스: 리소스 모니터링은 클러스터와 애플리케이션 상태를 이해하기 위해 필수적이다.디스크: 임계치는 클러스터 사이즈와 상관이 없기 때문에 디스크 사용량을 모니터링하는 것은 디스크 볼륨을 모니터링 하는 것보다 더 효율적이다.CPU: CPU 모니터링은 kube-state-metrics를 통해 가능하며 시스템, 사용자 사용량과 iowait 또한 모니터링 가능하다.메..
[Basic] 쿠버네티스 배포 쿠버네티스 배포롤링 업데이트롤링 업데이트 개념일반적으로 애플리케이션을 배포하는 방법은 블루/그린, 카나리, 롤링 업데이트와 같은 방식이 사용된다.롤링 업데이트는 가장 많이 사용되는 배포 방식 중 하나이다.롤링 업데이트는 파드 인스턴스를 점진적으로 새로운 것으로 업데이트하여 디플로이먼트 업데이트가 서비스 중단 없이 이루어질 수 있도록 하는 방법이다.사용자들은 애플리케이션이 항상 가용 가능한 상태일 것이라 여기고 개발자들은 하루에 여러번씩 새로운 버전을 배포하도록 요구된다.시스템을 무 장애로 업데이트할 수 있다는 장점이 있다.롤링 업데이트 방식여러 개의 인스턴스를 동작시키도록 애플리케이션을 스케일하는 것은 애플리케이션의 가용성에 영향을 미치지 않으면서 업데이트를 수행하는 것에 대한 요구 사항이 있다.기본적으..
[Basic] 쿠버네티스 운영 쿠버네티스 운영볼륨, 디스크 서비스쿠버네티스 볼륨데이터를 담는 디렉토리다.Pod 내 컨테이너들이 접근 가능하다.Pod에 소속되는 동안 유지된다.Pod 내에서 구동되는 컨테이너들보다 오래 유지되며, 그 데이터는 컨테이너가 재시작 되더라도 계속 보존된다.자세한 내용은 Wiki를 참고한다.쿠버네티스 볼륨 종류로컬 디스크, configMap, secret, persistentVolumeClaim, emptyDir, hostPathNFS, iSCSI, Fiber Channel과 같은 일반적인 외장 디스크 인터페이스다.GlusterFS, Ceph와 같은 오픈 소스 파일 시스템을 사용할 수 있다.AWS EBS, GCP Persistent 디스크와 같은 퍼블릭 클라우드에서 제공되는 디스크를 사용할 수 있다.Vspher..
[Basic] 쿠버네티스 클러스터 아키텍처 쿠버네티스 클러스터 아키텍처쿠버네티스 아키텍처쿠버네티스 클러스터 아키텍처마스터와 노드쿠버네티스는 크게 마스터(Master)와 노드(Node) 두 개의 컴포넌트로 분리되어 있다.마스터(Master)마스터는 쿠버네티스의 설정 환경을 저장하고 전체 클러스터를 관리하는 역할을 한다.etcd, kube-apiserver, kube-scheduler, kube-controller-manager노드(Node)노드는 Pod나 컨테이너처럼 쿠버네티스 위에서 동작하는 워크로드를 호스팅하는 역할을 한다.노드에는 kubelet, kube-proxy, docker 등이 실행된다.실제 사용자가 사용하는 컨테이너들은 대부분 노드에서 실행된다.마스터 컴포넌트마스터 컴포넌트 개념클러스터 전체를 관리하는 컨트롤러를 의미한다.마스터 컴포..
[Basic] 쿠버네티스와 오브젝트 모델 쿠버네티스 오브젝트 모델쿠버네티스 오브젝트쿠버네티스 생태계 (CNCF: Cloud Native Computing Foundation)자세한 내용은 CNCF 홈페이지를 참고한다.쿠버네티스 아키텍처자세한 내용은 쿠버네티스 공식문서를 참고한다.쿠버네티스 개념자세한 내용은 쿠버네티스 공식문서를 참고한다.클러스터 전체를 관리하는 컨트롤러로서 마스터 노드가 있다.컨테이너가 배포되는 머신(가상머신 또는 물리적인 서버 머신)인 노드가 있다.쿠버네티스 오브젝트쿠버네티스는 상태를 관리하기 위한 대상을 오브젝트로 정의한다.쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가지는 객체다.쿠버네티스는 클러스터의 상태를 나타내기 위해 이 객체를 이용한다.쿠버네티스 객체는 아래와 같은 특징을 가지고 있다.어떤 컨테이너화된 애플리..