본문 바로가기

클라우드/Kubernetes24

Minikube 설치하기 2 우분투 사전작업 2020/02/05 - [운영체제/리눅스] - Docker CE버전 설치하기 우분투 2020/02/05 - [클라우드/Kubernetes] - Minikube 설치하기 1 (kubectl 설치) 우분투 를 수행하고 아래를 따라하자. 1. 도커 확인 docker -v 2. minikube설치 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 3.실행 minikube start --vm-driver=none 설치 완료 2020. 2. 7.
Minikube 설치하기 1 (kubectl 설치) 우분투 2020/02/05 - [운영체제/리눅스] - Docker CE버전 설치하기 우분투 Docker CE버전 설치하기 우분투 ubuntu16,ubuntu18 버전에 docker ce를 설치해보겠습니다. 1.확인 docker -v apt list docker docker-engine docker.io ' 2 . apt update apt update 3. apt install apt install apt-transport-https ca-certif.. base-on.tistory.com 미니쿠베를 설치하기위해서 기존에 docker를 설치해야한다. 이후 시작해보자 1. 설치하기 curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -.. 2020. 2. 5.
쿠버네티스 모니터링 모니터링 쿠버네티스에 모니터링을 보면 많은 툴과 지표들이 있어서 혼돈하기 쉬운데 , 먼저 모니터링 컨셉에 대한 이해를 할 필요가 있다. 쿠버네티스 기반의 시스템을 모니터링하기 위해서는 크게 1. host, 2. container, 3. app, 4. kubernetes 4가지를 모니터링 해야 한다. 1. host : 쿠버네티스 컨데이너를 실행하는 하드웨어 호스트 , 노드에 대한 지표 모니터링이 필요하다. 노드의 cpu , 메모리, 디스크, 네트워크, 사용량과 노드 os와 커널에 대한 모니터링 2. container : 노드에 기동되는 각각의 컨테이너에 대한 정보이다. 컨테이너의 CPU,메모리, 디스크, 네트워크 사용량을 모두 모니터링한다. 3. application : 컨테이너에서 구동되는 개별 어플리케.. 2020. 2. 4.
쿠버네티스 Secret Secret configMap 일반적인 환경 설정이나 CONFIG정보를 저장하도록 디자인 되었다면 보인이 중요한 패스워드나 API키 인증서 파일들은 Secret에 저장할 수 있다. Secret은 안에 저장된 내용을 지키기 위하여 추가적인 보안기능을 제공한다. secret의 값들은 etcd에 저장될때 암호화 된 형태로 저장되고 API server나 node의 파일에는 저장되지 않고 항상 메모리에 저장되어 있기 때문에 상대적으로 접근이 어렵다. 하나의 secret의 사이즈는 최대 1M까지 지원되는데, 메모리에 지원되는 특성 때문에 secret을 여러개 저장하게 되면 APIserver나 노드에서 이를 저장하는 kubelet의 메모리 사용량이 늘어나서 out of memory와 같은 이슈가 발생할 수 있다. 그.. 2020. 1. 28.
쿠버네티스 configMap configMap 배포하다 보면 환경에 따라서 설정값을 사용하는 경우가 있다. 예를 들어, 데이터베이스의 IP API를 호출하기 위한 API KEY, 운영 개발에 따른 디버그 모든 , 환경 설정 파일들이 있는데, 애플리케이션 이미지는 같이ㅈ만, 이런 환경변수가 차이나는 경우 매번 다른 컨테이너 이미지를 만들어야하는 불편함을 초래한다. 이러한 것을 극복하기 위해 환경변수나 설정값들을 변수로 관리하여 pod가 생성될때 이 값을 넣어 줄수 있는데, 이러한 기능을 제공하는 것이 바로 configMap,Secret이다. pod를 배포할때마다 다른 설명 정보를 반영하도록 할 수 있다. pod로 넘기는 방법 1. 정의해 놓은 pod값의 환경변수로 넘기는 방법 2. 정의해 놓은 값을 pod의 디스크 볼륨으로 마운트하는.. 2020. 1. 16.
쿠버네티스 Healthcheck apiVersion: v1 kind: Pod metadata: name: liveness-pod spec: containers: - name: liveness image: gcr.io/terrycho-sandbox/liveness:v1 imagePullPolicy: Always ports: - containerPort: 8080 livenessProbe: exec: command: - cat - /tmp/healthy initialDelaySeconds: 5 periodSeconds: 5 ​ metadata: name: readiness-rc spec: replicas: 2 selector: app: readiness template: metadata: name: readiness-pod labels: .. 2020. 1. 13.
쿠버네티스 Ingress Ingress 쿠버네티스는 4Layer로 TCP단에서 Pod들을 밸런싱한다. 서비스 같은경우에는 SSL, VirtualHost와 같이 여러 호스트 명을 사용하거나 호스트명에 대한 라우팅이 불가능하고, URL Path에 따른 서비스간 라우팅이 불가능하다. 또한 마이크로 서비스 아키텍쳐(MSA)같은 경우 쿠버네티스의 서비스하나가 MSA의 서비스로 표현되는 경우가 많고 서비스는 하나의 URL로 대표되는 경우가 많다. MSA서비스간의 라우팅을 하기위해서는 API게이트웨이를 넣는 경우가 많은데, 이 경우에는 API 게이트웨이에대한 관리포인트가 생기기 때문에 URL 기반의 라우팅 정도라면 API 게이트 웨이 처럼 무거운 아키텍처 컴포넌트가 아니라 L7 로드벨런서 정도로 위의 기능을 모두 제공가능하다. 쿠버네티스 H.. 2020. 1. 13.
쿠버네티스 서비스 쿠버네티스 서비스란 Pod는 IP가 랜덤하게 지정하되고 restart가 될때마다 변하기때문에 고정된 엔트포인트를 호출이 어렵다. 여러 pod를 운영할 때 Pod 간의 로드밸런싱을 지원해줘야하는데 , 서비스가 이런 역할을 한다. 서비스는 지정된 IP로 생성, 여러 Pod를 묶어 로드 밸런싱, 고유 DNS값을 가질 수 있게해준다. 서비스는 라벨 셀렉터를 이영하여 관리하고자 하는 Pod를 정의할 수 있다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 apiVersion: v1 kind: Service metadata: name: hello-node-svc spec: selector: app: hello-node ports: - port:.. 2020. 1. 10.
쿠버네티스 불륨설명 쿠버네티스에 볼륨은 다양한 볼륨을 지원한다. 로컬,NFS, iSCSI, Fiber Channel에 일반적인 외장 디스크, 오픈소스(GlusterFS나, Ceph), 퍼블릭클라우드 볼륨(AWS EBS, GCP Persistent) 자세한내용 보기 https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes 파드에 들어가는 볼륨이기 떄문에 파드안에 있는 컨테이너는 서로 공유가능하다. 볼륨의 종류에는 3개지가 있다. Temp : emptyDir pod의 생성,삭제주기와 같은 볼륨이다. 파드안에 컨테이너가 죽어도 파드는 죽이 않아서 볼륨이 살아있다는 장점이 있다. emptyDir.medium 필드를 통해 지정된다. Pod에 nginx와 redis .. 2020. 1. 10.
쿠버네티스 구조 크게 2가지로 구분한다 마스터, 노드(미니안 또는 워커) 마스터 : 쿠버네티스 클러스터 전체를 컨트롤하는 역활로 API서버,스케줄러,컨트롤러 매니저, etcd 로 구성되어 있다. API서버(명령, 통신 관련): 모든 명령과 통신을 API를 통해서 한다. 모든 기능은 REST API로 제공하고 그에 따른 명령을 처리 Etec (정보 저장): 클러스터의 데이터베이스 역할로 서버로 설정값이나 클러스터의 상태를 저장한다. -> 분산형 키/벨류 형식이고 오픈소스이다. 빠른 응답과 신뢰성등의 장점이 있다. 스케줄러(리소스들을 할당할지 선정): 파드나 서비스들을 적절한 노드에 저장하게 정리해주는 역할 컨트롤러 매니져(RC,SC,VC,NC 관리): Replica controller, Service controller,.. 2020. 1. 8.
컨트롤러 컨트롤러 고급 컨트롤러 RC,RS,Deployment는 웹 서버와 같은 일반적인 워크로드에 대해 Pod를 관리하기 위한 컨트롤이다. 실제 운영환경에서는 웹서버와 같은 일반적인 워크로드이외에 데이터베이스, 배치작업, 데몬서버와 같이 다양한 형태의 워크로드 모델이 존재하는데 이를 지원하기 위해서 쿠버네티스는 다양한 컨트롤러를 제공합으로써 pod운영을 다양한 시나리오에 맞게 지원하고 있다. DaemonSet DS는 pod가 각각의 노드에서 하나씩 돌게하는 형태로 pod를 관리하는 컨트롤이다. RC나 RS에 의해서 관리되는 Pod는 여러 노드의 상황에 따라서 일반적으로 비균등적으로 배포가 되지만 , DS에 의해 관리되는 Pod는 모든 노드에 균등하게 하나씩만 배포된다. 이러한 형태의 워크로드는 서버의 모니터링이.. 2020. 1. 7.
쿠버네티스 - 오브젝트 쿠버네티스 소개 컨테이터 운영환경 중 가장 널리 사용되는 솔루션이 kubernetes(K8s=K와 S사이에 8개의 문자가 있어서) 이다. 구글은 내부 서비스를 클라우드 환경에서 운영하고 있으며 컨테이너 환경을 사용해왔다. 구글의 내부 컨테이너 서비스를 Borg라 하는데 , 이 구조를 오픈소스화한 것이 쿠버네티스이다. Go언어로 구현되었으며 , 벤더나 플랫폼에 종속되지 않기 때문에, 대부분의 퍼를릭 클라우드에 사용가능하고 오픈스택과같은 프라이빛 클라우드 구축환경이나 또는 베어메탈에도 배포가능하다. 여러 퍼블릭 클라우드를 섞어서 사용하는 온프레미스/퍼블릭클라우드를 혼용해서 쓰는 하이브리드클라우드으로 많이 각광받고 있다. 마스터와 노드 쿠버네티스를 이해하기 위해 클러스터 구조를 이해할 필요가 있다. 구조는 매.. 2020. 1. 7.
반응형