일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클라우드 엔지니어
- 공부 방법
- POD
- 국비지원교육
- 외부 모듈
- karpenter
- aews vault
- Jenkins
- 합격 후기
- aews ci/cd
- k8s
- 도커
- aews
- 단기 합격
- docker
- keda
- 클라우드 국비지원교육 후기
- volume
- HPA
- AWS
- CAS
- 클라우드 국비지원교육
- eks endpoint access
- observability
- VPA
- storageclass
- kubernetes
- Terraform
- EKS
- Python
- Today
- Total
모험가
POD (기초) 본문
이 글은 인프런의 대세는 쿠버네티스 강의를 보며 정리한 글입니다.
컨테이너의 속성
한 파드 안에서 두개의 컨테이너가 같은 포트를 쓸 수는 없음
IP는 자동할당이며 재생성시 변경됨.
ex) container1 port : 8000
container2 port : 8080
Label의 속성
라벨은 파드뿐만 아니라 오브젝트에도 부여할 수 있음.
구별하기 위한 목적도 있음.
Key : Value 로 여러개의 라벨을 달 수 있음.
ex) Pod1 type : web Io : dev
Pod2 type : web Io : production
Node Schedule의 속성
파드는 여러 노드중 한 노드 위에 올라가야함.
직접 선택과 자동 선택이 있음
직접 선택 : 직접 지정하여 선택
-> nodeSelector에 hostname을 직접 지정
자동 선택 : 스케쥴러가 판단하여 선택
-> reource에 requests로 메모리 구간을 지정
Memory 초과시 Pod 종료 시킴
but Cpu 초과시 requests로 낮춤 Over시 종료되지는 않음
실습
대쉬보드에서 생성 이후 코드로 파드 안에 여러 컨테이너를 생성
apiVersion: v1
kind: Pod
metadata:
name: pod-1
spec:
containers:
- name: container1
image: kubetm/p8000
ports:
- containerPort: 8000
- name: container2
image: kubetm/p8080
ports:
- containerPort: 8080
curl로 IP의 포트를 확인 가능하며 exec로 컨테이너에 바로 접속이 가능
포트를 두개 중복 시키면 로그에서 이러한 오류를 확인 가능함
컨트롤러 생성 (파드가 죽었을때 다시 생성해주는 관리자 역할)
생성하면 지우더라도 컨트롤러가 알아서 새로운 파드를 생성 해줌
apiVersion: v1
kind: ReplicationController
metadata:
name: replication-1
spec:
replicas: 1
selector:
app: rc
template:
metadata:
name: pod-1
labels:
app: rc
spec:
containers:
- name: container
image: kubetm/init
라벨을 포함한 파드 생성 (6개)
apiVersion: v1
kind: Pod
metadata:
name: pod-2
labels:
type: web
lo: dev
spec:
containers:
- name: container
image: kubetm/init
pod-1 ~ 6까지
타입 : web,db,server
Io : dev, production 으로 6개 생성
라벨을 찾아 서비스를 추가
apiVersion: v1
kind: Service
metadata:
name: svc-1
spec:
selector:
type: web
ports:
- port: 8080
name: svc-for-web으로 수정함
이런식으로 selecor에 lo : production도 서비스를 연결시킬 수 있음
Node Schedule 생성
apiVersion: v1
kind: Pod
metadata:
name: pod-3
spec:
nodeSelector:
kubernetes.io/hostname: k8s-node1
containers:
- name: container
image: kubetm/init
파드 4 생성 -> node 2에 생성됨
apiVersion: v1
kind: Pod
metadata:
name: pod-4
spec:
containers:
- name: container
image: kubetm/init
resources:
requests:
memory: 2Gi
limits:
memory: 3Gi
생성할때마다 자원이 많이 남은 곳을 스케쥴링을 통해 선택하여 생성 함
'쿠버네티스 > 기초' 카테고리의 다른 글
ConfigMap, Secret (기초) (0) | 2022.08.05 |
---|---|
Volume (기초) (0) | 2022.07.28 |
Service (기초) (0) | 2022.07.28 |
kubernetes 설치 (0) | 2022.07.27 |
쿠버네티스란 (0) | 2022.05.17 |