728x90 쿠버네티스45 [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심개념-Network Network 쿠버네티스 네트워크 모델 한 포드에 있는 다수의 컨테이너끼리 통신 포드끼리 통신 포드와 서비스 사이의 통신 외부 클라이언트와 서비스 사이의 통신 실습 전 설치: sudo apt install net-tools 한 포드에 있는 다수의 컨테이너끼리 통신 pause 명령을 실행해 아무 동작을 하지 않는 빈 컨테이너를 생성 인터페이스를 공유 포트를 겹치게 구성하지 못하는 것이 특징 Docker의 기능을 사용해 쿠버네티스 컨테이너를 관찰 각 포드마다 하나의 pause 이미지 실행 $ sudo docker ps | grep pause 78c434040e28 k8s.gcr.io/pause:3.2 "/pause" 2 hours ago Up 2 hours k8s_POD_weave-net-qq5bk_kube.. 개발강의정리/DevOps 2021. 1. 3. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-Services Services 포드의 문제점 포드는 일시적으로 생성한 컨테이너의 집합 때문에 포드가 지속적으로 생겨났을 때 서비스를 하기에 적합하지 않음 IP 주소의 지속적인 변동, 로드밸런싱을 관리해줄 또 다른 개체가 필요 이 문제를 해결하기위해 서비스라는 리소스가 존재 서비스의 요구사항 외부 클라이언트가 몇 개이든지 프론트엔드 포드로 연결 프론트엔드는 다시 백엔드 데이터베이스로 연결 포드의 IP가 변경될 때마다 재설정 하지 않도록 해야함 서비스의 생성방법 kubectl의 expose가 가장 쉬운 방법 YAML을 통해 버전 관리 가능 apiVersion: v1 kind: Service metadata: name: http-go-svc spec: ports: - port: 80 targetPort: 8080 selec.. 개발강의정리/DevOps 2020. 12. 27. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-Namespaces Namespaces 네임스페이스란? 리소스를 각각의 분리된 영역으로 나누기 좋은 방법 여러 네임스페이스를 사용하면 복잡한 쿠버네티스 시스템을 더 작은 그룹으로 분할 멀티 테넌트(Multi-tenant) 환경을 분리하여 리소스를 생산, 개발, QA 환경 등으로 사용 리소스 이름은 네임스페이스 내에서만 고유 명칭 사용 현재 클러스터의 기본 네임스페이스 확인하기 $ kubectl get ns NAME STATUS AGE default Active 75m kube-node-lease Active 75m kube-public Active 75m kube-system Active 75m 각 네임스페이스 상세 내용 확인 kubectl get 을 옵션없이 사용하면 default 네임스페이스에 질의\ 다른 사용자와 분리.. 개발강의정리/DevOps 2020. 12. 27. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-애플리케이션 롤링 업데이트와 롤백 애플리케이션 롤링 업데이트와 롤백 기존 모든 포드를 삭제 후 새로운 포드 생성 잠깐의 다운 타임 발생 새로운 포드를 실행시키고 작업이 완료되면 오래된 포드를 삭제 새버전을 실행하는동안구버전포드와연결 서비스의 레이블셀렉터를 수정하여 간단하게 수정가능 레플리케이션컨트롤러가 제공하는 롤링 업데이트 이전에는 kubectl을 사용해 스케일링을 사용하여 수동으로 롤링 업데이트 진행 가능 kubectl 중단되면 업데이트는 어떻게 될까? 레플리케이션컨트롤러 또는 레플리카셋을 통제할 수 있는 시스템이 필요 디플로이먼트 생성 레이블 셀렉터, 원하는 복제본 수, 포드 템플릿 디플로이먼트의 전략을 yaml에 지정하여 사용 가능 먼저 업데이트 시나리오리를 위해 3개의 도커 이미지를 준비 gasbugs/http-go:v1 gas.. 개발강의정리/DevOps 2020. 12. 4. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-디플로이먼트 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. 이전 1 2 3 4 다음 💲 추천 글 728x90