쿠버네티스

    쿠버네티스 apiVersion에 대해서

    ※주의 이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서 글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다. 공식문서가 더욱 더 큰 도움이 될 수 있습니다! 궁금점 apiVersion에 대해서 궁금하다! 행동 API 쿠버네티스 API를 사용하면 쿠버네티스 오브젝트들의 상태를 쿼리하고 조작할 수 있습니다. 쿠버네티스 컨트롤 플레인의 핵심은 API 서버와 그것이 노출하는 HTTP API입니다. 사용자와 클러스터의 다른 부분 및 모든 외부 컴포넌트는 API 서버를 통해 서로 통신합니다. 새로운 유스케이스가 등장하거나 기존 시스템이 변경됨에 따라 성공적인 시스템은 성장하고 변경될 필요가 있습니다. 따라서, 쿠버네티스는 쿠버네티스 API를 지속적으로 변경하고 성장시킬 수 있는 디자인 기능을 가지고..

    쿠버네티스 볼륨(volume)에 대해서

    ※주의 이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서 글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다. 공식문서가 더욱 더 큰 도움이 될 수 있습니다! 궁금점 볼륨의 전체적인 개념과 볼륨을 지정을 안해줬을 때, 해줬을 때의 차이점에 대해서 궁금했습니다. 행동 볼륨 볼륨은 저장소와 관련된 오브젝트로, 컨테이너를 사용하고 있을 때 컨테이너가 갑자기 종료되어서 재시작 되었을 때 컨테이너에서 새로 만들거나 새로 추가한 파일들은 전부 날아갑니다. 그럴 때 필요한 것이 볼륨으로 컨테이너가 없어졌을 때, 파드가 없어졌을 때 유지할 수 있는 볼륨으로 emptyDir 과 hostPath로 나눌 수 있습니다. default volume을 지정해주지 않으면 emptyDir 옵션으로 지정이 됩니다. (그..

    쿠버네티스 minikube status 명령어를 입력하면 나오는 kubelet, apiserver,kubeconfig에 대해서

    ※주의 이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서 글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다. 공식문서가 더욱 더 큰 도움이 될 수 있습니다! 궁금점 minikube status 를 입력했을 때 나오는 type, host, kubelet, apiserver, kubeconfig들은 각각 무엇을 의미할까? 행동 맨 처음 나오는 minikube는 cluster의 이름을 의미한다. kubelet kubelet은 클러스터의 각 노드에서 실행되는 에이전트로 파드에서 컨테이너가 확실하게 동작하도록 관리한다. kubelet이 정상적으로 돌아가고 있다는 뜻이다. apiserver apiserver는 쿠버네티스 API를 노출하는 쿠버네티스 컨트롤 플레인 컴포넌트이다. API 서버는 작업 상..

    쿠버네티스 노드와 마스터 서버에 대해서(kubelet, kubeadm)

    ※주의 이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서 글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다. 공식문서가 더욱 더 큰 도움이 될 수 있습니다! 궁금점 쿠버네티스의 마스터와 노드에 대해서 더 알고싶다. kubelet의 역할과 kubeadm이 무슨 역할을 하는지 알고싶다. 행동 마스터 (컨트롤 플레인) (워커) 노드를 제어하고 전체 클러스터를 관리해주는 (제어/관리) 서버 컨트롤 플레인 컴포넌트는 클러스터에 관한 전반적인 결정(예를 들어, 스케줄링)을 수행하고 클러스터 이벤트(예를 들어, 디플로이먼트의 replicas 필드에 대한 요구 조건이 충족되지 않을 경우 새로운 파드를 구동시키는 것)를 감지하고 반응한다. (워커) 노드 컨테이너가 배포될 물리 서버 또는 가상 머신이며 워..

    쿠버네티스 서비스(service)의 노드포트(NodePort)의 포트가 겹쳤을 때 어떻게 될까?

    ※주의 이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서 글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다. 공식문서가 더욱 더 큰 도움이 될 수 있습니다! 궁금점 NodePort로 연결해줄 때 포트가 곂치게 되면 어떻게 될까? 행동 apiVersion: v1 kind: Service metadata: name: service spec: type: NodePort ports: - name: jenkins protocol: TCP #기본 프로토콜 : TCP port: 8080 #Service 자신의 포트 targetPort: jenkins #Pod 내 컨테이너 포트 (deployment의 port name과 연결) nodePort: 30001 - name: nexus protocol: TC..

    쿠버네티스 YAML파일 Selector는 무엇을 가리킬까?

    ※주의 이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서 글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다. 공식문서가 더욱 더 큰 도움이 될 수 있습니다! 이 글에서 가져온 코드들은 쿠버네티스 공식문서에서 가져왔습니다. https://kubernetes.io/ko/ 운영 수준의 컨테이너 오케스트레이션 운영 수준의 컨테이너 오케스트레이션 kubernetes.io 궁금점 디플로이먼트, 서비스, 파드, 레플리카셋등 오브젝트를 명시할 때 yaml파일에서 spec을 정의해준다. 그 때 selector는 어떤 것을 가리킬까? 다 똑같은 오브젝트를 가리키는 것인지? 예상 pod를 가리킬 것 같다. 행동 파드 - 레플리카셋 - 디플로이먼트 - 스테이트풀셋 - 데몬셋 - 서비스순으로 진행하겠습니다. 파..

    쿠버네티스 Deployment와 ReplicaSet에 대해서

    ※주의 이 글은 제가 혼자 공부하면서 여기저기 찾아보고 정리하는 곳이라서 글의 퀄리티나 내용상 맞지 않는 부분들이 있습니다. 공식문서가 더욱 더 큰 도움이 될 수 있습니다! 궁금점 디플로이먼트는 레플리카셋을 관리한다. 1. 디플로이먼트와 레플리카셋을 동시에 만들면 어떻게 될까? 2. 디플로이먼트도 레플리카셋을 만들어 파드를 관리하고 레플리카셋도 파드를 만들어서 관리를 하는데 그럼 굳이 디플로이먼트를 만들어야 하는 이유가 있을까? 그냥 레플리카셋을 만들어서 파드를 관리하면 되잖아. 예상 디플로이먼트와 레플리카셋은 거의 같은 개념? 이라고 봐도 무방하기 때문에 같이 바라본 pod에 대해 충돌이 일어나거나 오류가 생길 것 같다. 조건 동일한 컨테이너를 포함해야함. Minikube에서 단일노드로 진행을 했다. ..

    쿠버네티스 공식문서 파헤치기 : 레플리카셋(ReplicaSet)

    https://kubernetes.io/ko/docs/concepts/workloads/controllers/ 컨트롤러 운영 수준의 컨테이너 오케스트레이션 kubernetes.io 이 글은 공식문서를 보고 혼자 공부한 것을 정리한 곳입니다. 레플리카셋 레플리카셋의 궁극적인 목표는 파드 집합의 실행을 항상 안정적으로 유지하는 것. 레플리카셋을 정의하는 필드에 포함되어야 하는 것들 1. 파드를 식별하는 셀렉터 2. 파드 개수를 명시하는 레플리카의 개수 3. 레플리카의 개수 만큼 유지하기 위해 신규 생성되는 파드의 파드 템플릿 디플로이먼트는 레플리카셋을 관리하고 다른 유용한 기능과 함께 파드에 대한 선언적 업데이트를 제공하는 상위 개념이다. 그래서 사용자 지정 오케스트레이션이 필요하거나 업데이트가 전혀 필요하..

    쿠버네티스 공식문서 파헤치기 : 파드(Pod)

    https://kubernetes.io/ko/docs/concepts/workloads/pods/pod-overview/ 파드(Pod) 개요 이 페이지는 쿠버네티스 객체 모델 중 가장 작은 배포 가능한 객체인 파드 에 대한 개요를 제공한다. 파드에 대해 이해하기 파드 는 쿠버네티스 애플리케이션의 기본 실행 단위이다. 쿠버네티스 kubernetes.io 이 글은 제가 공식문서를 보고 혼자 정리하는 글입니다. 파드(Pod) 파드는 쿠버네티스의 기본 실행 단위이다. 단일 컨테이너만 동작하는 파드 하나의 파드안에 하나의 컨테이너가 동작하는 것이다. 다중 컨테이너가 동작하는 파드 공유 볼륨을 이용해서 퍼블릭으로 파일들을 옮긴다. 그리고 같은 파드안에 있는 컨테이너들은 네트워킹과 저장소를 공유한다. 파드를 관리하는..

    쿠버네티스 공식문서 파헤치기 : 클러스터 아키텍처

    https://kubernetes.io/ko/ 운영 수준의 컨테이너 오케스트레이션 운영 수준의 컨테이너 오케스트레이션 kubernetes.io 이 문서는 제가 쿠버네티스 공식문서를 혼자 보고 공부하는 곳입니다! 노드 컨테이너를 파드내에 배치를하고 실행을 시키고 싶을 때 실행하는 장소 API 서버에 노드를 추가하는 두 가지 주요 방법 1. 노드의 kubelet으로 컨트롤 플레인에 자체 등록 2. 사용자 또는 다른 사용자가 노드 오브젝트를 수동으로 추가 노드 생성 노드 생성은 kubectl을 사용해서 생성하고 수정할 수 있다. 파드의 노드 셀렉터와 함께 노드의 레이블을 사용해서 스케줄링을 제어할 수 있다. 예를 들어, 사용 가능한 노드의 하위 집합에서만 실행되도록 파드를 제한할 수 있다. 노드 상태 주소 H..

    쿠버네티스 공식문서 파헤치기 : 개요

    https://kubernetes.io/ko/ 운영 수준의 컨테이너 오케스트레이션 운영 수준의 컨테이너 오케스트레이션 kubernetes.io 이 문서는 제가 쿠버네티스 공식문서를 혼자 보고 공부하는 곳입니다! 쿠버네티스가 무엇인가 쿠버네티스에서 컨테이너는 어플리케이션을 포장하고 실행하는 아주 좋은 방법이다. 컨테이너가 다운이 되면 다른 컨테이너를 다시 시작을 해야한다. 이 문제를 시스템에 의해 처리를 한다면 더 쉽지 않을까 하는 생각에서 만들어진 툴 쿠버네티스 컴포넌트 쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다. 노드 컴포넌트 = kubelet, kube-proxy 컨트롤 플레인 컴포넌트 = kube-api-server, kube-scheduler, cloud..