728x90 개발강의정리222 [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-디플로이먼트 Deployment 디플로이먼트 https://kubernetes.io/docs/concepts/workloads/controllers/deployment 애플리케이션을 다운 타입 없이 업데이트 가능하도록 도와주는 리소스! 레플리카셋과 레플리케이션컨트롤러 상위에 배포되는 리소스 모든 포드를 업데이트하는 방법 잠깐의 다운 타임 발생 (새로운 포드를 실행시키고 작업이 완료되면 오래된 포드를 삭제) 롤링 업데이트 디플로이먼트 작성 요령 포드의 metadata 부분과 spec 부분을 그대로 옮김 Deployment의 spec.template에는 배포할 포드를 설정 replicas에는 이 포드를 몇 개를 배포할지 명시 label은 디플로이먼트가 배포한 포드를 관리하는데 사용됨 pod.yaml apiVersion:.. 개발강의정리/DevOps 2020. 12. 1. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-레플리케이션 컨트롤러와 레플리카셋 ReplicaSet 레플리케이션컨트롤러 포드가 항상 실행되도록 유지하는 쿠버네티스 리소스 노드가 클러스터에서 사라지는 경우 해당 포드를 감지하고 대체 포드 생성 실행 중인 포드의 목록을 지속적으로 모니터링으로 하고 '유형'의 실제 포드 수가 원하는 수와 항상 일치하는지 확인 레플리케이션(Replication): 데이터 저장과 백업하는 방법과 관 련이 있는 데이터를 호스트 컴퓨터에서 다른 컴퓨터로 복사하는 것 (위키백과) 레플리케이션컨트롤러의 세 가지 요소 레플리케이션컨트롤러가 관리하는 포드 범위를 결정 하는 레이블 셀렉터 실행해야 하는 포드의 수를 결정하는 복제본 수 새로운 포드의 모양을 설명하는 포드 템플릿 레플리케이션컨트롤러의 장점 포드가 없는 경우 새 포드를 항상 실행 노드에 장애 발생 시 다른 노.. 개발강의정리/DevOps 2020. 12. 1. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-레이블을 이용한 포드 구성 레이블을 이용한 포드 구성 레이블이란? 모든 리소스를 구성하는 매우 간단하면서도 강력한 쿠버네티스 기능 리소스에 첨부하는 임의의 키/값 쌍(예 app: test) 레이블 셀렉터를 사용하면 각종 리소스를 필터링하여 선택할 수 있음 리소스는 한 개 이상의 레이블을 가질 수 있음 리소스를 만드는 시점에 레이블을 첨부 기존 리소스에도 레이블의 값을 수정 및 추가 가능 모든 사람이 쉽게 이해할 수 있는 체계적인 시스템을 구축 가능 app: 애플리케이션 구성요소, 마이크로서비스 유형 지정 rel: 애플리케이션의 버전 지정 https://livebook.manning.com/#!/book/kubernetes-in-action/chapter-3/141 포드 생성 시 레이블을 지정하는 방법 $ kubectl create.. 개발강의정리/DevOps 2020. 11. 27. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-라이브니스, 레디네스, 스타트업 프로브 구성 라이브니스, 레디네스, 스타트업 프로브 구성 Liveness, Readiness and Startup Probes Liveness Probe 컨테이너 살았는지 판단하고 다시 시작하는 기능 컨테이너의 상태를 스스로 판단하여 교착 상태에 빠진 컨테이너를 재시작 버그가 생겨도 높은 가용성을 보임 Readiness Probe 포드가 준비된 상태에 있는지 확인하고 정상 서비스를 시작하는 기능 포드가 적절하게 준비되지 않은 경우 로드밸런싱을 하지 않음 Startup Probe 애플리케이션의 시작 시기 확인하여 가용성을 높이는 기능 Liveness와 Readiness의 기능을 비활성화Liveness 커맨드 설정 - 파일 존재 여부 확인 리눅스 환경 에서커맨드 실행 성공 시 0 (컨테이너 유지) 실패하면 그 외 값 출.. 개발강의정리/DevOps 2020. 11. 27. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-pod POD 포드 컨테이너의 공동 배포된 그룹이며 쿠버네티스의 기본 빌딩 블록을 대표 쿠버네티스는 컨테이너를 개별적으로 배포하지 않고 컨테이너의 포드를 항상 배포하고 운영 일반적으로 포드는 단일 컨테이너만 포함하지만 다수의 컨테이너를 포함 할 수 있음 포드는 다수의 노드에 생성되지 않고 단일 노드에서만 실행 여러 프로세스를 실행하기 위해서는 컨테이너 당 단일 프로세스가 적합 다수의 프로세스를 제어하려면 -> 다수의 컨테이너를 다룰 수 있는 그룹이 필요 포드의 관리 두 가지 장점 포드는 밀접하게 연관된 프로세스를 함께 실행하고 마치 하나의 환경에서 동작하는 것처럼 보임 그러나 동일한 환경을 제공하면서 다소 격리된 상태로 유지 동일한 포드의 컨테이너 사이의 부분 격리 포드의 모든 컨테이너는 동일한 네트워크 및 U.. 개발강의정리/DevOps 2020. 11. 27. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-etcd 데이터베이스 살펴보기 ETCD의 개념과 사용 Key Value 데이터 다중의 Key Value 데이터 셋 etcd 데이터베이스 살펴보기 https://github.com/etcd-io/etcd/releases wget 다운로드 wget https://github.com/etcd-io/etcd/releases/download/v3.4.13/etcd-v3.4.13-linux-amd64.tar.gz압축해제 및 디렉토리 이동 tar -xzf etcd-v3.4.13-linux-amd64.tar.gzetcdctl 명령어를 사용하기 위해 디렉토리 이동 cd etcd-v3.4.13-linux-amd64key 조회 sudo ETCDCTL_API=3 ./etcdctl --endpoints 127.0.0.1:2379 --cacert /etc/k.. 개발강의정리/DevOps 2020. 9. 20. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-Kube 시스템 컴포넌트 쿠버네티스 핵심 개념 Kube 시스템 컴포넌트 Kube API 서버 쿠버네티스 시스템 컴포넌트는 오직 API 서버와 통신 컴포넌트끼리 서로 직접 통신 X 때문에 etcd와 통신하는 유일한 컴포넌트 API 서버 RESTful API를 통해 클러스터 상태를 쿼리,수정할 수 있는 기능 제공 API 서버의 구체적인 역할 인증 플러그인을 사용한 클라이언트 인증 권한 승인 플러그인을 통한 클라이언트 인증 승인 제어 플러그인을 통해 요청 받은 리소스를 확인/수정 리소스 검증 및 영구 저장 Kube 컨트롤러 매니저 API 궁극적으로 아무 역할을 하지 않음 컨트롤러에는 다양한 컨트롤러가 존재 이 컨트롤러는 API에 의해 받아진 요청을 처리하는 역할 레플리케이션 매니저(레플리케이션컨트롤러) 레플리카셋, 데몬셋, 잡 컨트롤.. 개발강의정리/DevOps 2020. 9. 20. [데브옵스를 위한 쿠버네티스 마스터] minikube 소개 및 활용 이번 시간은 빠르게 설치할 수 있는 경량화된 쿠버네티스인 Minikube를 설치하고 사용하는 방법에 대해 다루겠다 우분투 18.04 환경에서 도커를 사용해서 구축한다 MiniKube를 설치하기 전에 Minikube는 가상환경을 사용해 쿠버네티스 클러스터를 가상으로 구현한다 다음 사이트를 확인하면 각각에서 제공되는 정보를 확인할 수 있다 미니큐브 공식 사이트: 설치하기 https://minikube.sigs.k8s.io/docs/start 쿠버네티스 공식 사이트: Minikube로 쿠버네티스 설치 https://kubernetes.io/ko/docs/setup/learning-environment/minikube 미니큐브는 리눅스, macOS, 윈도우 환경을 모두 제공하는데 일반적으로 가상환경을 제공하는 .. 개발강의정리/DevOps 2020. 9. 13. [데브옵스를 위한 쿠버네티스 마스터] 연습문제: GKE에서 인그레스를 활용한 로드밸런싱 프로세스 확인 ingress-tomcat-http-go.yaml 파일 생성 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: tomcat-http-go-ingress spec: tls: - hosts: - tomcat.gasbugs.com - http-go.gasbugs.com secretName: tls-secret rules: - host: tomcat.gasbugs.com http: paths: - path: / backend: serviceName: tomcat servicePort: 80 - host: http-go.gasbugs.com http: paths: - path: / backend: serviceName: http-go servicePort.. 개발강의정리/DevOps 2020. 8. 22. [데브옵스를 위한 쿠버네티스 마스터] 4. 쿠버네티스 핵심 개념 1 포드 디스크립터 작성 go-http-pod.yaml apiVersion: v1 kind: Pod metadata: name: http-go spec: containers: - name: http-go image: gasbugs/http-go ports: - containerPort: 8080 2 포드 연습문제 풀어보기 jenkins-manual-pod.yaml apiVersion: v1 kind: Pod metadata: name: jenkins-manual spec: containers: - name: jenkins image: jenkins ports: - containerPort: 8080 3 라이브네스 레디네스 프로브 실습 exec-liveness.yaml apiVersion: v1 kind:.. 개발강의정리/DevOps 2020. 8. 22. [데브옵스를 위한 쿠버네티스 마스터] 3. 쿠버네티스 들어가기 0 VirtualBox 및 가상 이미지 셋팅 1. 이미지 파일 다운로드 실습 Ubuntu-20.04 이미지: ubuntu-20.04.1-desktop-amd64-dockerzshsudo-20201227.ova 다운로드 https://drive.google.com/file/d/1MPL1VUEUkEil6_4X4s-Ed-ubca0W08Jq/view?usp=sharing ID/PW: sever1/1111 관리자 전환: sudo -i 2. 환경에 맞게 VirtualBox 다운로드 https://www.virtualbox.org/wiki/Downloads 3. 가상 시스템 가져오기 VirtualBox를 실행하고 파일 - 가상 시스템 가져오기로 다운받은 ubuntu-20.04.1-desktop-amd64-docker.. 개발강의정리/DevOps 2020. 8. 22. [데브옵스를 위한 쿠버네티스 마스터] 2. 쿠버네티스 소개 쿠버네티스 소개 쿠버네티스 시작 오랜 세월 동안 구글은 보그(Borg)라는 내부 시스템을 개발 애플리케이션 개발자와 시스템 관리자가 수천 개의 애플리케이션과 서비스를 관리하는 데 도움 조직 규모가 클 때 엄청난 가치를 발휘 수십만 대의 시스템을 가동할 때 사용률이 조금만 향상돼도 수백만 달러의 비용 절감 효과 구글은 보그와 오메가를 15년 동안 비밀로 유지 2014년 구글 시스템을 통해 얻은 경험을 바탕으로 한 오픈소스 시스템인 '쿠버네티스'를 출시 인프라의 추상화 컨테이너 시스템에서 컨테이너 애플리케이션을 쉽게 배포, 관리하도록 돕는 소프트웨어 시스템 기본 인프라를 추상화해 개발 및 운영 팀의 개발, 배포, 관리를 단순화 모든 노드가 하나의 거대한 컴퓨터인 것처럼 수천개의 컴퓨터 노드에서.. 개발강의정리/DevOps 2020. 8. 18. 이전 1 2 3 4 5 6 7 8 ··· 19 다음 💲 추천 글 728x90