---
title: GKEでNodePort TypeのServiceに対してインターネットアクセス許可する
tags: ["Kubernetes", "GKE", "GCP"]
categories: ["Dev", "CaaS", "Kubernetes"]
date: 2017-12-25T13:50:37Z
updated: 2017-12-25T13:50:37Z
---

メモ

GKEの場合`type: NodePort`なServiceに対してはデフォルトではFirewallでアクセス制限されているので、
インターネットアクセスさせたい場合は、Node VMに対してFirewallでポートを開放する必要がある。

```
gcloud compute instances list --format=json
```

でNode VMのNetwork Tagを取得する。

次のようなJSONを見つける。

``` json
    "tags": {
      "fingerprint": "QQ4Xy9d0sJc=",
      "items": [
        "gke-k8s-499a00f1-node"
      ]
    }
```

このNetwork Tagに対して、開放したいNode Portを許可するルールを作成する。NodePort全開放したい場合は次のコマンドで。

```
gcloud compute firewall-rules create k8s-allow-node-port --allow tcp:30000-32767 --target-tags gke-k8s-499a00f1-node
```

全Nodeに影響するので、注意が必要だけど、`type: LoadBalancer`をたくさん作る余裕がない場合はには便利。
