Pod란?
Pod는 컨테이너를 하나 이상 모아 놓은 것이다.
쿠버네티스 애플리케이션의 최소 단위이며, 강하게 결합된 여러 개의 컨테이너로 구성된 Pod도 있고(고급 활용 사례), 단일 컨테이너로만 이루어진 Pod도 있다.
매니페스트
매니페스트란 쿠버네티스의 오브젝트를 생성하기 위한 메타 정보를 YAML이나 JSON으로 기술한 파일
-실습-
도커에 로그인하여 빌드 + 푸쉬하고, 쿠버네티스에서 관리 + 통신확인 해보자!
YAML 파일 생성
리눅스 환경에서
docker login
ID,PW 입력해서 접속
먼저 8000포트!
ADD ./hello.js /hello.js
EXPOSE 8000
CMD node /hello.js
var content = function(req, resp) {
resp.end("Hello Kubernetes!" + "\n8000");
resp.writeHead(200);
}
var w = http.createServer(content);
w.listen(8000);
이번엔 9000 포트!
ADD ./hello.js /hello.js
EXPOSE 9000
CMD node /hello.js
var http = require('http');
var content = function(req, resp) {
resp.end("Hello Kubernetes!" + "\n9000");
resp.writeHead(200);
}
var w = http.createServer(content);
w.listen(9000);
도커에서 확인해보면
apiVersion: v1
kind: Pod
metadata:
name: hello-pod
labels:
app: hello
spec:
containers:
- name: hello-container1
image: cloudcamp2022/hello:0.4
ports:
- containerPort: 9000
- name: hello-container2
image: cloudcamp2022/hello:0.5
ports:
- containerPort: 8000
*행 제대로 맞춰서 입력!*
명령어 입력
apt install curl net-tools
curl 22.22.104.14:8000
curl 22.22.104.14:9000
**컨테이너는 각각 격리 되어 있지만 같은 IP 안에서 다른 포트로 만들어진 컨테이너기 때문에,
한쪽 컨테이너에서 명령어로 프로그램 업데이트, 설치 등을 진행해도 양쪽에 동시 적용 되지 않는다.
하지만 열려있는 포트로 서로 통신은 가능하다!
'IT 매일매일' 카테고리의 다른 글
k8s Servise? (Cluster IP) (0) | 2023.04.24 |
---|---|
k8s ConfigMap? (0) | 2023.04.24 |
k8s? (0) | 2023.04.20 |
Docker? (0) | 2023.04.18 |
AWS OpenSearch Service 도메인 생성 (0) | 2023.03.23 |