grasys blog

GKEで簡単にnginxを立ち上げてみよう

1.Kubernetesって?

コンテナオーケストレーションツールの標準ツールです。 このブログでは詳細は書きませんので公式サイトのKubernetesとは何か?を参照してください。

2. Google Kubernetes Engine(GKE)って?

Google Cloud (GCP)が提供するKubernetesのマネージドサービスです。こちらも詳細は公式サイトを参照してください。

3.Let’s 構築

3.1 前提条件

今回はGKEクラスタの構築から、nginxの構築まで全てCLIで行います。 それぞれのコマンドのバージョンは次の通りです。

# gcloud version
Google Cloud (GCP) SDK 349.0.0
alpha 2021.07.19
beta 2021.07.19
bq 2.0.70
core 2021.07.19
gsutil 4.65

3.2 GKEクラスタの作成

まずは、GKEクラスタを構築します。 GKEにはクラスタのノードインフラストラクチャを手動でプロビジョニングするStandardモードとそれらをGKEに任せるAutopilotモードがありますが、今回はGKE上で簡単にnginxを起動するのが目的なのでAutopilotモードでクラスタを作成します。

gcloud container clusters create-auto sample-cluster --region asia-northeast1 --project=sample-project
gcloud container clusters list
NAME            LOCATION         MASTER_VERSION  MASTER_IP      MACHINE_TYPE  NODE_VERSION    NUM_NODES  STATUS
sample-cluster  asia-northeast1  1.20.8-gke.900  35.200.108.48  e2-medium     1.20.8-gke.900  2          RUNNING

3.3 kubectlコマンドのセットアップ

GKEクラスタのバージョンに合わせてkubectlコマンドのセットアップを行います。

curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.8/bin/linux/amd64/kubectl
chmod 755 kubectl
mv kubectl /usr/local/bin/

kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.8", GitCommit:"5575935422cc1cf5169dfc8847cb587aa47bac5a", GitTreeState:"clean", BuildDate:"2021-06-16T13:0
0:45Z", GoVersion:"go1.15.13", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20+", GitVersion:"v1.20.8-gke.900", GitCommit:"28ab8501be88ea42e897ca8514d7cd0b436253d9", GitTreeState:"clean", BuildDate:"2021-0
6-30T09:23:36Z", GoVersion:"go1.15.13b5", Compiler:"gc", Platform:"linux/amd64"}

3.4 nginx podのデプロイ

kubernetesはmanifestを作成することが手間で難しいと感じることが多いと思うので、今回はコマンドで全て作成してみます。


kubectl create deployment --image=nginx nginx

kubectl get pod
NAME                     READY   STATUS    RESTARTS   AGE
nginx-6758598c76-trpqt   1/1     Running   0          35m 

3.5 Serviceのデプロイ

Serviceのデプロイもpodと同様にmanifestを使用してデプロイすることが多いですが、今回はこちらもコマンドを使用して作成します。

kubectl expose deployment nginx --type=LoadBalancer --name=nginx-service --port=80 --target-port=80

# kubectl get service
NAME            TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)        AGE
kubernetes      ClusterIP      10.89.0.1     <none>          443/TCP        58m
nginx-service   LoadBalancer   10.89.3.174   34.146.189.76   80:31596/TCP   2m10s

kubectl get service の結果で表示されるEXTERNAL-IPが公開されるIPです。 ブラウザなどでhttp://34.146.189.76へアクセスすることでnginxのwelcomeページへアクセスすることが可能です。

終わり

ここまでGKE上でnginxのpodを作成し、ブラウザからアクセスするまでを行ってみました。 単純に動くまでであれば結構簡単にできたと思いせんか? 今度は自分自身の環境に合わせたmanifestを作成してみてください!!!


株式会社grasys(グラシス)は、技術が好きで一緒に夢中になれる仲間を募集しています。

grasysは、大規模・高負荷・高集積・高密度なシステムを多く扱っているITインフラの会社です。Google Cloud (GCP)、Amazon Web Services (AWS)、Microsoft Azureの最先端技術を活用してクラウドインフラやデータ分析基盤など、ITシステムの重要な基盤を設計・構築し、改善を続けながら運用しています。

お客様の課題解決をしながら技術を広げたい方、攻めのインフラ技術を習得したい方、とことん技術を追求したい方にとって素晴らしい環境が、grasysにはあります。
お気軽にご連絡ください。


採用情報
お問い合わせ