GoLang HTTP 서버를 도커화하고 Kubernetes에 배포

3316 단어 dockerkubernetesgo

소개



이 블로그에서는 Kubernetes에서 GoLang으로 작성된 간단한 HTTP 서버를 호스팅하려고 했습니다.
  • 도커 이미지를 빌드하고 도커 허브에 푸시합니다.
  • Minikube에서 원하는 Pod를 생성하여 이미지를 배포합니다.
  • 웹 브라우저에서 접근할 수 있도록 Pod에 고정 IP를 연결합니다.

    시작하자


    도커 이미지를 빌드하고 도커 허브에 푸시합니다.


    PC에 도커를 설치해야 합니다.
    프로젝트로 이동하여 Dockerfile을 만듭니다.
    이제 이미지가 실행될 때 앱을 시작할 수 있는 명령을 작성해야 합니다.

  • FROM galang:1.16-alpine #this will pull the official base image of golang
    
RUN mkdir /app
    
ADD . /app
    
WORKDIR /app
    
RUN go build project .
    
CMD [“/app/project”]
    


    golang에서 먼저 프로그램을 컴파일하고 실행 파일을 얻은 다음 이 실행 파일을 모든 OS에서 실행할 수 있습니다.
    "docker build -t/이미지 이름/"이미지 빌드( docker build -t aksrao1998/first-go-project .)

    이미지가 생성되었는지 확인하려면 "docker image ls"를 사용하지 마십시오.

    그런 다음 docker run -p 8080:8080 -it/docker image/를 실행합니다.
    도커 허브의 리포지토리에 태그를 지정하여 이미지를 도커 허브로 푸시합니다.


    Minikube에서 원하는 Pod를 생성하여 이미지 배포



    minikube에 배포하기 위해 deployment.yml을 작성합니다.

    "kubectl get pods"로 포드가 실행 중인지 확인합니다.


    웹 브라우저에서 액세스할 수 있도록 Pod에 고정 IP를 연결합니다.



    포드에 고정 IP를 연결하기 위한 service.yml 문서 생성

    서비스를 적용하고 minikube를 통해 터널링합니다.


    결과






    결론



    localhost:8080을 열면 도커 이미지가 실행 중인 것을 볼 수 있습니다.
    이 오류로 막히면.

    명령을 사용하십시오

    go env -w GO111MODULE=off
    service.yml의 targetPort가 서버가 수신 대기 중인 containerPort를 가리키고 있는지 확인하십시오.
    고맙습니다

    좋은 웹페이지 즐겨찾기