Beego の Docker と Kubernetes を使用した本番環境のデプロイと管理

PHPz
リリース: 2023-06-23 08:58:36
オリジナル
745 人が閲覧しました

インターネットの急速な発展に伴い、ますます多くの企業がアプリケーションをクラウド プラットフォームに移行し始めています。 Docker と Kubernetes は、クラウド プラットフォームでのアプリケーションの展開と管理のための 2 つの非常に人気のある強力なツールになりました。

Beego は Golang で開発された Web フレームワークで、HTTP ルーティング、MVC レイヤ化、ロギング、構成管理、セッション管理などの豊富な機能を提供します。この記事では、Docker と Kubernetes を使用して Beego アプリケーションをデプロイおよび管理し、アプリケーションの迅速なデプロイと管理を容易にする方法を紹介します。

Docker の概要

Docker は、開発者がアプリケーションとすべての依存ライブラリ、構成ファイルなどをコンテナにパッケージ化できるコンテナベースの仮想化テクノロジです。どの環境でも実行でき、依存するライブラリと構成はすべてまったく同じです。

Docker を使用して Beego アプリケーションをデプロイする場合、アプリケーション、すべての依存ライブラリ、構成ファイルをコンテナーにパッケージ化し、そのコンテナーをホスト マシン上の特定のポートにマップできます。このようにして、ホスト マシンの IP アドレスとポートを介して Beego アプリケーションにアクセスできます。

Docker は Beego アプリケーションをデプロイします

Docker を使用して Beego アプリケーションをデプロイする場合は、次の手順を実行する必要があります:

1. Docker をインストールします

次の手順に従ってください。 Docker のインストールに関する公式ドキュメント: https://docs.docker.com/install/

2. Dockerfile の作成

Dockerfile は、Docker イメージを構築するためのすべての手順が含まれるプレーン テキスト ファイルです。 Dockerfile では、使用する Docker イメージを指定し、アプリケーションとすべての依存ライブラリと構成ファイルをコンテナにコピーし、Beego アプリケーションを起動するなどの作業を行う必要があります。

簡単な Dockerfile の例は次のとおりです:

# 使用golang 1.13版本的Docker镜像
FROM golang:1.13

# 将当前目录下的所有文件复制到容器中/app目录下
ADD . /app

# 设置工作目录为/app
WORKDIR /app

# 编译Beego应用程序
RUN go build main.go

# 暴露8080端口
EXPOSE 8080

# 启动Beego应用程序
CMD ["./main"]
ログイン後にコピー

3. Docker イメージをビルドする

Dockerfile があるディレクトリで、次のコマンドを実行して Docker をビルドします。 image:

docker build -t myapp:latest .
ログイン後にコピー

このコマンドは、Dockerfile が配置されているディレクトリ内のすべてのファイルを、myapp:latest というラベルが付いた Docker イメージにパッケージ化します。

4. Docker コンテナを実行する

Docker イメージを構築した後、次のコマンドを使用して Docker コンテナを実行できます:

docker run -p 8080:8080 myapp:latest
ログイン後にコピー

このコマンドはラベル myapp を実行します。 :最新の Docker イメージを作成し、コンテナーの 8080 ポートをホスト マシンの 8080 ポートにマップします。

5. Beego アプリケーションにアクセスします

これで、ブラウザから http://localhost:8080 にアクセスして、Beego アプリケーションにアクセスできるようになります。

Kubernetes の概要

Kubernetes は、コンテナ化されたアプリケーションを自動的にデプロイ、スケーリング、管理できるオープンソースのコンテナ オーケストレーション ツールです。 Kubernetes を使用すると、アプリケーションに高可用性、スケーラビリティ、フォールト トレランスなどの機能を提供できます。

Kubernetes を使用して Beego アプリケーションをデプロイする場合は、まずアプリケーションとすべての依存ライブラリおよび構成ファイルを Docker イメージにパッケージ化し、次にこの Docker イメージを Kubernetes クラスターにデプロイする必要があります。 Kubernetes は、この Docker イメージを Kubernetes クラスター内のノード上で自動的に実行し、サービス ポートを外部に公開します。

Kubernetes による Beego アプリケーションのデプロイ

Kubernetes を使用して Beego アプリケーションをデプロイする場合は、次の手順を実行する必要があります:

1. Kubernetes クラスターのインストールと構成

Kubernetes クラスターのインストールと構成については、公式ドキュメントを参照してください: https://kubernetes.io/docs/setup/

2. デプロイメントの作成

Kubernetes では、デプロイメントを使用します。同じ構成とストレージ ボリュームを共有する、デプロイ可能な複製コンテナのコレクションを定義します。 Kubernetes は、これらのポッド (コンテナー) をクラスター内のノードに自動的に割り当て、そのステータスをチェックして、アプリケーションの高可用性と耐障害性を確保します。

簡単なデプロイメントの例は次のとおりです。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: myapp:latest
        ports:
        - containerPort: 8080
ログイン後にコピー

このデプロイメントは、myapp-deployment という名前の複製可能なコンテナー コレクションを定義します。これには 3 つのポッドが含まれており、ラベル app=myapp ポッドを使用して選択されます。各ポッドで実行されているコンテナは myapp:latest イメージを使用し、コンテナ ポート 8080 を公開します。

3. サービスの作成

Kubernetes では、Service を使用してデプロイメント内のポッドを外部に公開します。サービスは仮想 IP とポートを Pod に割り当て、すべてのリクエストをこれらの Pod に転送します。

簡単なサービスの例は次のとおりです。

apiVersion: v1
kind: Service
metadata:
  name: myapp-service
spec:
  selector:
    app: myapp
  ports:
  - name: http
    port: 8080
    targetPort: 8080
  type: LoadBalancer
ログイン後にコピー

このサービスは、myapp-service という名前の負荷分散サービスを定義します。このサービスは、ラベル app=myapp を持つポッドにリクエストを転送し、コンテナを送信します。ポート 8080 はサービス ポートにマッピングされます。

4. Beego アプリケーションのデプロイ

デプロイメントとサービスを作成した後、次のコマンドを使用して Beego アプリケーションをデプロイできます:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
ログイン後にコピー

このコマンドは、レプリケート可能なコンテナーをデプロイします。コレクションと負荷分散サービスを作成し、それらを Kubernetes クラスターに追加します。

5. Beego アプリケーションへのアクセス

これで、kubectl get svc コマンドを使用してサービスの仮想 IP とポートを取得し、ブラウザーを通じて Beego アプリケーションにアクセスできるようになります。

概要

この記事では、Docker と Kubernetes を使用して Beego アプリケーションをデプロイおよび管理する方法を紹介しました。これら 2 つのツールを使用すると、アプリケーションをクラウド プラットフォームに迅速にデプロイし、アプリケーションの一貫性、高可用性、スケーラビリティ、およびフォールト トレランスを確保できます。これらのテクノロジーは、ますます複雑になるインターネット アプリケーションの展開と管理に役立つと考えられています。

以上がBeego の Docker と Kubernetes を使用した本番環境のデプロイと管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!