Help us understand the problem. What is going on with this article?

Ingressにstatic-ipを指定してやった on GKE and GCE

GKEとGCEのIngressではGCPで予約したstatic-ipをNameで指定出来ます。
ちなみに何も指定しないでIngressを作ると毎回IPが変わります。

なぜstatic-ipを振るのか

IngressのIPにドメインを振ってる場合に毎回IPが変わるとかなり辛いため。

手順

  • static-ipを予約する
  • 予約したstatic-ipを指定してingressを作る
  • 予約したstatic-ipがingressに振られているか確認

準備

gcloudのコマンドがどのプロジェクトにセットされているかを確認

gcloud config get-value project

以前、Ingressを作りたいプロジェクトとは違うプロジェクトがセットされていて
Ingressを作り直しても予約したはずstatic-ipが使われずに辛い思いをしました・・・

もし違うプロジェクトがsetされていれば

gcloud config set project {project-name}

1. static-ipを予約する

gcloud コマンドでstatic-ipを予約。
予約するのはIPのタイプはグローバルです。
ちなみにGCPのコンソールからも出来ます。

gcloud compute addresses create test-ip --global

ちゃんとcreateできていれば、listに追加されてます。予約しただけなのでSTATUSはRESERVEDのはずです。

gcloud compute addresses list --global
NAME                     REGION  ADDRESS          STATUS
test-ip                          35.186.221.137   RESERVED

2. 予約したstatic-ipを指定してingressを作る

kubernetes.io/ingress.global-static-ip-name: "test-ip"

を追加したingress.yamlを指定してcreateする。

kubectl create -f ingress.yaml

ingress.yaml

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: static-ip
  annotations:
    kubernetes.io/ingress.global-static-ip-name: "test-ip"
spec:
  tls:
  # This assumes tls-secret exists.
  - secretName: tls-secret
  backend:
    # This assumes http-svc exists and routes to healthy endpoints.
    serviceName: http-svc
    servicePort: 80

3. 予約したstatic-ipがingressに振られているか確認

$ kubectl get ing
NAME           HOSTS     ADDRESS         PORTS     AGE
test-ingress   *         35.186.221.137   80, 443   1h

$ gcloud compute addresses list --global
NAME                     REGION  ADDRESS          STATUS
test-ip                          35.186.221.137   IN_USE

参考

ほとんど、このリンクからの引用です!
https://github.com/kubernetes/ingress/tree/master/examples/static-ip/gce

tinjyuu
今では珍しくない珍獣です。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away