728x90
728x90
Controller 워크로드는 쿠버네티스에서 구동되는 애플리케이션이다. 컨트롤러는 하나 이상의 파드의 집합이다. 각 Pod 를 직접 관리할 필요는 없도록 만들었다. 대신, 사용자를 대신하여 파드 집합을 관리하는 워크로드 리소스를 사용할 수 있다. 이러한 리소스는 지정한 상태와 일치하도록 올바른 수의 올바른 파드 유형이 실행되고 있는지 확인하는 컨트롤러를 구성한다. 쿠버네티스는 다음과 같이 여러 가지 빌트인(built-in) 워크로드 리소스를 제공한다. Deployment 및 ReplicaSet (레거시 리소스 레플리케이션 컨트롤러(ReplicationController)를 대체). Deployment 는 Deployment 의 모든 Pod 가 필요 시 교체 또는 상호 교체 가능한 경우, 클러스터의 스테이..
Pod Lifecycle 공식 문서: https://kubernetes.io/ko/docs/concepts/workloads/pods/pod-lifecycle/ 파드의 단계 파드의 status 필드는 phase 필드를 포함하는 PodStatus 오브젝트로 정의된다. 파드의 phase는 파드가 라이프사이클 중 어느 단계에 해당하는지 표현하는 간단한 고수준의 요약이다. Phase는 컨테이너나 파드의 관측 정보에 대한 포괄적인 롤업이나, 포괄적인 상태 머신을 표현하도록 의도되지는 않았다. 파드 phase 값에서 숫자와 의미는 엄격하게 지켜진다. 여기에 문서화된 내용 이외에는, 파드와 파드에 주어진 phase 값에 대해서 어떤 사항도 가정되어서는 안 된다. phase에 가능한 값은 다음과 같다. Pending:..
Namespace 리소스를 분리(격리)한다. 서비스 별 사용자 별 환경: 개발, 스테이징, 프로덕션 서비스: NDS 이름이 분리되는 용도 RBAC: 권한을 NS 에 설정 [~]$ kubectl get namespace NAME STATUS AGE default Active 23h kube-node-lease Active 23h kube-public Active 23h kube-system Active 23h kube-system: Kubernetes 의 핵심 컴포넌트 kube-public: 모든 사용자가 읽기 권한 kube-node-lease: Worker Node 에 장애가 발생했는지 확인 default: 기본 작업 공간 kubectl create ns developments kubectl delete..
Pod 공식 문서: https://kubernetes.io/ko/docs/concepts/workloads/pods/ 파드는 컨테이너의 모음이다. 하나의 파드에 한 개 이상의 컨테이너가 있을 수 있다. 쿠버네티스는 컨테이너를 직접 관리하지 않는다. 쿠버네티스에서 관리하는 가장 작은 워크로드는 파드이다. kubelet 이 서비스인 이유 kubelet 은 api-server, cm, 스케줄러 등 쿠버네티스의 필수 불가결한 리소스들을 실행시켜주는 역할을 하기 때문에 파드가 아닌 서비스로서 동작한다. 만약 kubelet 까지 파드로 구성되어 있다면 kubernetes 를 띄울 녀석이 존재하지가 않기 때문에 서비스로 동작을 한다. 정적 파드 정적 파드 는 API 서버가 관찰하는 대신 특정 노드의 kubelet 데..
Kubernetes Objects kubectl api-resources Label / LabelSelector: 오브젝트와 오브젝트를 연결할 때 사용하는 개념으로 오브젝트와 오브젝트의 관계를 설명할 때 사용한다. AWS 태그같은 개념으로 생각하면 된다. Workload Pod: 제일 핵심, Pod 는 컨테이너라고 볼 수 있다. Controller: 파드를 제어하는 컨트롤러 ReplicationController: ReplicaSets 가 나온 이후로 사용하지 않는다. ReplicaSets DaemonSets Jobs: 배치 작업 CronJobs: 배치 작업 Deployments: 배포, stateless 를 관리, 쿠버네티스의 핵심! StatefulSets: stateless 와 상반 Horizonta..
Docker Compose 공식 문서 : https://docs.docker.com/compose/compose-file/compose-file-v3/ 쿠버네티스를 사용하게 될 경우 도커 컴포즈를 사용할 일은 거의 없다. 도커 컴포즈는 도커 IaC 라고 보면 된다. 도커 컴포즈의 버전은 도커 엔진에 따라 다르므로 공식 문서를 확인하고 필요한 도커 컴포즈 버전을 사용하면 된다. docker compose 로 실행한다. docker-compose.yml 또는 docker-compose.yaml 에 코드를 작성해야 한다. 예제 1 version: '3' services: web: image: httpd version: ‘3’ 은 3의 가장 최신 버전을 사용, service 는 컨테이너이다. docker com..