Slide 1

Slide 1 text

【前夜祭】CloudNative Days Kansai 2019 Meetup (2019/11/27) Kazuki Suda, @superbrothers クラスタ外から ClusterIP の Service に いい感じにアクセスする

Slide 2

Slide 2 text

Kazuki Suda / @superbrothers ▶ Kubernetes Meetup Tokyo, Prometheus Tokyo Meetup, Cloud Native Deep Dive 共同主催者 ▶ Kubernetes Active Contributor ▶ CNCF Ambassador

Slide 3

Slide 3 text

Kubernetes Service リソース ▶ 仮想 IP とポート ▶ L4 ロードバランサに相当 ▶ いくつかのタイプ + ClusterIP (Internal) + NodePort + LoadBalancer (External) + Service my-svc タイプ: ClusterIP
 セレクタ: app=nginx ポート: 8080/tcp→80/tcp clusterIP: 10.0.171.239 Pod A Pod B ReplicaSet app: nginx app: nginx

Slide 4

Slide 4 text

ClusterIP で作成した Service にクラスタ外からアクセスしたい ▶ がしかし、ClusterIP はクラスタ内からしかアクセスできない

Slide 5

Slide 5 text

アクセスできないならじゃあどうする $ kubectl port-forward svc/nginx $ kubectl run busybox --rm --it --image=busybox --restart=Never \
 --command -- wget -O- nginx

Slide 6

Slide 6 text

でもやっぱりクラスタ外からいい感じにアクセスしたい Service リソースの proxy サブリソース

Slide 7

Slide 7 text

Kubernetes Service proxy サブリソース ▶ /api/v1/namespaces//services/::/proxy

Slide 8

Slide 8 text

$ kubectl proxy & $ curl 127.0.0.1:8001/api/v1/namespaces/default/services/nginx/proxy/

Slide 9

Slide 9 text

Service proxy サブリソースをもっともいい感じに使いたい ▶ kubectl open-svc プラグイン

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

# Open service/nginx in namespace/default $ kubectl open-svc nginx -n default

Slide 12

Slide 12 text

# How to install kubectl open-svc plugin $ kubectl krew install open-svc * https://github.com/kubernetes-sigs/krew