실습
도커 이미지 생성
node:slim 이미지를 베이스 이미지로 설정
hello.js를 추가
8000 포트를 공개
node hello.js 컨테이너가 실행될 때 명령어 실행하는 이미지
hello.js 파일 내용
var http = require('http');
var content = function(req, resp) {
resp.end("Hello Kubernetes!" + "\n");
resp.writeHead(200);
}
var w = http.createServer(content);
w.listen(8000);
docker login
ID
PW
docker push 이미지이름
도커이미지생성
FROM node:slim
ADD ./hello.js /hello.js
EXPOSE 8000
CMD node hello.js
hello.js
var http = require('http');
var content = function(req, resp) {
resp.end("Hello Kubernetes!" + "\n");
resp.writeHead(200);
}
var w = http.createServer(content);
w.listen(8000);
실행
docker build --tag yoskr/test_node:0.1 ./
docker login
토큰으로 접속
docker push yoskr/yos_node:0.1
apiVersion: v1
kind: Pod
metadata:
name: hello-pod
labels:
app: hello
spec:
containers:
- name: hello-container1
image: yoskr/yos_node:0.1
ports:
- containerPort: 8000
도커 이미지를 하나더 만들어 컨테이너를 두개 실행
apiVersion: v1
kind: Pod
metadata:
name: hello-pod
labels:
app: hello
spec:
containers:
- name: hello-container1
image: yoskr/yos_node:0.1
ports:
- containerPort: 8000
- name: hello-container2
image: yoskr/yos_node:0.2
ports:
- containerPort: 9000
pod > serivce(네트워크셋팅?) > 외부
컨테이너간에는 동일 아이피라고 생각하면 좋다
pod 는 설정이변경될때마다 아이피주소가 바뀔수있으므로
파드는 직접 연결보다는
서비스로 연결을 하는데 서비스는 파드의 라벨과 연결함
노드셀렉터> 특정노드로 파드를 연결함
apiVersion: v1
kind: Service
metadata:
name: svc2
spec:
type: NodePort
selector:
app: dev
ports:
- name: nodejs1
protocol: TCP
port: 8000
targetPort: 8000
nodePort: 31111
- name: nodejs2
protocol: TCP
port: 9000
targetPort: 9000
nodePort: 32222
728x90
반응형