https://bo20cy.tistory.com/15
쿠버네티스 실행 환경 vmware + minikube
쿠버네티스란?
쿠버네티스는 레지스트리에서 이미지를 받아 컨테이너를 실행한다.
쿠버네티스 구조
https://kubernetes.io/ko/docs/concepts/overview/components/
쿠버네티스 컴포넌트
쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다.
kubernetes.io
주요 오프젝트: 파드, 서비스. 컨트롤러
k8s 조작:api로 실행
파드
파드는 컨테이너를 실행하는 최소 단위로 한 개 그 이상의 컨테이너를 포함한다.
https://kubernetes.io/ko/docs/concepts/workloads/pods/
서비스
https://kubernetes.io/ko/docs/concepts/services-networking/
컨트롤러
deployment, statefulset, job, cronjob, deamonset, replicaset, replication controller
https://kubernetes.io/ko/docs/concepts/workloads/controllers/
쿠버네티스 시작
minikube start
kubectl get node
노드 오브젝트를 가져온다.
kubectl get po,svc
#명령어에 띄어쓰기가 이상하지만 띄면 안된다.
kubectl get ep,ing,deploy,rs,sts,ds,pv,pvc,no,cm,ns
#종류가 엄청 많다
po=pods
svc=service
ep=endpoint
ing=ingress
deploy=deployment
rs=replicaset
sts=statefulset
ds=deamonset
pv=persistentvoulume
pvc=persistentvoulumeclaim
no=node
cm=configmap
ns=namespace
등등 더 많다.
사진추가
파드 생성
디플로이먼트가 파드를 생성해준다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
kubectl create deploy nginx-deployment --image=nginx:latest --replicas=1 --port=80
이렇게 해도 똑같이 생성된다.
kubectl apply -f nginx.yml
이렇게 쳐서 만들어 주자
실질적으로docker -run -dit nginx
와 유사하다.
- YAML ?
---
YAML: YAML Ain't Markup Language™
What It Is:
YAML is a human-friendly data serialization
language for all programming languages.
보기에 불편하다
YAML은 들여쓰기를 사용, 계층 구조, 키-값 쌍 데이터를 표현, 여러 가지 데이터 유형을 지원하며, 리스트, 문자열, 숫자, 불리언 등을 포함
파드 접근
외부에서 파드에 접근하려면 외부에 노출된 서비스 또는 내부에서 접근 할 수도 있다.
하기전에 ip부터 확인한다.kubectl get po -o wide
내부에 접속하기 위해 작은 컨테이너를 가동시킨다.
kubectl run -it busybox --restart=Never --rm --image=busybox sh
--rm
은 끝나면 지운다는 명령어--restart=Never
재시작은 안한다는 명령어
즉, 컨테이너에서 빠져나오면 이 명령어 컨테이너는 삭제된다.
wget -qO - http://자신ip
들어가면 잘 나온다.
tomcat
거의 동일한 방법으로 톰캣도 만들어 본다.
역시 디플로이먼트다
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat-deployment
labels:
app: tomcat
spec:
replicas: 1
selector:
matchLabels:
app: tomcat
template:
metadata:
labels:
app: tomcat
spec:
containers:
- name: tomcat
image: tomcat:latest
ports:
- containerPort: 8080
kubectl apply -f tomcat.yml
이 파드에 접근하려면 내부에서 접근 전에 ip부터 확인한다.
kubectl get po -o wide
내부에 들어가 본다.
kubectl run -it busybox --restart=Never --rm --image=busybox sh
wget -qO - http://자신ip
docker 때와 유사하다
다음 글에 계속 적겠습니다.
출처:k-paas교육, 15단계로 배우는 도커와 쿠버네티스
'쿠버네티스' 카테고리의 다른 글
쿠버네티스 Tomcat - MySQL 연동 (2) | 2024.04.26 |
---|---|
쿠버네티스 tomcat 작동 (1) | 2024.04.19 |