Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

클라우드 엔지니어 꿈나무

Kubernetes(K8S) 따배쿠 Container 정리와 Single / Multi Container Pod 생성 Centos7 본문

kubernetes

Kubernetes(K8S) 따배쿠 Container 정리와 Single / Multi Container Pod 생성 Centos7

새싹싹이 2023. 10. 11. 15:22

Container 와 Pod 차이 비교

Container 정리

app.js 

app.js를 제공하는 app js application

8080 포트 열어 client connection 이 들어오면 200번 상태 코드와 함께 컨테이너 이름을 응답

이거를 기준으로 컨테이너 제공 node 1,2 버전을 넣음

 

# docker build -t smlinux/appjs

# docker push smlinux/appjs => 허브저장

 

Pod란 

컨테이너를 표현하는 K8S API의 최소 단위

Pod는 하나 또는 여러 개의 컨테이너를 포함할 수 있음 (권장은 하지 않음)

1. kubetl run 명령(CLI)으로 생성

# kubectl run webserver --image=nginx:1.14

2. pod yaml을 이용해 생성

apiVersion: v1
kind: Pod
metadata:
  name: webs
  namespace: orange
spec:
  containers:
  - image: nginx:1.14
    imagePullPolicy: Always
    name: webs
    ports:
    - containerPort: 80
      protocol: TCP

 

# kubectl get pods webs -o json | grep -i podip => podip 추출

# curl <pod 's IP address>

# watch kubectl get pods -o wide => watch 뒤의 명령어를 2초마다 한 번씩 실행

# curl 10.32.0.2

 

Multiple container pods

ip 하나, pod 하나에 컨테이너가 여러개 생성 가능

apiVersion: v1
kind: Pod
metadata:
  name: multipod
spec:
  containers:
  - name: nginx-container
    image: nginx
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 80
  - name: centos-container
    image: centos:7
    imagePullPolicy: IfNotPresent
    command:
    - sleep
    - "10000"

# kubectl create -f multi.yaml

web과 web1 pod와는 다르게 multipod 는 2/2 로 컨테이너가 두 개 실행된 것을 확인할 수 있음

# kubectl exec multipod -c nginx-container -it -- /bin/bash => multipod pod 중 nginx 컨테이너에 접속

-c [컨테이너 이름] -it (interactive, sudo 터미널 만들어서) -- /bin/bash -> 쉘 실행

root@multipod:/usr/share/nginx/html# cat index.html 

root@multipod:/usr/share/nginx/html# echo "TEST web" > index.html => nginx 문구 수정

root@multipod:/usr/share/nginx/html# exit

# kubectl exec multipod -c centos-container -it -- /bin/bash => centos 컨테이너 접속

[root@multipod /]# ps -ef

[root@multipod /]# curl localhost(:80)

Pod 이름과 IP는 동일하기 때문에 curl 이 진행되어야 함

[root@multipod /]# cat /etc/hosts

[root@multipod /]# exit

# kubectl logs multipod -c nginx-container => 멀티 컨테이너이기 때문에 컨테이너 이름까지 넣어 로그 보기

200번으로 표시된 것은 성공 표시

# kubectl logs web1 => 단일 컨테이너라 컨테이너명 안 씀

 

<<참고 영상>>

https://youtu.be/QGF7igBYSEI?si=qhXcNxfwg2j1yMiP