-
쿠버네티스 설치, 배포 - mac 오류 관련 해결데브옵스 2026. 4. 18. 01:37
까먹기 전에 써야지, 써야지.. <- 한 게 『파이썬으로 하는 자동화 업무』와 『파이썬으로 시작하는 금융 데이터 분석』 프로젝트를 서적을 보고 따라한 게 있는데.. 일단 현재 듣고 있는 쿠버네티스 강의에 대해 쓰기로 결정..!
일단 3년 이상 회사에서 서버, 개발, 운영단을 함께 하면서 서버단 이슈가 생길 때 적극적으로 임했지만,
더 전문적인 지식을 가지고 적극적으로 임하고 싶어서
데브옵스에 대해 관심을 갖게 되었고,
이직을 결심하고 난 뒤에는 앞으로의 커리어를 생각했을 때,
복잡한 것을 해결하는 데에 흥미가 있는 나한테 데브옵스가 잘 맞을 것 같아서 해당 강의 (쿠버네티스 어나더 클래스-spring 1,2) 를 선택하게 되었다.

이번 CI/CD 환경 구축 과정에서 가장 먼저 부딪힌 문제는 강의 환경과 나의 개발 환경이 다르다는 점이었다.
강의에서는 VirtualBox 기반의 Linux 환경에서 Kubernetes를 구성했지만, 나는 MacBook(M1/ARM 환경)에서 Docker 기반으로 진행했다.이 차이로 인해 초반부터 예상하지 못한 다양한 문제가 발생했다.
정말 작은 문제들은 docker: command not found, kubectl not found, kubeconfig Permission denied 등이 있었다..
큰 문제나 해결하는데 애먹었던 문제들은 다음과 같다.
1) host.docker.internal 접근 문제
강의에서는 Kubernetes API 서버에 다음과 같이 접근했다.
https://192.168.56.30:6443하지만 Mac + Docker 환경에서는 해당 IP가 존재하지 않는다.
대신 Docker 컨테이너 내부에서는 다음 주소를 사용해야 했다.
https://host.docker.internal:50092문제가 또 있었는데, 바로..
Jenkins 컨테이너에서는 접속이 되지만, Mac에서는 접근이 불가능한 문제가 발생했다.
Mac에서 Kubernetes API 서버에 접근하려면 Docker에서 포트 포워딩된 주소를 사용해야 했다.
docker ps확인 결과: 127.0.0.1:50092 -> 6443
따라서 kubeconfig를 다음과 같이 수정했다.
server: https://127.0.0.1:50092
2) TLS 인증 오류 발생
주소를 수정하자 이번에는 다음과 같은 오류가 발생했다.
x509: certificate is valid for ..., not host.docker.internalKubernetes 인증서는 특정 도메인 기준으로 발급됨
→ 접속 주소가 다르면 인증 실패server 주소를 127.0.0.1로 통일이후 정상적으로 kubectl 명령이 동작했다.
3) 포트포워딩이 안 되는 문제
초기에는 Jenkins 컨테이너 내부에서 다음 명령을 실행했다.
kubectl port-forward svc/api-tester 8080:80
하지만 브라우저에서는 접속이 되지 않았다.
원인은
컨테이너 내부 localhost ≠ Mac localhost
Mac 터미널에서 실행
kubectl port-forward svc/api-tester 8081:80
http://localhost:8081
4) 컨테이너 빌드
강의에서는 하나의 Job 내에서 빌드와 Docker 이미지 생성을 함께 수행했기 때문에 별도의 jar 파일 복사가 필요하지 않았다.
하지만 실제로는 source-build와 container-build를 분리하여 구성했기 때문에,
Docker build context 내에서 jar 파일을 참조할 수 있도록 별도로 복사하는 과정이 필요했다.
간단하게 정리하면,
강사님 = 같은 workspace에서 build + docker 같이 수행
본인 = source-build / container-build 분리
그래서 jar 복사 필요하기 때문에 해당 명령어를 스크립트에 작성해서 배포했어야 했다.# jar 파일 복사cp /var/jenkins_home/workspace/2121-source-build/build/libs/app-0.0.1-SNAPSHOT.jar ./2121/build/docker/app-0.0.1-SNAPSHOT.jar이 명령어를 컨테이너 빌드 프로젝트 스크립트에 넣어 줬어야 하는데 넣지 않아 Jar를 찾지 못해 배포가 안 됐었다.해당 명령어를 스크립트에 작성하니 문제가 해결되었다.단순히 강의를 따라 하는 것이 아니라, 환경 차이로 인해 발생하는 문제를 직접 해결하면서DevOps는 설정이 아니라 문제 해결 능력이라는 것을 체감할 수 있었다.
강의를 듣는 시간보다 문제를 해결하는 데 시간을 많이 썼지만 이해하면서 명령어들을 정리하니 머리 속에도 잘 정리된 것 같다.

현재는 젠킨스 세팅까지 잘 되어 뿌듯하고 행복하다.
'데브옵스' 카테고리의 다른 글
Argo CD는 언제 사용할 수 있을까? (0) 2026.05.12