쿠버네티스의 역할, 도커와 컨테이너 개념을 익혀보자

참고 유튜브 쿠버네티스 사용하는 방법 설치 없이 WEB UI로 사용하는 방법 가상머신에 쿠버네트스 설치하여 사용하는 방법 이 글에서는 설치 없이 WEB UI로 사용하는 방법에 대해 알아본다. 카타코다 쿠버네티스 플레이그라운드

참고 유튜브 쿠버네티스 설치툴 kubeadm: 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구 kubespray: 쿠벼네티스 클러스터를 배포하는 오픈소스 프로젝트 CNI(Container Network interface) Container 간 통신을 지원하는

https://www.youtube.com/watch?v=3ChtEuiQ2Yg&list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c&index=5 참고 유튜브 kubectl이란? 쿠버네티스에게 요청할 때 쓰는 명령어 kubectl 구조 comm
쿠버네티스 동작 과정 > 컨테이너 빌드 - 컨테이너 저장 - k8s 컨테이너 실행 -> 동작 서비스 제공자(개발자나 운영자 등)가 기능별 컨테이너를 도커에 업로드 업로드된 컨테이너는 사내 허브(보통 프라이빗) 또는 도커 허브(퍼블릭)에 저장 쿠버네티스 명령어로 컨테

rkt는 초기 docker의 보안 취약점을 보완하여 나옴하지만 docker가 더 많이 간편하게 쓰이기 시작만약 rkt가 docker보다 많이 쓰였다면,쿠버네티스(선장)이 아니라 NASA나.. astronaut 같은거로 이름을 짓지 않았을까?A8t 이런 느낌..ㅎ ㅎ쿠

simple, secure, fast한 key-value 저장소SQL, 관계형 DB를 말함새로운 정보 추가 시 테이블 전체가 영향받음세상에 새로운 인간D가 들어오자마자 새로운 데이터를 자기 혼자만 갖고 있다..다른 사람들에게는 없는 데이터인데 저 NULL 값이 굉장히
유틸리티: 관리, 유지 소프트웨어ETCDCTL은 ETCD를 사용하기 위한 CLI toolETCDCTL은 version 2와 version 3가 있음보통은 version 2로 설정되어있음버전을 잘 확인하고 명령어를 작성하자The certificate files are a
kubectl get nodes 과정 user -> kube-apiserver -> etcd cluster 정보 요청 이후 역 방향으로 정보 전달 kubectl pod 생성의 예시 포스트 방법으로 진행 Authentivate User Validate Request
kube-controller-manager 쿠버네티스의 다양한 컨트롤러를 관리함 etcd가 검사를 한다면 controller-manager는 행정 부서 느낌 etcd는 지금 상태 어때? 하고 물어보면 답변을 해줬지만 controller-manager는 상황 주시와 개선
파드가 어디로 가는지 결정 - 파드를 생성하는 kubelet과는 엄연히 다르다선박 목적지, 크기 등 다양한 조건에 따라 컨테이너를 올바른 선박에 배치하는 역할scheduler가 pod를 어느 node에 배치할지 결정 - 특정 기준 및 리소스 요구 사항을 고려함Filte
마스터 선박의 유일한 연락 창구클러스터 일원이 되기 위해서는 kubelet을 거쳐야함스케줄러에 따라 컨테이너 적재, 컨테이너 상태 보고서 전송 등워커 노드의 큐블릿은 노드를 쿠버네티스 클러스터에 등록노드에서 컨테이너 또는 파드를 로드하라는 지시를 받으면 컨테이너 런타임
모든 포드는 다른 모든 포드에 도달 가능클러스터에 포드 네트워킹 솔루션을 배포하여 수행됨pod network는 모든 파드가 연결되는 클러스터의 모든 노드에 걸쳐 있는 내부 가상 네트워크이러한 네트워크 배포하는데에 사용 가능한 많은 솔루션 존재예시: node1는 웹 애플
pod 상황가정(Assumptions) 애플리케이션이 이미 개발되어 도커 이미지에 빌드되어있음 도커 허브와 같은 도커 리포지토리에서 K8s가 docker image 받아올 수 있음 K8s 클러스터가 이미 설정되어 작동 중 - 단일 노드 설정 또는 다중 노드 가정 기반

쿠버네티스는 파드, 레플리카, 배포, 서비스 등과 같은 오브젝트 생성하기 위한 입력으로 YAML 파일 사용쿠버네티스 정의 파일에는 항상 API 버전, 종류, 메타데이터, 사양 이렇게 4가지 최상위 필드가 포함됨최상위 수준 또는 루트 수준 속성, 필수 필드이므로 설정 파

pods with YAML 실습해보기
Kubernetes Practice Tests Demo 모의고사 포털: https://uklabs.kodekloud.com/topic/practice-test-pods-2/ 로그인도 하고 초기 설문조사를 마치고 Lab에 들어간 모습

Replication Controller 컨트롤러는 쿠버네티스의 두뇌 복제 컨트롤러라는 컨트롤러 하나를 설명 High Availability > 애플리케이션을 실행하는 단일 파드가 있는 시나리오 어떤 이유로 애플리케이션이 충돌하고 파드가 실패하여 사용자가 더 이상 애

Deployment 프로덕션 환경에서 애플리케이션을 배포하는 방법을 생각해보자 > 예를 들어 프로덕션 환경에 배포해야하는 웹 서버가 있다고 가정 웹 서버가 실행되는 인스턴스가 한 개가 아니라 여러 개 필요 > Docker 레지스트리에서 최신 버전의 애플리케이션 빌드

쿠버네티스 서비스는 애플리케이션 내외부의 다양한 구성 요소 간 통신 지원포드 그룹 간 연결을 가능하게 하는 서비스이를 통해 최종 사용자가 애플리케이션 사용할 수 있음NodePort: 노드 포트포트를 통해 내부 파드에 액세스할 수 있도록 함ClusterIP클러스터 내부에
front-end, back-end, redis 등 여러 pod들이 연결된 경우에서각 pod는 생성/삭제를 반복하게 됨해당 과정에서 IP는 계속 바뀌게 되므로 IP 연결 시 문제가 될 수 있음각 서비스에는 클러스터 내에서 IP와 이름이 할당됨해당 이름은 다른 경로에서

많은 IP 중 하나에 접속하면 됨사용자는 도메인을 통하여 접속하고 싶음로드 밸런서 용도로 새 가상머신을 생성하고 HAProxy와 같은 적절한 로드 밸런서를 설치 및 구성하면 됨또는 nginx 등 다음 기본 노드로 트래픽을 라우팅하도록 로드밸런서 구성이후 부하 분산 기능
쿠버네티스가 기본으로 생성하는 namespace별도로 namespace를 지정하지 않고 k8s를 다뤘다면 default namespace에서 생성됨소규모에서는 default에서 운영해도 되지만, 엔터프라이즈 또는 프로덕션 목적으로 확장하여 사용할 경우 namespace
Imperative코드 작성하는 것처럼 원하는 결과물을 얻기 위해 하나하나 지정하고 명령내려야함kubectl run --image=nginx nginxcreate, expose, edit, scale, set, replace, delete 등 명령어 입력이 해당됨이러한
모든 리소스 나열, 문서 페이지에서 리소스를 찾을 수 없을 때 특히 유용pods에 대한 설명을 볼 수 있음kubectl explain pods.spec: pod 안 spec 필드 상세 설명kubectl explain pods --recursive: 모든 필드 구조를 최
모든 pod의 yml 파일에는 nodeName 속성이 존재(우리가 따로 지정하지 않음)쿠버네티스의 스케줄러는 모든 파드를 살펴보고 해당 속성이 설정되어있지 않은 파드를 찾음scheduling 후보들을 찾은 다음 알고리즘을 싱행하여 파드에 적합한 노드 식별scheduli

많아지는 오브젝트들을 사용자가 보기 편하게, 사용하기 편하게 분류 가능토록 함쿠버네티스 오브젝트는 내부적으로 레이블과 셀렉터를 사용하여 설로 다른 오브젝트를 서로 연결앱, 기등 등 필요에 따라 라벨 첨부필터링 조건 지정주석으로 해석되긴하지만 코드에서 쓰는 주석과는 느낌
Taint: 배제 조건, Tolerations: 허용 조건node는 Taint 설정 시 비유하자면.. 관리자 외 출입 불가 장소가 됨일반 사람들은 당연히 관리자가 아닌 상태로 건물에 출입함다만 일부 사람들은 사원증 등으로 관리자가 될 수 있음사원증은 Toleration
특정 노드에서 파드가 호스팅되도록 하는 것size Large는 사이즈가 큰 node에 라벨링해둔거위 명령어가 우선되어야 지정된 pod가 Large node를 찾아갈 수 있음노드 선택기를 사용하면 복잡한 요구사항에 대응하기 어려움(작지 않은 모든 node에 대하여 들어가
만약 Large뿐만이 아니라 다른 node에도 넣고 싶다면 values 아래에 라벨을 넣으면 됨제외 시키고 싶은 size가 있다면 위와 같이 변경하면됨크기 비교는 안하고 size라는 key만 존재한다면 toleration 허용
Taint는 노드에 설정되어 특정 파드의 스케줄링 제한Toleration은 파드에 설정되어 해당 Taint를 허용노드에 Taint가 있으면,해당 Taint를 toleration 하지 않은 파드는 스케줄링되지 않음NoExecute 효과가 설정된 경우,이미 실행 중인 파드
Resource Requests 이 부분은 전 강의에서 다뤘던 내용인데 되게 짧게 다뤘던 것으로 기억.. 찾아보려다 작성한 글이 많아서 찾는걸 포기함 CKA 문제보고서 이게 뭐였더라..만 중얼거릴 것 같아서 무섭다 하여튼, Resource Requests는 pod y
DaemonSets ReplicaSet과 유사함 ReplicaSet은 일정 갯수의 파드를 노드에 유지시켜준다면, DaemonSets는 클러스터의 모든 노드에 항상 하나의 파드 사본이 존재하도록 함 쓸만한 곳: 모니터링 에이전트 또는 로그 수집기를 모든 노드에 항시 배
Static Pods Master node: etcd, kube-apiserver, controller-manager, kube-scheduler Worker node: kubelet, container runtime engine