ft_services (4) error

chanykim·2021년 4월 20일
0

ft_services

목록 보기
4/4

1. dockerfile을 실행할 때 오류

empty continuation line found in ~~~
dockerfile에서 RUN 부분에 빈줄이 있거나 공백을 잘못 쓴 경우에 이러한 오류가 나타났다.

2. the command '/bin/sh returned a non-zero code 2 오류

참고
https://rebeccajo.tistory.com/15

alpine linux 안에 bash가 깔려있지 않아 오류가 났었다.
아래와 같이 바꾸니 오류가 사라졌다.

#!/bin/bash -> #!/bin/sh

#!/bin/bash은 스크립트 파일의 실행을 bash쉘로 한다는 말을 뜻한다.
이 라인을 기재하지 않아도 실행된다면, 리눅스 배포판은 기본적으로 bash쉘로 설정되어 있어서 bash쉘 상에서 무리없이 동작하는 경우이다.
#!/bin/sh을 미리 선언해줘서 bash쉘 파일임을 미리 알려주는 것이
다른 쉘 간에 오류를 피하는 방법이다.

3. profile "minikube" not found. run "minikube profile list" to view all profiles. 👉 to start a cluster, run: "minikube start" 오류

minikube를 실행하고 minikube 명령어를 사용하려고 하는데 이러한 말이 나오면서 명령어가 먹히지 않았다. 왜 그런지 몰랐는데 jolim님이 말하기를 실행할 때 적은 환경변수는 자식 프로세스에서 실행이 되고 꺼지기 때문에 부모 프로세스에서 또 설정을 해줘야 사용할 수 있다고 하여, 설치를 끝내고 부모 프로세스에 환경변수를 아래와 같은 명령어를 이용하여 설정해준다.

export MINIKUBE_HOME=/goinfre/$USER/

4. kubectl get pod 명령어로 pod가 실행이 되는지 확인 했는데 CrashLoopBackOff 상태로 나오는 오류

참고
https://engineering.linecorp.com/ko/blog/prometheus-container-kubernetes-cluster/
https://waspro.tistory.com/564

CrashLoopBackOff 상태란 파드(pod)가 시작과 비정상 종료를 연속해서 반복하는 상태를 말한다.
kubectl get pods 이러한 명령어를 쳤을 때 CrashLoopBackOff라는 오류가 발견된다면 yaml파일을 살펴보고 잘 썼는지 확인해야 한다.
nginx yaml파일에서 잘못적은 부분이 있어서 고쳤더니 running으로 잘 돌아갔다.

이러한 문제 이외에도
1) 가장 일반적 요인으로 CoreDNS의 Query 요청을 127.0.0.1, :: 1 또는 127.0.0.53과 같은 루프백 주소를 통해 자신에게 직접 전달하는 경우

2) 다음으로 CoreDNS의 Query 요청이 업스트림 서버로 전달되고 다시 CoreDNS로 전달되는 경우

반복적으로 요청이 Loop를 발생 시킬 경우 CoreDNS에서 OOM 상태에 빠지게 되고 Restart를 유발하게 되어 CrashLoopBackOff 상태가 될 수 있다.

이럴 때
1) corefile에서 루프가 감지 된 영역으로 전달되는지 확인
2) 로컬 주소나 요청을 다시 CoreDNS로 전달하는 또 다른 DNS 서버가 있는지 확인
3) forward가 파일(예 : /etc/resolv.conf)을 사용하는 경우 파일에 로컬 주소가 포함되어 있지 않은지 확인
이 세 가지를 확인하여 해결할 수 있을 것이다.

추가
ftps를 하는데 yaml파일을 고쳐도 running이 되지 않았다. 왜 안되는 것인지 아직까지 잘 모르겠다.

해결

이유는 vsftpd.conf 파일 이름들 뒤에 공백이 있어서 오류가 나는 것이다.

확인방법은 minikube로 돌리지 않고 기본 환경에서 docker build 실행을 하여
/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
이명령어 치니까 500 OOPS: bad bool value in config file for: require_cert 뜨면서 오류 알려줬는데 그곳에 가보니 글 뒤에 공백이 있었다.
사실 환경변수 뒤에 공백이 있으면 안된다는 사실을 알았다면 쉽게 해결하는 건데 기본조차 몰라서 시간을 너무 많이 쓴 것 같다.
이제 알게 되었으니 다음에도 비슷한 상황이 일어나면 제일먼저 확인해봐야겠다.
같이 고민해주고 알려주신 jolim, jiholee, gypark, junmkang님 감사합니다!!

profile
오늘보다 더 나은 내일

0개의 댓글