일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- springMVC
- gradle
- String
- Lombok
- spring
- wappalyzer
- 우분투에war배포
- offset
- windows10
- Java
- intellij
- frontend
- Seek_Keyset
- 이클립스
- CloutNative
- Postman
- 스프링에러
- NullPointerException
- SQL
- DB생성
- appleM1
- minikube
- SpringBoot
- K8S
- pagination
- restful api
- MYSQL에러
- VUE
- MySQL
- MySQL시작하기
- Today
- Total
미운 오리 새끼의 우아한 개발자되기
[k8s] Mac m1 으로 Minikube 에 local docker image 실행하기 (1) 본문
[k8s] Mac m1 으로 Minikube 에 local docker image 실행하기 (1)
Serina_Heo 2022. 9. 22. 11:081. 사전작업
- 만들려는 이미지가 정상 작동 되는 것인지 로컬 도커 데몬에서 확인
2. minikube 설치
macOs m1 환경에서 Kubernetes 시작하기(feat. Docker)
- kubernetes 개발환경과 운영환경의 구축 방식이 다름을 이해할 수 있다. - macOs m1 환경에서 kubernetes 개발환경을 구축할 수 있다. - docker와 kubernetes 각각으로 배포를 실습하고 간단한 차이를 인지해
velog.io
에 의하면 m1 은 brew 가 아닌 binary 로 1.25.1 버전을 받아야한다고 함.
curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.25.1/minikube-darwin-arm64 \
&& chmod +x minikube
sudo install minikube /usr/local/bin/minikube
그리고 brew 로 kubectl 설치
brew install kubectl
3. minikube 시작하기
minikube start --driver=docker
4. minikube 상태(status) 확인
minikube status
5. 내 터미널에서 minikube 내부의 Docker Engine 사용하기
eval $(minikube docker-env)
6. 연결된 도커 엔진의 이미지 목록 확인해보기
docker images
7. 실행할 도커 이미지 생성하기 (반드시 5번의 명령어를 친 이후에 도커 이미지를 생성할 것)
docker build -t [생성할 도커 이미지 태그명] -f [Dockerfile 명] .
ex) docker build -t test -f Dockerfile-local .
8. minikube 내 도커에 local registry 생성
8-10 번을 실행하지 않고 pod 를 생성했더니 생성한 이미지를 가져오지 못하여 imagePullBackOff 에러가 발생하며 pod 생성에 실패했다. 8-10 번을 실행하여 docker image를 로컬 레지스트리에서 가져와 pod 생성을 할 수 있었다.
docker run -d -p 5000:5000 --restart=always --name local-registry registry:2
9. 7번에서 생성한 도커 이미지 tag 달기
docker tag [생성한 도커 이미지명] 127.0.0.1:5000/[도커이미지명(생성한 도커 이미지명과 동일하지않아도 됨)]
ex) docker tag test 127.0.0.1:5000/minikube-test
10. local registry 에 push
docker push [도커 이미지의 새로 만든 태그명]
ex) docker push 127.0.0.1:5000/minikube-test
11. 해당 이미지로 pod 생성하기
kubectl run [생성할 pod명] --image=[도커이미지태그명] --image-pull-policy=Never
ex) kubectl run minikube-test --image=127.0.0.1:5000/minikube-test --image-pull-policy=Never
--image-pull-policy 옵션은 공식문서를 참고할 것 (https://kubernetes.io/docs/concepts/containers/images/)
12. 생성한 pod 확인하기
kubectl get pods [생성한 pod 명]
ex) kubectl get pods minikube-test
pod 가 정상적으로 뜨면 사진과 같이 STATUS 가 Running 으로 뜬다.
여기까지는 pod 만 띄운 상태라 외부에서 해당 어플리케이션(이미지)으로의 접근이 되지 않는다.
13. 실행한 이미지의 로그 확인
kubectl logs [생성한 pod 명]
만약 STATUS 가 비정상이라면 아래 명령어로 해당 이미지의 실행 로그를 확인해봐야한다.
kubectl logs [실행한 pod 명]
ex) kubectl logs minikube-test
14. 생성한 pod 의 description 보기
또는 해당 pod 의 description 을 확인하여 pod 의 상태 및 event를 확인해야한다.
kubectl describe pods [실행한 pod 명]
ex) kubectl describe minikube-test
13. 생성한 pod 삭제하기
kubectl delete pods [생성한 pod 명]
ex) kubectl delete pods minikube-test
추가) 실행하는 어플리케이션에서 터널링을 이용할 경우,
로컬에서는 아래와 같이 localhost 를 써주어 application.yaml 을 작성했다면,
url: jdbc:postgresql://localhost:5432/bcheckDB
도커의 경우에는 아래와 같이 host.docker.internal 로 써주어야
내 로컬 pc 에서 터널링된 연결을 유지하여 사용할 수 있다.
url: jdbc:postgresql://host.docker.internal:5432/bcheckDB
참고
https://subicura.com/k8s/prepare/kubernetes-setup.html#minikube
쿠버네티스 설치
쿠버네티스 실습을 위해 클러스터를 설치합니다.
subicura.com
macOs m1 환경에서 Kubernetes 시작하기(feat. Docker)
- kubernetes 개발환경과 운영환경의 구축 방식이 다름을 이해할 수 있다. - macOs m1 환경에서 kubernetes 개발환경을 구축할 수 있다. - docker와 kubernetes 각각으로 배포를 실습하고 간단한 차이를 인지해
velog.io
https://tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=162
컨테이너 오케스트레이션 쿠버네티스 살펴보기 | T아카데미 온라인강의
1. 쿠버네티스(Kubernetes)가 무엇인지 알아보고 기본적인 사용방법에 대해 알아본다 2. 쿠버네티스(Kubernetes)의 구성요소와 웹 애플리케이션 배포 방법에 대해 알..
tacademy.skplanet.com