티스토리 뷰
Docker image 생성 및 deployment 생성
아래와 같이 Dockerfile을 생성하고 Build하여 image로 생성한다.
jacob@jacob-laptop:~/workspaces/hellopy$ cat Dockerfile
FROM python:3.7.4
EXPOSE 8000
CMD python -m SimpleHTTPServer
jacob@jacob-laptop:~/workspaces/hellopy$ docker build -t hello-py:v1 .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM python:3.7.4
---> 02d2bb146b3b
Step 2/3 : EXPOSE 8000
---> Using cache
---> b72c3a572cbd
Step 3/3 : CMD python -m SimpleHTTPServer
---> Using cache
---> 8ed128fb4a3e
Successfully built 8ed128fb4a3e
Successfully tagged hello-py:v1
생성된 Docker image를 사용하영 kubectl로 deployment를 생성한다.
jacob@jacob-laptop:~/workspaces/hellopy$ kubectl run hello-py --image=hello-py:v1 --port=8000 --image-pull-policy=Never
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/hello-py created
실제 생성된 pod를 확인한다.
jacob@jacob-laptop:~/workspaces/hellopy$ kubectl get pods --context=minikube
NAME READY STATUS RESTARTS AGE
hello-py-5844b45b8b-thcth 0/1 CrashLoopBackOff 8 18m
nginx-deployment-54f57cf6bf-hhwlv 1/1 Running 0 32m
nginx-deployment-54f57cf6bf-v94k8 1/1 Running 0 32m
CrashLoopBackOff 현상확인
확인시 pod에 CrashLoopBackOff문제가 있음을 확인할 수 있다. 이를 좀더 명확히 확인하고자 log를 확인한다.
jacob@jacob-laptop:~/workspaces/hellopy$ kubectl logs hello-py-5844b45b8b-thcth
/usr/local/bin/python: No module named SimpleHTTPServer
application 문제해결 및 deployment 업데이트
확인된 로그상에서 SimpleHTTPServer Module을 찾을수 없음을 말하고 있다.
python 3.X대 부터는 SimpleHTTPServer module 대신 http.server를 사용할 수 있다.
Dockerfile을 수정하여 다시 deployment를 생성해보자.
jacob@jacob-laptop:~/workspaces/hellopy$ cat Dockerfile
FROM python:3.7.4
EXPOSE 8000
CMD python3 -m http.server
jacob@jacob-laptop:~/workspaces/hellopy$ docker build -t hello-py:v2 .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM python:3.7.4
---> 02d2bb146b3b
Step 2/3 : EXPOSE 8000
---> Using cache
---> b72c3a572cbd
Step 3/3 : CMD python3 -m http.server
---> Running in 4cacb174f630
Removing intermediate container 4cacb174f630
---> 4ac44ef8d878
Successfully built 4ac44ef8d878
Successfully tagged hello-py:v2
다시 build된 이미지를 기존 deployment내 image에 업데이트 한다.
jacob@jacob-laptop:~/workspaces/hellopy$ kubectl set image deployment/hello-py hello-py=hello-py:v2
deployment.apps/hello-py image updated
이후 다시 pod를 확인해보면 다음과 같이 다시 정상 deploy되었음을 확인할 수 있다.
jacob@jacob-laptop:~/workspaces/hellopy$ kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-py-5844b45b8b-thcth 0/1 Terminating 11 32m
hello-py-7bb87fd7bf-4vcck 1/1 Running 0 8s
nginx-deployment-54f57cf6bf-hhwlv 1/1 Running 0 46m
nginx-deployment-54f57cf6bf-v94k8 1/1 Running 0 46m
jacob@jacob-laptop:~/workspaces/hellopy$ kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-py-7bb87fd7bf-4vcck 1/1 Running 0 12s
nginx-deployment-54f57cf6bf-hhwlv 1/1 Running 0 46m
nginx-deployment-54f57cf6bf-v94k8 1/1 Running 0 46m
마지막으로 minikube를 통해 웹접속을 수행해보자.
jacob@jacob-laptop:~/workspaces/hellopy$ minikube service hello-py
|-----------|----------|-------------|-----------------------------|
| NAMESPACE | NAME | TARGET PORT | URL |
|-----------|----------|-------------|-----------------------------|
| default | hello-py | | http://192.168.99.102:30234 |
|-----------|----------|-------------|-----------------------------|
🎉 Opening kubernetes service default/hello-py in default browser...
browser가 출력되고 정상적으로 웹접속이 이루어짐을 확인할 수 있다.
참고사이트
'Cloud > Cloud Native' 카테고리의 다른 글
minikube start in WSL2 (0) | 2019.12.07 |
---|---|
kubernetes troubleshooting (0) | 2019.11.14 |
Multi configured kubectl (0) | 2019.10.28 |
Docker in centos (0) | 2019.06.07 |
application deploy using minikube (0) | 2017.09.04 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- azure policy
- GateKeeper
- openstacksdk
- Jenkinsfile
- kubernetes install
- OpenStack
- vmware openstack
- wsl2
- kata container
- aquasecurity
- jenkins
- ansible
- kubernetes
- DevSecOps
- socket
- mattermost
- K3S
- metallb
- nginx-ingress
- Helm Chart
- open policy agent
- minio
- ceph
- macvlan
- minikube
- Terraform
- crashloopbackoff
- boundary ssh
- hashicorp boundary
- openstack backup
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
글 보관함