LoginSignup
6
11

More than 5 years have passed since last update.

GKEでnginxコンテナを起動する

Last updated at Posted at 2016-10-04

Google Container Engine(GKE)上でngnixのコンテナを立ち上げるまでの手順です。(2016/10現在)

コンテナ クラスタの起動

GCPにログインして、nginxのコンテナを実行させるコンテナ クラスタを起動します。

  1. 「コンテナ クラスタを作成」を選択
    GKE-Console-Top.png

  2. クラスタの各種パラメータを設定。今回は何も変更せずデフォルト値を利用しています。
    GKE-Make-Cluster-1.png

  3. 起動完了。下の図のようになれば、クラスタが起動は完了です。
    GKE-AfterMakeCluster.png

Google Cloud Shellの起動

Google Cloud ShellにはGoogle Cloud SDK、Docker、kubectl等、コンテナを操作する上で必要なツールがデフォルトでインストールされているので、これを利用します。

  1. コンソールの右上のGoogle Cloud Shellのアイコンを選択 GKE-Start-GoogleCloudShell.png

起動が完了すると画面下部にコンソールが表示されるので、ここで作業を行っていきます。

環境設定

早速作業に入って行きたいところですが、作業に入る前にGoogle Cloud Shellからkubectlのコマンドを操作できるように、下記コマンドを実行して設定を行います。
下記コマンドを実行すると認証情報が取得でき、kubectlを利用してコンテナ クラスタ上にコンテナを用意できるようになります。

gcloud container clusters get-credentials cluster-1 --zone us-central1-b

Replication Controllerの起動

今までの作業で準備が終わったので、まずはnginxのPodを立ち上げます。
Podだけでもいいのですが、今回はReplication Controllerも起動してPodを監視させるようにしています。

・YAMLファイル作成

nginx-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
  name: frontend
spec:
  replicas: 3
  selector:
    app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx-container
        image: nginx
        ports:
        - containerPort: 80

・Replication Controller作成
Google Cloud Shell上で上記YAMLファイルを元に、Replication Controllerを作成します。
Replication Controllerを作成すると、監視対象であるnginxのコンテナを含んだPodが自動で起動されるので、別途Podを起動する必要はありません。

kubectl create -f nginx-rc.yaml

Serviceの作成

Replication Conrollerを起動したことにより、Podおよびnginxのコンテナも起動しましたが、そのままではまだ外部からアクセスすることはできません。
その為、外部からの接続を各Podにルーティングする役割をもったServiceを立ち上げます。

・YAMLファイル作成

nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: frontend
spec:
  ports:
  - port: 80
    targetPort: 80
  selector:
    app: nginx
  type: LoadBalancer

・Service作成
YAMLファイルを元にServiceを作成します。

kubectl create -f nginx-service.yaml

・外部接続用IPの確認
Serviceが起動するとnginxにアクセスできるようになります。
接続する為のIPは、下記コマンドを実行した時に表示される「EXTERNAL-IP」欄に記載されているIPです。

>> kubectl get service

NAME         CLUSTER-IP    EXTERNAL-IP     PORT(S)   AGE
frontend     10.3.244.85   130.211.148.1   80/TCP    2m

試しにブラウザから「130.211.148.1」で接続すると、nginxの画面が表示されるかと思います。

最後に

GKEを利用することによって、比較的簡単にkubernetes上にコンテナを配置することができました。
一番上の画像にある「クイックスタートを使用」を利用すると、チュートリアルに沿って操作するだけでサンプルアプリケーションをGKEに構築することができるので、初めての方はそちらもオススメです。

6
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
11