
1. Control Plane 1) kube-apiserver - 클러스터로 들어오는 요청을 가장 앞에서 접수한다. - kubectl을 사용하여 명령을 수행할 경우 kube-apiserver로 전송한다. 2) kube-scheduler - 새로 생성된 파드 감지 후, 어떤 노드에 배치할지 판단한다. - 파드 스케쥴링 결정을 위해 요구사항, 정책제어, 어피니티(스케쥴링에 관한 조건), 라벨 등을 요소를 고려한다. 3) kube-controller-manager - 컨트롤러 프로세스를 실행하는 컨트롤 플레인 컴포넌트 - 노드 컨트롤러 : 노드가 다운되었을 때, 통지와 대응에 관한 책임을 가진다. - 잡 컨트롤러 : 일회성 작업인 Job 오브젝트를 감시하여 해당 작업을 완료할 때 까지 동작하는 파드를 생성한다..

[ 쿠버네티스란? ] 컨테이너화된 워크로드와 서비스를 관리하기 위한 오케스트레이션 도구 [ 쿠버네티스를 관리하는 방법 ] 1.관리형 쿠버네티스 - 퍼블릭 클라우드 업체에서 제공하는 관리형 쿠버네티스 (EKS, AKS, GKE) - 구성이 이미 모두 갖춰져있고, 마스터 노드는 클라우드 업체에서 관리한다. - 사용자는 필요한 부분들을 애플리케이션에 올려놓고 애플리케이션을 배포하여 사용한다. 2.설치형 쿠버네티스 - 직접 설치할 수 있도록 패키지화 된 쿠버네티스를 사용한다. (Rancher, Redhat OpenShift) 3.구성형 쿠버네티스 - 사용하는 시스템에 패키지화 된 쿠버네티스를 자동으로 구성해주는 구성형 쿠버네티스 (kubeadm, kops, KRIB, Kuberspray) - 관리형/설치형 쿠버..
1. 리스트 메소드 list.append(x) 리스트 끝에 항목을 더합니다. a[len(a):] = x 와 동등합니다. list.extend(iterable) 리스트 끝에 이터러블의 모든 항목을 덧붙여서 확장합니다. a[len(a):] = iterable 와 동등합니다. list.insert(i,x) list의 i 번째 항목 앞에 x를 삽입합니다. 첫 번째 인자는 삽입되는 요소가 갖게 될 인덱스입니다. 그래서 a.insert(len(a), x) 는 a.append(x) 와 동일합니다. list.remove(x) list에서 x와 값이 같은 첫 번째 항목을 삭제합니다. 만약 그런 항목이 없으면 ValueError를 일으킵니다. list.pop(i) list에서 i에 있는 항목을 삭제하고 반환합니다. 만약 ..
문제 설명 Given an integer columnNumber, return its corresponding column title as it appears in an Excel sheet. For example: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 ... Example 1: Input: columnNumber = 1 Output: "A" Example 2: Input: columnNumber = 28 Output: "AB" Example 3: Input: columnNumber = 701 Output: "ZY" 나는 처음에 주어진 숫자를 나눠서 리스트에 보관하면서 진행할 예정으로 코드를 짰다. class Solution: def convertTo..

- 컨테이너는 OS의 기능을 활용해서 프로세스를 격리하고, 격리된 프로세스가 리소스를 쉽게 공유할 수 있도록 해준다. - 게다가 격리된 프로세스 형태로 실행되므로, 환경에 상관없이 안정적이며 일관된 배포를 제공한다. 1. VM 과 차이점 VM은 하이퍼바이저(가상화 소프트웨어 계층) 을 통해 하드웨어를 가상화한다. 컨테이너는 시스템 커널 OS를 공유하기 때문에 각 애플리케이션마다 OS가 필요하지 않는다. 2. 컨테이너의 이점 시스템 OS 커널을 공유함으로써 애플리케이션마다 OS가 필요하지 않아 크기가 작고 가볍다. 이식성 및 플랫폼 독립성 : 컨테이너가 모든 종속 항목들을 자신과 함께 전달하므로, 호스트 운영체제와 상관없이 동일하게 유지되며 이를 재구성하지 않고 바로 실행할 수 있다. 유지관리 효율 : 컨..
1. 정렬 기초 - 오름차순 정렬은 "sorted()" 함수를 호출하여 사용하면 됩니다. "sorted()" 함수는 정렬된 리스트를 반환합니다. - "list.sort()" 메소드를 사용할 수도 있지만, 해당 함수는 리스트를 제자리에서 수정합니다. - "list.sort()" 메소드와의 차이점은 모든 이러터블의 함수에 적용할 수 있다는 점 입니다. 2. 키 함수 - "list.sort()" 와 "sorted()" 는 각 리스트 요소에 대해 정렬할 기준을 정하는 key 매개 변수를 가지고 있습니다. - 리스트에서 사용 시, 다음과 같이 문자열 비교를 통해 정리할 수 있습니다. 예) sorted("This is a test string from Andrew".split(), key=str.lower) >>>..

오늘은 kubernetes의 오브젝트 종류 중 deployment 파일의 구조에 대해 알아보겠습니다. # Control Plane에서 쿠버네티스 오브젝트를 관리하기 위해 사용하는 api 버전 apiVersion: apps/v1 # 오브젝트의 종류 kind: Deployment # 오브젝트에 대한 기본적인 정보 metadata: # name : 오브젝트 이름 (특정 namespace에서 유일한 값) name: ccn-gateway-eks # namespace : 해당 오브젝트가 사용되는 네임스페이스 namespace: prd-deploy # 오브젝트의 상세 스펙 spec: # 파드의 레플리카 개수 replicas: 1 # 특정 label에 해당하는 객체를 검색할 때 사용 selector: # app 이름이..

이번 글에서는 kubectl을 설치하고 kubeconfig 파일에 설정을 추가하여 kubectl로 해당 환경에 접근하는 것까지 해보겠습니다. kubectl 설치 및 시작하기 sudo yum install kubectl //kubectl 설치 sudo kubectl config ivew //클러스터 접근 정보 확인 kubeconfig 파일을 이용하여 클러스터 접근 kubconfig 파일을 사용하여 클러스터, 사용자, 네임스페이스 및 인증 메커니즘에 대한 정보를 관리할 수 있습니다. kubectl 커멘드라인 툴은 kubeconfig 파일을 사용하여 클러스터의 선택과 클러스터의 API 서버와의 통신에 필요한 정보를 찾습니다. - kubeconfig : 클러스터에 대한 접근을 구성하는데 사용되는 파일을 보통 k..

EKS를 사용하다보면 pod가 생성될 때마다 ip가 변경되어 /etc/hosts에서 바꿔주거나 coredns에서 해당 ip를 변경해줘야한다. 이러한 문제는 AWS NLB를 생성하고 해당 NLB에 elastic ip(고정 ip)를 할당하여 해결할 수 있다. 1. KubeConfig 파일 변경 우선 nlb를 사용하기 때문에 kubeconfig 파일 내용도 바꿔줘야한다. 여기서 "insecure-skip-tls-verify"로 바꿔서 쓰는 이유는 쿠버네티스에서 apiServer와 kubectl 이 서로 통신할 때 인증서가 따로 필요하지 않기 때문에 true로 바꿔서 사용할 수 있다. # As-Is apiVersion: v1 clusters: - cluster: certificate-authority-data:..

ArgoCD 계정 등록하고 새로운 클러스터를 등록하고 신규 프로젝트 생성 후 앱 생성까지 한다. 1. Kube Config 설정 우선 kubectl 을 실행하기 위해서 클러스터에 접근해야 한다. 클러스터에 접근하는 방법은 $HOME/.kube 에서 config 라는 이름의 파일을 kubeconfig 파일로 사용하여 접근할 수 있다. export KUBECONFIG=$HOME/.kube/study.config 2. kubeconfig 설정 확인 kubectl get namespace > 정상 출력 확인 3. 계정 생성 우선 계정을 argocd 라는 이름의 Namespace 에 있는 argocd-cm 라는 이름의 Config Map에 등록한다. 계정에는 login 권한과 argocd 를 cmd에서 실행할 수..
- Total
- Today
- Yesterday