회사의 모든 개발자는 맥을 사용한다.

그러나 항상 엑셀과 한글을 써야하고 온갖 대관업무를 해야하는 내가 굳이 익숙하지도 않은 맥북을 사용하고싶지는 않아 끝까지 윈도우를 고수하고 있다. 난 개발자가 아니니까...
(이 블로그의 대부분의 글은 보안 뉴스가 차지하고 있다. 나는 보안담당자이고 업무상 필요한 부분까지만 개발을 하고 있을 뿐이다)

그런데 내부 관리용 툴을 만들어서 서비스를 실행시키려고 했으나 인프라 담당 부서에서 지금 떠있는 쿠버네티스를 이용했으면 한다는 연락을 받았다.

그러나, 문제는 아무도 윈도우에서 쿠버네티스 환경을 구성해서 개발을 해본 사람이 없다는거...

결국 나 혼자 열심히 삽질을 하게 됐다.

어차피 도커라이징이야 지금도 열심히 도커 환경에서 돌고있는 개인 서비스도 있고 하니 별 어려움 없이 넘어갔는데
쿠버네티스를 설치하고 실행시키는것 까지도 전혀 문제가 없었다.

쿠버네티스의 튜토리얼을 열심히 따라했다.
대시보드까지도 잘 띄웠다.
문제는 로컬에 있는 도커 이미지를 쿠버네티스에서 실행시키는거...

오전 내내 kubectl get events 명령을 실행했을때 아래 명령을 보고 있었다

Error response from daemon: pull access denied for testimage, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

인터넷에서 찾아봤을 때 @FOR /f "tokens=*" %i IN ('minikube -p minikube docker-env') DO @%i 구문을 입력하고 동일한 터미널에서 도커 빌드하면 쿠버네티스에서 사용할 수 있는 도커 이미지로 생성된다고 하는데 아무리 해도 여전히 도커 이미지를 웹에서 찾고있다

결국 찾아낸 방법은 쿠버네티스 deploy를 yaml 파일로 하면서 로컬에 있는 도커 이미지를 사용하도록 만드는 것.

그래서 어차피 만들어야 하는거 서비스까지 실행하도록 했다.(예시는 express 프로젝트 이미지라 3000번 포트를 이용했다)

apiVersion: apps/v1
kind: Deployment
metadata:
  name: testdeployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: test
        image: testimage
        imagePullPolicy: Never

위 내용으로 kubernetes.yml 파일을 만들고(파일명은 상관없다)

kubectl create -f kubenetes.yml

명령을 입력하니 정상적으로 디플로이 되었다.

여기에서 나머지 쿠버네티스 튜토리얼에 따라

kubectl expose deployment test --type=LoadBalancer --port=3000

을 실행시키고 

minikube service test

를 실행시키니 서비스가 정상적으로 올라오더라...

블로그 이미지

ligilo

행복한 하루 되세요~

,