21.11.16 TIL39

서태욱·2021년 11월 16일
1

🔎 오늘 배운 것

Docker - Error 01

도커 1 08.다중컨테이너 운영 29)새로운 이미지 업데이트를 시도했다.

docker build -t my-springboot .

를 입력했는데
failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount246591032/Dockerfile: no such file or directory
라는 오류 메시지를 뱉어냈다. 구글링을 해봐도 Dockerfile의 첫 글자를 대문자로 바꾸라는 말밖에 없었는데, 난 이미 그렇게 하고 있었다.
또 다른 해결책으로는

export DOCKER_BUILDKIT=0 
export COMPOSE_DOCKER_CLI_BUILD=0 

이 두 명령어를 쳐보라는 글이 있었다. 그렇게 하고 빌드를 하니까 이번에는
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /Users/twseo/Desktop/sparta/docker/Dockerfile: no such file or directory
라고 에러 메시지가 달라졌다. 이제서야 Dockerfile을 못찾는다는 메시지가 눈에 들어왔다. 경로를 보니까 못찾을만 했다. 해당 파일이 있는 디렉토리로 진입해서 명령어를 입력해주니 Successfully built 되었다.
Q.애초에 export 명령어 두줄 없이 디렉토리 변경 후 명령어를 입력했다면 실행 되었을까?

Kubernetes Error - 02

ssh: connect to host 15.164.201.14 port 22: Operation timed out

이런 메시지가 떠서 구글링하니 여러가지 해결방법들이 나오긴 했다. 대표적으로는 22번 포트를 열어주면 된다고 하는데, 이미 22번 포트는 열려있었다. 다른 방법들도 시도하면서 씨름했지만ㅠ 결국 팀장님의 도움을 받아서 EC2 설정을 다시 잡았다. 라우팅 테이블에 인터넷 게이트웨이가 제대로 물려있지 않아서 연결이 되지 않은 거였다. 지난번에 실습하고 과금때문에 모조리 지워버렸는데, 그러면서 뭔가 하는 방법까지 머리속에서 지워버린거 같다..

Kubernetes Error - 03

[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
	[ERROR DirAvailable--etc-kubernetes-manifests]: /etc/kubernetes/manifests is not empty
	[ERROR FileAvailable--etc-kubernetes-kubelet.conf]: /etc/kubernetes/kubelet.conf already exists
	[ERROR Port-10250]: Port 10250 is in use
	[ERROR FileAvailable--etc-kubernetes-pki-ca.crt]: /etc/kubernetes/pki/ca.crt already exists
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

마스터에 노드를 연결해주려고 명령어를 입력했는데 위와 같은 에러메시지만 잔뜩 뜬다.. 정말 에러 지겨워 ㅠㅠ 검색해보니까 우분투 18.04 버전에서 진행할 경우 같은 에러가 뜬 사람 글이 있었는데, 뾰족한 해결책을 제시해주진 않았다.

그래서 강의자료를 다시 보니까 클러스터 리셋 부분이 있었다!

sudo kubeadm reset
rm -rf $HOME/.kube/config

차례로 입력해주고 다시 클러스터 초기화 - kubectl 사용 설정 순서로 진행 했다. 마스터에서 로그아웃 하고 노드로 진입한 뒤에 노드 조인 명령어를 입력하니 제대로 연결이 된 것을 확인할 수 있었다.

마스터 노드에서도 아래와 같이 Status가 모두 Ready로 되어 있는 것을 확인 할 수 있다.

❗️ 느낀 점

  • 잘 모르지만 일단 따라치면서 작동이 되니까 재미있다. 오늘 수업도 미리 실습을 좀 해본 덕인지 재밌게 반응하면서 따라간 거 같다. 스프링은 왜 그러지 못했을까.. 스프링도 할거 천지인데!
profile
re:START

0개의 댓글