티스토리 뷰

카테고리 없음

[K8s] Kubernetes

0hyeon의 2024. 12. 18. 11:19
반응형



1.Kubernetes 계층구조 

 

클러스터(선박) > 네임스페이스(층) > Pods(작업) > 컨테이너들(도구) > 도커이미지(부품)



  1. 클러스터 (Cluster)선박
    • Kubernetes 클러스터 전체를 하나의 선박으로 생각합니다.
    • 이 선박에는 다양한 층(네임스페이스)이 존재하고, 각각 독립적으로 작업합니다.
  2. 네임스페이스 (Namespace)
    • 네임스페이스는 클러스터 내부의 리소스를 논리적으로 분리한 단위입니다.
    • 한 층(네임스페이스)은 특정 역할이나 작업 그룹을 담당합니다.
      • 예: argocd 층은 애플리케이션 배포 관리, kube-system 층은 클러스터 운영.
  3. Pod작업실
    • Pod는 네임스페이스 안에 위치하며, 실제 작업을 수행하는 공간입니다.
    • Pod는 하나 이상의 도구(컨테이너)를 포함하여 작업을 수행합니다.
  4. 컨테이너도구
    • Pod 내부의 도구로, 실제 애플리케이션이 실행되는 환경입니다.
    • 각 컨테이너는 하나의 애플리케이션(예: Kafka, Nginx 등)을 실행합니다.
  5. 도커 이미지 (Docker Image)부품
    • 컨테이너를 만들기 위한 설계도나 청사진입니다.
    • Docker Image에서 컨테이너가 생성되며, 이를 통해 애플리케이션이 실행됩니다.

 



2.비유와 실제 예시

Kubernetes 개념선박 비유예시

클러스터 (Cluster) 선박 전체 선박 "SS Kubernetes 호".
네임스페이스 (Namespace) 선박의 층 argocd(화물 층), kserve(주방 층).
Pod 층 안의 작업실 nginx-pod(웹 서버 작업실).
컨테이너 (Container) 작업실 안의 도구 nginx-container(웹 서버 실행 도구).
도커 이미지 (Image) 도구의 부품 nginx:v1.23 (Nginx 서버를 실행하는 설계도).

 

 

 

3.주요명령어 

#클러스터의 모든 네임스페이스를 보여줍니다.
kubectl get namespace 

#Pod가 존재하는 네임스페이스만 표시합니다.
kubectl get pods --all-namespaces

#로컬내 클러스터리스트
kubectl config get-contexts

#활성화할 클러스터 명령
kubectl config use-context arn:aws:eks:ap-northeast-2:134452728077:cluster/test-kubenetes
kubectl config use-context docker-desktop

# yaml파일 적용
kubectl apply -f serving-crds.yaml
kubectl apply -f serving-core.yaml
kubectl apply -f net-istio.yaml
kubectl apply -f cert-manager.yaml
kubectl apply -f kserve.yaml

#클러스터 내의 네임스페이스 중 Knative 있는지
kubectl get ns | grep knative

#knative-serving내 pods 확인 
kubectl get pods -n knative-serving

모든 네임스페이스 리스트

 

 

 

4.Test pod 생성예제

#경량이미지
kubectl run test-pod --image=python:3.10 --restart=Never -- sleep 3600


```
test-pod: Pod 이름.
--image=busybox: 경량화된 BusyBox 이미지를 사용.
--restart=Never: Pod 하나만 생성.
sleep 3600: 컨테이너가 3600초 동안 실행되도록 설정.
```

#기존 test-pod삭제
kubectl delete pod test-pod

5.생성확인

kubectl get pods


#NAME                                    READY   STATUS    RESTARTS   AGE
#test-pod                                1/1     Running   0          24s

 

6.pod진입

kubectl exec -it pod/test-pod -- bin/bash
apt update && apt install -y vim

 

반응형
댓글
공지사항
반응형