728x90
반응형
쿠버네티스
- 대부분의 리소스를 "오브젝트"라고 불리는 형태로 관리
- 쿠버네티스에서는 컨테이너의 집합(pods), 컨테이너의 집합을 관리하는 컨트롤러(replica set), 사용자(service account), 노드(node)까지도 하나의 오브젝트로 사용할 수 있음
- kubectl 명령어 또는 YAML 파일을 정의해서 쿠버네티스를 사용
쿠버네티스에서 사용할 수 있는 오브젝트 확인
myanjini@ubuntu:~$ kubectl api-resources
NAME SHORTNAMES APIGROUP NAMESPACED KIND
bindings true Binding
componentstatuses cs false ComponentStatus
configmaps cm true ConfigMap
endpoints ep true Endpoints
events ev true Event
limitranges limits true LimitRange
namespaces ns false Namespace
nodes no false Node
persistentvolumeclaims pvc true PersistentVolumeClaim
persistentvolumes pv false PersistentVolume
pods po true Pod
podtemplates true PodTemplate
replicationcontrollers rc true ReplicationController
resourcequotas quota true ResourceQuota
secrets true Secret
serviceaccounts sa true ServiceAccount
services svc true Service
mutatingwebhookconfigurations admissionregistration.k8s.io false MutatingWebhookConfiguration
validatingwebhookconfigurations admissionregistration.k8s.io false ValidatingWebhookConfiguration
customresourcedefinitions crd,crds apiextensions.k8s.io false CustomResourceDefinition
apiservices apiregistration.k8s.io false APIService
controllerrevisions apps true ControllerRevision
daemonsets ds apps true DaemonSet
deployments deploy apps true Deployment
replicasets rs apps true ReplicaSet
statefulsets sts apps true StatefulSet
tokenreviews authentication.k8s.io false TokenReview
localsubjectaccessreviews authorization.k8s.io true LocalSubjectAccessReview
selfsubjectaccessreviews authorization.k8s.io false SelfSubjectAccessReview
selfsubjectrulesreviews authorization.k8s.io false SelfSubjectRulesReview
subjectaccessreviews authorization.k8s.io false SubjectAccessReview
horizontalpodautoscalers hpa autoscaling true HorizontalPodAutoscaler
cronjobs cj batch true CronJob
jobs batch true Job
certificatesigningrequests csr certificates.k8s.io false CertificateSigningRequest
leases coordination.k8s.io true Lease
events ev events.k8s.io true Event
daemonsets ds extensions true DaemonSet
deployments deploy extensions true Deployment
ingresses ing extensions true Ingress
networkpolicies netpol extensions true NetworkPolicy
podsecuritypolicies psp extensions false PodSecurityPolicy
replicasets rs extensions true ReplicaSet
networkpolicies netpol networking.k8s.io true NetworkPolicy
poddisruptionbudgets pdb policy true PodDisruptionBudget
podsecuritypolicies psp policy false PodSecurityPolicy
clusterrolebindings rbac.authorization.k8s.io false ClusterRoleBinding
clusterroles rbac.authorization.k8s.io false ClusterRole
rolebindings rbac.authorization.k8s.io true RoleBinding
roles rbac.authorization.k8s.io true Role
priorityclasses pc scheduling.k8s.io false PriorityClass
storageclasses sc storage.k8s.io false StorageClass
volumeattachments storage.k8s.io false VolumeAttachment
특정 오브젝트에 대한 상세 설명 확인
myanjini@ubuntu:~$ kubectl explain pod
KIND: Pod
VERSION: v1
DESCRIPTION:
Pod is a collection of containers that can run on a host. This resource is
created by clients and scheduled onto hosts.
FIELDS:
apiVersion <string>
APIVersion defines the versioned schema of this representation of an
object. Servers should convert recognized schemas to the latest internal
value, and may reject unrecognized values. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
kind <string>
Kind is a string value representing the REST resource this object
represents. Servers may infer this from the endpoint the client submits
requests to. Cannot be updated. In CamelCase. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
metadata <Object>
Standard object's metadata. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
spec <Object>
Specification of the desired behavior of the pod. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
status <Object>
Most recently observed status of the pod. This data may not be up to date.
Populated by the system. Read-only. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status
쿠버네티스 구성
마스터 노드
전체 쿠버네티스 시스템을 제어하고 관리하는 쿠버네티스 컨트롤 플레인(control plane)을 실행
워커 노드
실제 배포되는 컨테이너 애플리케이션을 실행
컨트롤 플레인(Control Plane)
클러스터를 제어하고 작동시킴
애플리케이션을 실행하지는 않음 ⇒ 노드에서 처리
- 구성요소
- 쿠버네티스 API 서버 - 사용자 컨트롤 플레인 구성 요소와 통신
- 스케줄러 - 애플리케이션의 배포를 담당 (애플리케이션의 배포 가능한 각 구성 요소를 워크 노드에 할당)
- 컨트롤러 매니저 - 구성 요소 복제본, 워커 노드 추적, 노드 장애 처리 등과 같은 클러스터 단의 기능을 수행
- etcd - 클러스터 구성을 지속적으로 저장하는 신뢰할 수 있는 분산 데이터 저장소
워커 노드(Worker Node)
컨테이너화된 애플리케이션을 실행하는 시스템
애플리케이션을 실행하고 모니터링하며 애플리케이션에 서비스를 제공
- 구성요소
- 컨테이너를 실행하는 도커, rkt 또는 다른 컨테이너 런타임(container runtime)
- API 서버와 통신하고 노드의 컨테이너를 관리하는 Kubelet
- 애플리케이션 구성 요소 간에 네트워크 트래픽을 로드밸런싱하는 쿠버네티스 서비스 프록시
728x90
반응형
'컨테이너 > 쿠버네티스' 카테고리의 다른 글
레플리카셋의 동작 원리 (0) | 2022.01.28 |
---|---|
사이드카 패턴 예 (0) | 2022.01.28 |
Kubespray를 활용한 멀티 노드 쿠버네티스 클러스터 구성 (0) | 2022.01.27 |
04 레플리카셋(Replica Set) (0) | 2020.09.21 |
o3 포드(pod) (0) | 2020.09.18 |
댓글