나그네소
kubernetes pod container 정리 본문
kubernetes pod에 대하여 정리 하는 시간을 가져 보자.
1. app.js(web servcie progrom)
8080 port로 접속해 오면 200으로 반송해 주는 app.js web service 프로그램
cat > app.js
const http = require('http');
const os = require('os');
console.log("Test server starting...");
var handler = function(req, res)
{
res.writeHead(200);
res.end("Container Hostname: " + os.hostname() + "\n");
};
var www = http.createServer(handler);
www.listen(8080);
1-1) Docker file
cat > Dockerfie
FROM node:12
COPY app.js/app.js
ENTRYPOINT ["node","app.js"]
1-2) execute
$> docker build -t smlinux/appjs .
$> docker push smlinux/appjs
$> docker push smlinux/appjs
: node:12 컨테이너 위에 app.js 올려 놓는다.
2. pod
* 컨테이너를 표현하는 k8s Api 최소 단위
* POD 하나에는 여러개의 컨테이너를 만들 수 있다.
3. pod cli command / yaml 파일 비교
3-1) cli
kubectl run webserver --image=nginx:1.14
3-2) yaml
apkVersion: v1 //apivesrion v1
kind: Pod //종류는 pod 이다.
metadata:
name: webserver // 실행 이름은 webserver로 할꺼야
spec:
containers:
- name: nginx-container // 컨테이너 구분 이름
image: nginx:1.14 //image nginx 1.14
imagePullPolicy: Always // hub downlad 받을 정책
ports:
- containerPort: 80
protocol: TCP
3-3) pod 생성해 보기
- cli
: k run web1 --image=nginx:1.14 --port=80 - pod-nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
protocol: TCP
kuber-master:/home/son_kube/tmp] k apply -f pod-nginx.yaml
pod/nginx-pod created
3-4) pod 하나에 여러개의 container 생성 하기
- pod-multi.yaml
apiVersion: v1
kind: Pod
metadata:
name: multipod
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
- name: centos-container
image: centos:7
command:
- sleep
- "10000"
- 확인
kuber-master:/home/son_kube/tmp] k get pods
NAME READY STATUS RESTARTS AGE
multipod 2/2 Running 0 7m1s
nginx-pod 1/1 Running 0 21m
: multipod pod에 nginx-container, centos-container 2개의 컨테이너가 실행 된다.
: pod가 2개 이지만 IP는 동일하고 hostname도 동일하다.
: pod가 2개 이지만 IP는 동일하고 hostname도 동일하다.
- 하나의 IP로 접속 되어 처리 되고 있는지 테스트 해보자
* nginx-container 접속
kuber-master:/home/son_kube/tmp] k exec -it multipod -c nginx-container bash
root@multipod:/usr/share/nginx/html# cat index.html
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>
<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>
<p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@multipod:/usr/share/nginx/html# echo "TEST web" > index.html
kuber-master:/home/son_kube/tmp] curl 10.244.1.218
TEST web
'Cloud > Kubernetes' 카테고리의 다른 글
kubernetes livenessProbe (0) | 2022.11.09 |
---|---|
kubernetes POD 동작 Flow (0) | 2022.11.09 |
kubernetes yaml 템플릿 과 API (0) | 2022.11.09 |
Kubernetes for Goldilocks DB POD 생성 (0) | 2022.11.08 |
kubernets namespace (0) | 2022.11.02 |