--- 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`をたくさん作る余裕がない場合はには便利。