728x90 분류 전체보기502 [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-애플리케이션 롤링 업데이트와 롤백 애플리케이션 롤링 업데이트와 롤백 기존 모든 포드를 삭제 후 새로운 포드 생성 잠깐의 다운 타임 발생 새로운 포드를 실행시키고 작업이 완료되면 오래된 포드를 삭제 새버전을 실행하는동안구버전포드와연결 서비스의 레이블셀렉터를 수정하여 간단하게 수정가능 레플리케이션컨트롤러가 제공하는 롤링 업데이트 이전에는 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. [파이썬 코딩 도장] 26.9 심사문제: 공약수 구하기 정답 x, y = map(int, input().split()) a = {i for i in range(1, x + 1) if x % i == 0} b = {i for i in range(1, y + 1) if y % i == 0} CodingTest 2020. 11. 30. [파이썬 코딩 도장] 25.8 심사문제: 딕셔너리에서 특정 값 삭제하기 정답 x.pop('delta') x = {key: value for key, value in x.items() if value != 30} CodingTest 2020. 11. 30. [파이썬 코딩 도장] 24.6 심사문제: 높은 가격순으로 출력하기 정답 a=list(map(int, input().split(';'))) a.sort(reverse=True) for price in a: print('{:>9,}'.format(price)) 다른 방식의 코드 a=list(map(int, input().split(';'))) a.sort(reverse=True) for i in a: print('%9s' % format(price,',')) CodingTest 2020. 11. 27. [파이썬 코딩 도장] 24.5 심사문제: 특정 단어 개수 세기 정답 import string x=str(input()) a=[] for i in x: a.append(i.translate(x.maketrans('','',string.punctuation))) x=''.join(a) x = x.split() print(x.count('the')) CodingTest 2020. 11. 27. [데브옵스를 위한 쿠버네티스 마스터] 쿠버네티스 핵심 개념-레이블을 이용한 포드 구성 레이블을 이용한 포드 구성 레이블이란? 모든 리소스를 구성하는 매우 간단하면서도 강력한 쿠버네티스 기능 리소스에 첨부하는 임의의 키/값 쌍(예 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. [파이썬 코딩 도장] 23.7 심사문제: 지뢰찾기 정답 노가다로 풀이한 코드 col, row = map(int, input().split()) matrix = [] for i in range(row): matrix.append(list(input())) output = [] for i in range(len(matrix)): output.append([]) for j in range(len(matrix[i])): this = matrix[i][j] if this == '*': output[i].append(this) continue else: data = 0 if j < len(matrix[i])-1 and matrix[i][j+1] == '*': data += 1 if j != 0 and matrix[i][j-1] == '*': data += 1 if.. CodingTest 2020. 11. 25. [파이썬 코딩 도장] 22.10 심사문제: 2의 거듭제곱 리스트 생성하기 정답 start, stop = map(int, input().split()) a = [2 ** i for i in range(start, stop + 1)] del a[1] del a[-2] print(a) CodingTest 2020. 11. 19. 이전 1 ··· 15 16 17 18 19 20 21 ··· 42 다음 💲 추천 글 728x90