いま会社でIstioのEnvoy Filterを使っているのですが、チームメンバーから**「Envoy Filterってkubectl get all
で表示されないんですかね?」**という質問を受けたので、調べてみました。
1. 現状調査
$ kubectl get all
確かにEnvoy Filterは表示されません。
$ kubectl get EnvoyFilters
NAME AGE
envoyfilter.networking.istio.io/xxxxx 3d16h
こちらだと表示されますね。
2. 表示されない原因
https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/#categories
こちらのドキュメントを要約すると、おおよそ以下の通りです。
-
Custom Resource(KubernetesのAPI拡張)に、
categories
という項目がある -
categories
に指定した値は、kubectl get <category-name>
の書式で使用可能 -
all
もcategories
の一つ
3. 裏付け調査
$ kubectl get crd
NAME CREATED AT
--- 中略 ---
envoyfilters.networking.istio.io 2020-04-07T09:02:18Z
念のため確認してみましたが、Envoy FilterはCustom Resourceでした。
$ kubectl describe crd envoyfilters.networking.istio.io
--- 中略 ---
Categories:
istio-io
networking-istio-io
確かにall
がありませんね。
$ kubectl get istio-io
NAME AGE
--- 中略 ---
envoyfilter.networking.istio.io/xxxxx 3d16h
all
はダメでしたが、Categories
にあったistio-io
では表示できました。
結論
kubectl get all
のall
は、全部という意味ではないんですね〜