쿠버네티스

Kubernetes란?

황동리 2024. 1. 7. 20:24
반응형

Kubernetes란?

쿠버네티스란?
: Container 오케스트레이션 툴 입니다.

  • 오케스트레이션은 여러 개의 컴퓨터 시스템, 애플리케이션 및 서비스를 조율하고 관리하는 것

이것이 무슨 뜻이냐면,

Docker는 컨테이너화된 애플리케이션을 패키징하고 배포하는 효율적인 방법을 제공하지만, Docker만으로는 대규모로 컨테이너를 실행하고 관리하기는 어렵습니다.

  • ex)여러 서버/클러스터에서 컨테이너를 조정 및 예약하고, 가동 중지 시간 없이 애플리케이션을 업그레이드 또는 배포 등

따라서 이와 같은 여러 문제를 해결하기 위해 컨테이너를 오케스트레이션 하는 솔루션이 바로 Kubernetes 입니다.

  • POD는 컨테이너가 모인 집합체의 단위, 적어도 하나 이상의 컨테이너로 구성
  • 단일 파드에는 단일 컨테이너만을 권장
  • 서비스에 이름을 지정하지 않으면 파드와 동일한 이름으로 생성된다.
  • namespace는 자원을 격리 할 수 있다.

쿠버네티스 명령어

쿠버네티스 명령어

kubectl get pod [pod name]: default 네임스페이스에 있는 pod들을 보여준다.
	* 네임스페이스를 지정해주지 않으면 default 네임스페이스에 있는 것만 보여준다.
	ex) kubectl get pod nginx -n 1team: 1team 네임스페이즈 지정해서 pod를 보여준다.

kubectl get namespaces: 네임스페이스들을 보여준다.

kubectl create namespace [namespace name]: 네임스페이스를 만든다.

kubectl delete namespace [namespace name]: 네임스페이스를 지운다.

kubectl apply -f [yml file name]: yml파일을 실행한다.

kubectl run [pod name] --image [image name]: "[image name]"이미지로 "[pod name]"이라는 pod를 실행한다.

kubectl delete pod [pod name]: pod를 삭제한다.

kubectl expose [pod name] --type=NodePort: NodePort 서비스로 파드를 노출시킨다.
	* yml 파일로 만든 pod는 label이 없어서 expose 명령을 사용 할 수 없다.

kubectl edit pod [pod name]: pod의 설정을 vi로 열어 수정 할 수 있다.

kubectl get service: 서비스 항목을 보여준다.

kubectl delete service [서비스 명]: 서비스를 지워준다.

yml파일 생성

ansible 처럼 yaml 파일로 만들어서 실행시키면 파드를 만들 수 있다.

apache pod 생성

---
apiVersion: v1
kind: Pod
metadata:
	name: apache
spec:
	containers:
    	- name: httpd
          image: httpd
          ports:
          	- containerPort: 80
반응형