반응형

클러스터는 네트워크에 연결된 물리적 or 가상 머신의 집합이며, 클러스터는 마스터와 노드로 구성된다.
일반적으로 프로덕션 환경의 경우 하나 이상의 마스터가 존재한다.

 

Master

마스터의 컴포넌트는 api-server, stcd, controller-manager, scheduler로 구성된다.
api-server: 클라이언트가 클러스터와 대화하고 워크로드를 생성할 수 있는 API-서버
etcd (et-c-d): 클러스터 데이터를 저장할 분산 키 값 저장소
controller-manager: 워크로드/노드 등을 지속적으로 모니터링하는 프로세스
scheduler: 워크로드 스케줄러
 

Node

노드의 컴포넌트는 kubelet, container runtime (docker), kube-proxy 로 구성된다.
kubelet: 컨테이너를 만들고 모니터링하는 에이전트
container runtime (docker): 컨테이너를 만들기 위해 컨테이너 런타임이 깔려있어야 한다. (docker)
kube-proxy: 클러스터 내 워크로드 간의 통신을 위해 노드의 네트워크 규칙을 유지

 

kubectl 설치

예시는 linux이다.

link: https://kubernetes.io/ko/docs/tasks/tools/install-kubectl-linux/

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

설치 확인

kubectl version --client --output=yaml

kind 설치

이 글에서는 kind를 사용해서 학습을 진행한다.

link: https://kind.sigs.k8s.io/docs/user/quick-start/

# For AMD64 / x86_64
[ $(uname -m) = x86_64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.25.0/kind-linux-amd64
# For ARM64
[ $(uname -m) = aarch64 ] && curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.25.0/kind-linux-arm64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

설치 확인

kind version

 

클러스터 생성

1. kind cluster 구성 파일 01-cluster.yaml 을 만든다.

# three node (two workers) cluster config
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
name: dev-cluster
nodes:
- role: control-plane
- role: worker
- role: worker


2. 클러스터 생성

kind create cluster --config 01-cluster.yaml

결과


3. 확인

docker ps -a



4. cat ~/.kube/config 를 쳐보면 구성파일을 확인해볼수 있다. server 를 보면 열려있는 포트를 확인할 수 있다.

5. kubectl version --client --output=yaml 명령어를 통해 서버의 version도 확인할 수 있다.

6. 노드 확인

kubectl get nodes

# 결과
NAME                        STATUS   ROLES           AGE    VERSION
dev-cluster-control-plane   Ready    control-plane   118m   v1.31.2
dev-cluster-worker          Ready    <none>          118m   v1.31.2
dev-cluster-worker2         Ready    <none>          118m   v1.31.2

 

클러스터 내부 확인

Master 확인

1. 마스터에 shell로 접속한다

docker exec -it [마스터 컴포넌트ID] /bin/bash


2. 설정 파일들이 저장되어 있는 곳으로 이동한다.

cd /etc/kubernetes/manifests/



3. yaml들이 있는걸 확인 할 수 있다.

ls -al



4. 이 yaml file들은 실제로 실행되고 있는 프로세스이다.

ps -aux

 

Node 확인

1. node에 shell로 접속한다.

docker exec -it [node 컴포넌트ID] /bin/bash



2. 마찬가지로 프로세스를 확인해보면 node에서 사용하는 프로세스들이 돌고 있는것을 확인할수 있다.


학습이 끝나면 자원확보를 위해 클러스터를 삭제해주자

kind delete cluster --name [클러스터 이름]

 

반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes] Deployment  (0) 2024.12.16
[Kubernetes] ReplicaSet  (0) 2024.12.12
[Kubernetes] Pod 기초 - 2  (1) 2024.12.06
[Kubernetes] Pod 기초 - 1  (0) 2024.11.27
[K8S] 쿠버네티스 기본 개념 (1) - 파드(Pod)  (0) 2023.03.18
얼은펭귄