ホームページ > バックエンド開発 > Golang > Go での Google Kubernetes Engine (GKE) の使用: 完全ガイド

Go での Google Kubernetes Engine (GKE) の使用: 完全ガイド

WBOY
リリース: 2023-06-17 13:25:00
オリジナル
1637 人が閲覧しました

近年、Kubernetes はコンテナ オーケストレーション プラットフォームの事実上の標準となっており、Google Kubernetes Engine (GKE) は Google Cloud Platform 上で提供されるフルマネージド Kubernetes エンジンです。自動化されたコンテナ オーケストレーション、スケーラビリティ、高可用性を提供するだけでなく、迅速な起動と調整が可能になり、コードのデプロイが容易になります。この記事では Go 言語で GKE を使用する方法を紹介します。この記事が GKE の完全な使用ガイドになれば幸いです。

ステップ 1: プロジェクトを作成して GKE API を有効にする

まず、Google Cloud Platform プロジェクトを作成する必要があります。 GKE に入る前に、GKE API を有効にする必要があります。 GKE API を有効にする方法はたくさんありますが、ここでは 2 つを紹介します:

1. Google Cloud Console の [API とサービス] > [API] ページで、[Kubernetes Engine API] をフィルタリングして有効にします。

2. Cloud Shell またはローカル ターミナルで、次のコマンドを入力します:

gcloud services enable container.googleapis.com
ログイン後にコピー

ステップ 2: Kubernetes クラスターを作成する

GKE API を有効にした後、次のことを行う必要があります。 Kubernetes クラスターを作成します。クラスターのサイズと仕様は、特定のニーズに応じて調整できます。以下は、サイズ n1-standard-1 の 3 つのノードを含む例です。

gcloud container clusters create example-cluster --zone=us-central1-a --num-nodes=3 --machine-type=n1-standard-1
ログイン後にコピー

上記のコマンドを実行するときは、「example-cluster」を作成する必要があるクラスターの名前に置き換える必要があります。さらに、クラスターを作成するリージョンを選択する必要もあります。ここでは us-central1-a を選択しました。 Kubernetes クラスタのノード数や仕様も実際の状況に応じて調整する必要があります。

ステップ 3: Kubernetes クライアント ツールをインストールする

Kubernetes クラスターを作成した後、クラスターを管理するために Kubernetes クライアント ツールをインストールして構成する必要があります。 Kubernetes クライアント ツールには通常、kubectl と Helm が含まれます。 kubectl は、Kubernetes クラスター、ポッド、コンテナーを管理し、作成、更新、削除、拡張などの操作を実行するために使用できる Kubernetes 用のコマンドライン ツールです。 Helm は、サードパーティ ライブラリのインストールと管理に使用できるパッケージ マネージャーです。

kubectl をインストールして構成する方法は次のとおりです:

1. ローカル ターミナルに kubectl をインストールします:

gcloud components install kubectl
ログイン後にコピー

2. 現在のクラスターで kubectl を構成します:

gcloud container clusters get-credentials example-cluster --zone=us-central1-a
ログイン後にコピー

3. 次に、kubectl コマンド ライン ツールを使用してクラスターを管理できます。たとえば、次のコマンドを実行して Kubernetes クラスター内のすべてのノードを取得します:

kubectl get nodes
ログイン後にコピー

インストールおよび構成の方法Helm は次のとおりです:

1 .Helm バイナリ ファイルをローカル ターミナルにダウンロードしてインストールします:

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get-helm-3 | bash
ログイン後にコピー

2. 現在の Kubernetes クラスターで Helm を構成します:

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
helm init --service-account tiller --upgrade
ログイン後にコピー

ステップ 4: Go アプリケーションを GKE にデプロイする

最後に、Go アプリケーションを Kubernetes クラスタにデプロイできます。以下は、デプロイメント リソースとサービス リソースを使用して Go アプリケーションをデプロイする例です:

1. デプロイメント リソースとサービス リソースを含む YAML ファイルを作成します。例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: go-app-deployment
  labels:
    app: go-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: go-app
  template:
    metadata:
      labels:
        app: go-app
    spec:
      containers:
        - name: go-app
          image: gcr.io/example-project/go-app:latest
          ports:
            - containerPort: 8080
              protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: go-app-service
  labels:
    app: go-app
spec:
  selector:
    app: go-app
  ports:
    - port: 80
      targetPort: 8080
      protocol: TCP
  type: LoadBalancer
ログイン後にコピー

Where, "go-app - 「deployment」は作成したデプロイメント リソースの名前、「go-app」は使用する名前空間、「go-app-service」は作成したサービス リソースの名前です。 「gcr.io/example-project/go-app:latest」など、デプロイメント リソースのコンテナ イメージを指定する必要があります。

2. kubectl コマンドを使用して、この YAML ファイルを Kubernetes クラスタに適用します:

kubectl apply -f go-app.yaml
ログイン後にコピー

3. 次のコマンドを実行して、GKE 上に作成された外部 IP アドレスを取得します:

kubectl get service go-app-service
ログイン後にコピー

返された結果の「EXTERNAL-IP」フィールドに IP アドレスが表示されます。これは、デプロイした Go アプリケーションのアドレスです。

概要

この記事では、Go 言語で GKE を使用するための完全なガイドを提供します。 GKE は、データ自動化、高可用性、スケーラビリティ、使いやすいインターフェースのためのコンテナ オーケストレーションを提供するフルマネージド Kubernetes エンジンです。この記事で説明した方法を使用すると、Go アプリケーションを GKE に簡単にデプロイし、自動デプロイ プロセスを追加してアプリケーションのデプロイをより便利にすることができます。

以上がGo での Google Kubernetes Engine (GKE) の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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