2020. 2. 13. 19:10ㆍdevops/kubernetes
쿠버네티스를 시작하기 앞서 도커 스웜과 닮은 점도 있지만 다른 점도 있습니다. 이 포스트를 시작하기 앞서 도커 스웜과의 차이점을 설명하고 시작하겠습니다.
쿠버네티스는 모든 리소스를 '오브젝트'라고 불리는 형태로 사용합니다. 이전 도커 스웜에서는 서비스라는 것을 사용했습니다. 서비스도 일종의 컨테이너 리소스들의 집합체로 일종의 오브젝트라고 할 수 있습니다. 그러나 쿠버네티스는 컨테이너의 집합, 관리하는 컨트롤러, 사용자, 노드까지도 하나의 오브젝트로 사용할 수 있습니다. 오브젝트의 종류는 아래 명령어를 통해 확인할 수 있습니다.
kubectl api-resources
~ kubectl api-resources ✔ 11553 18:08:04
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
.....
그리고 특정 오브젝트를 알고 싶으면 kubectl explain object name으로 알 수 있습니다.
kubectl explain bindings ✔ 11554 18:35:58
KIND: Binding
VERSION: v1
DESCRIPTION:
Binding ties one object to another; for example, a pod is bound to a node
by a scheduler. Deprecated in 1.7, please use the bindings subresource of
pods instead.
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
도커와 마찬가지로 쿠버네티스도 docker service create...와 같은 명령어로 쿠버네티스를 사용할 수 있고 대부분의 작업들은 kubectl이라는 명령어로 사용할 수 있습니다. 그리고 yaml 파일로 리소스를 삭제하거나 생성할 수 있습니다. 컨테이너 뿐만 아니라 모든 리소스 오브젝트들에 사용될 수 있습니다. 컨테이너 자체는 물론이고, 컨테이너의 설정 값, 비밀 값 등 모두 YAML 파일로 정의해 사용할 수 있습니다.
그리고 실제로도 여러개의 yaml 파일을 정의해서 쿠버네티스에 적용하는 방식으로 사용할 것입니다.
쿠버네티스는 여러 개의 컴포넌트로 구성돼 있습니다.
쿠버네티스 노드의 역할을 크게 마스터와 워커로 나뉘어 있습니다. 마스터 노드는 쿠버네티스가 제대로 작동할 수 있게 관리하는 역할을 하며, 워크 노드는 애플리케이션 컨테이너가 생성됩니다. 기본적으로 쿠버네티스는 매우 많은 컴포넌트를 실행합니다. 이런 컴포넌트들은 대부분 도커 컨테이너로 만들어집니다.
그리고 쿠버네티스는 클러스터 구성을 위해 kubelet이라는 에이전트가 모든 노드에서 실행됩니다. kubelet은 컨테이너의 생성, 삭제뿐만 아니라 마스터 워커 노드 간의 통신 역할을 함께 담당합니다. kubelet이 정상적이지 않으면 해당 노드는 쿠버네티스와 제대로 연결되지 않습니다.
'devops > kubernetes' 카테고리의 다른 글
kubernetes started(5) 서비스(Service) (0) | 2020.02.15 |
---|---|
kubernetes started(4) 디플로이먼트(Deployment) (0) | 2020.02.15 |
kubernetes started(3) 레플리카 셋(Replica Set) (0) | 2020.02.15 |
kubernetes started(2) pod (0) | 2020.02.13 |
kubernetes 설치 (0) | 2020.02.13 |