>백엔드 개발 >Golang >Golang의 웹 프레임워크인 Echo 프레임워크와 Kubernetes를 사용하여 애플리케이션 구축

Golang의 웹 프레임워크인 Echo 프레임워크와 Kubernetes를 사용하여 애플리케이션 구축

WBOY
WBOY원래의
2023-06-24 09:51:59818검색

클라우드 컴퓨팅 및 컨테이너화 기술의 발전으로 점점 더 많은 기업이 Kubernetes를 사용하여 애플리케이션을 관리하고 배포하기 시작했습니다. 고성능 개발 언어로서 Golang은 점점 더 개발자들의 선호를 받고 있습니다. 이 기사에서는 Golang의 웹 프레임워크인 Echo 프레임워크와 Kubernetes를 사용하여 애플리케이션을 구축하는 방법을 소개합니다.

Go 및 Echo 프레임워크 설치

먼저 Golang 개발 환경과 Echo 프레임워크를 로컬에 설치해야 합니다. Golang 및 Echo 프레임워크 설치는 공식 문서에 따라 수행할 수 있으므로 여기서는 자세히 설명하지 않습니다.

애플리케이션 작성

로컬 개발 환경에서 새로운 Golang 프로젝트를 생성하세요. 사용자가 현재 시간을 쿼리할 수 있는 간단한 웹 애플리케이션을 만들어 보겠습니다. 새 폴더를 만들고 main.go라는 파일을 만듭니다. 다음 코드를 파일에 복사합니다.

package main

import (
    "net/http"
    "time"

    "github.com/labstack/echo"
    "github.com/labstack/echo/middleware"
)

func main() {
    e := echo.New()

    // Middleware
    e.Use(middleware.Logger())
    e.Use(middleware.Recover())

    // Routes
    e.GET("/", func(c echo.Context) error {
        return c.String(http.StatusOK, time.Now().String())
    })

    // Start server
    e.Logger.Fatal(e.Start(":8080"))
}

위 코드에서는 Echo 프레임워크를 사용하여 사용자가 루트에 액세스하면 Path가 반환됩니다. 현재 시간.

Dockerized 애플리케이션

배포 프로세스를 단순화하기 위해 애플리케이션을 컨테이너화하고 Docker Hub에 업로드합니다. Dockerfile이라는 파일을 생성하고 다음 코드를 파일에 복사합니다.

FROM golang:1.13-alpine

RUN apk --no-cache add gcc g++ make

WORKDIR /app

COPY . .

RUN go build -o main .

EXPOSE 8080

CMD ["./main"]

위 코드에서는 Golang에서 공식적으로 제공하는 1.13-alpine 이미지를 기본 이미지로 사용하고 컴파일 종속성을 설치한 후 소스 코드를 컨테이너에 복사했습니다. . 그런 다음 go build 명령을 실행하여 실행 파일을 컴파일하고 마지막으로 웹 서버를 시작합니다.

프로젝트 루트 디렉터리에서 다음 명령을 실행하여 Docker 이미지를 빌드합니다.

docker build -t yourdockerhubusername/echo-app .

Deploy to Kubernetes

배포 전에 Kubectl 도구를 로컬에 설치해야 하며 사용 가능한 Kubernetes 클러스터가 있어야 합니다. Kubectl 도구 설치 및 구성에 대한 자세한 단계는 Kubernetes 공식 문서를 참조하세요.

echo-deployment.yaml이라는 파일을 생성하고 다음 코드를 파일에 복사합니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: echo-app
  labels:
    app: echo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: echo
  template:
    metadata:
      labels:
        app: echo
    spec:
      containers:
      - name: echo-app
        image: yourdockerhubusername/echo-app
        ports:
        - containerPort: 8080

위 코드에서는 컨테이너 이미지 yourdockerhubusername /echo-app을 사용하여 애플리케이션을 실행하는 동안 echo-app이라는 배포를 생성합니다. . 이 배포 인스턴스의 복사본 수는 2개이며 각 복사본은 웹 서버를 시작하고 포트 8080을 수신합니다.

다음으로 echo-app 배포 인스턴스를 노출하는 서비스를 생성해야 합니다. echo-service.yaml이라는 파일을 생성하고 다음 코드를 파일에 복사합니다.

apiVersion: v1
kind: Service
metadata:
  name: echo-service
spec:
  ports:
  - name: http
    port: 80
    targetPort: 8080
  selector:
    app: echo

위 코드에서는 포트 80에서 수신 대기하고 요청을 에코의 8080 포트로 전달하는 echo-service라는 서비스를 생성했습니다. -app 배포 인스턴스.

프로젝트 루트 디렉터리에서 다음 명령을 실행하여 애플리케이션을 배포합니다.

kubectl apply -f echo-deployment.yaml
kubectl apply -f echo-service.yaml

위 명령이 완료된 후 다음 명령을 통해 서비스의 IP 주소를 볼 수 있습니다.

kubectl get svc echo-service

다음으로 http://를 방문하세요. < 브라우저;Service_IP>에서 애플리케이션은 정상적으로 실행되고 현재 시간을 반환해야 합니다.

이 시점에서 우리는 Golang의 Echo 프레임워크와 Kubernetes를 사용하여 간단한 웹 애플리케이션을 성공적으로 구축했습니다. 이 방법은 간단하고 효율적이며 개발 및 배포 효율성을 크게 향상시킬 수 있습니다.

위 내용은 Golang의 웹 프레임워크인 Echo 프레임워크와 Kubernetes를 사용하여 애플리케이션 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.