클라우드 엔지니어/클라우드 캠프과정

쿠버네티스 파드(pod)실습

해아's 2022. 10. 13. 17:37
실습
	도커 이미지 생성
		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
반응형