いま会社で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は、全部という意味ではないんですね〜