【GCP】Qwiklabs の「Kubernetesソリューション」を勉強しています~Google Kubernetes Engine での NGINX Ingress Controller~

NGINX Ingress Controller GCP
NGINX Ingress Controller

Qwiklabs の「Kubernetesソリューション」を進めていきたいと思います。

Google Kubernetes Engine での NGINX Ingress Controller

概要

Ingress Resource で Kubernetes の Deployment を設定します。
ここでは、外部クライアントから Deployment へのトラフィックのルーティングと負荷分散のために、Ingress Controller として NGINX を使用します。

コマンド

ゾーンを設定する

gcloud compute zones list
gcloud config set compute/zone us-central1-a

Kubernetes クラスタを作成する

gcloud container clusters create nginx-tutorial --num-nodes 2

Helm をインストールする

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get > install-helm.sh
chmod u+x install-helm.sh
./install-helm.sh --version v2.16.3
helm init

Tiller をインストールする

kubectl create serviceaccount --namespace kube-system tiller
kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
helm init --service-account tiller --upgrade
kubectl get deployments -n kube-system

Kubernetes Engine でアプリケーションをデプロイする

kubectl create deployment hello-app --image=gcr.io/google-samples/hello-app:1.0
kubectl expose deployment hello-app --port=8080

Helm 経由で NGINX Ingress Controller をデプロイする

helm install --name nginx-ingress stable/nginx-ingress --set rbac.create=true
kubectl get service nginx-ingress-controller

NGINX Ingress Controller を使用するために Ingress Resource を構成する

vi ingress-resource.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-resource
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - http:
      paths:
      - path: /hello
        backend:
          serviceName: hello-app
          servicePort: 8080
kubectl apply -f ingress-resource.yaml
kubectl get ingress ingress-resource
Ingress とデフォルトのバックエンドをテストする
kubectl get service nginx-ingress-controller

新しいタブを開き、次のURLに移動します。
http://<外部IPアドレス>/hello
http://<外部IPアドレス>/test

まとめ

Ingress Resource で Kubernetes の Deployment を設定しました。
Kubernetes はまだ理解できていないところが多いです。

コメント

タイトルとURLをコピーしました