Getting-Started Kubernetes!
실습 참고사항
이 실습 강의의 목적은 일반 서버와 도커, 그리고 쿠버네티스 환경의 차이점에 대해 대략적인 흐름을 이해하기 위함입니다. 그렇기 때문에 강의를 위한 별도의 사전 구축 내용들은 설명되지 않았고, 이후 쿠버네티스를 설치하고 [기초편]부터 실습을 진행하시면 되세요. 하지만 기존에 도커를 잘 아시는 분께서는 자신의 환경에 마춰 실습해 보셔도 무관합니다.1. Linux
CentOS에 nodejs 설치 :
yum install epel-release
yum -y install nodejs
1-1) 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);
node hello.js
2. Docker
2-1) Dockerfile
FROM node:slim
EXPOSE 8000
COPY hello.js .
CMD node hello.js
2-2) Docker Hub Site
2-3) Docker Container Run
docker build -t kubetm/hello .
-t : 레파지토리/이미지명:버전
docker images
docker run -d -p 8100:8000 kubetm/hello
-d : 백그라운드 모드
-p : 포트변경
docker ps
docker exec -it c403442e8a59 /bin/bash
2-4) Docker Image Push
docker login
docker push kubetm/hello
실습 참고사항
Image Push는 자신의 docker hub 계정이 있어야 실습 가능한 부분입니다. kubetm를 자신의 계정으로 변경해야합니다.3. Kubernetes
3-1) Pod
apiVersion: v1
kind: Pod
metadata:
name: hello-pod
labels:
app: hello
spec:
containers:
- name: hello-container
image: kubetm/hello
ports:
- containerPort: 8000
3-2) Service
apiVersion: v1
kind: Service
metadata:
name: hello-svc
spec:
selector:
app: hello
ports:
- port: 8200
targetPort: 8000
externalIPs:
- 192.168.56.30
apiVersion: v1
kind: Service
metadata:
name: hello-svc
spec:
selector:
app: hello
ports:
- port: 8200
targetPort: 8000
externalIPs:
- 192.168.0.30