Istio 检查已安装的内容

Sib*_*ibi 1 kubernetes istio

这里的istio 文档包含以下信息:

istioctl 命令将用于安装 Istio 的 IstioOperator CR 保存在名为安装状态的 CR 副本中。如果您忘记了集群中安装的内容,您可以检查此 CR。

安装状态 CR 还用于在某些 istioctl 命令中执行检查,因此不应删除。

现在,我想知道什么是“CR”以及如何检查这个“CR”?

Abd*_*UMI 6

简短回答

这将为您提供所有命名空间中属于 Istio CR 的所有已部署对象:

kubectl api-resources | grep -i istio | awk '{print $4}' | while read cr; do
    kubectl get $(echo $cr | tr '[:upper:]' '[:lower:]') --all-namespaces
done
Run Code Online (Sandbox Code Playgroud)

细节:

CR 是一个通用的 k8s 术语,它的意​​思是Custom Resource. 它的定义被命名为CRD:自定义资源定义。

所以我们有两类资源:

  • 内置资源:Pod、Service、Deployment、Ingress、ReplicaSet、StatefulSet……

  • 自定义资源(CR):这取决于您对集群的自定义。

    • 例如,如果您安装 Istio,您将获得如下 CR:IstioOperator,...
    • 如果您安装 Prometheus-Operator,您将获得如下 CR:Alertmanager、PrometheusRule,...

现在要获取资源列表(无论是内置资源还是自定义资源(CR)),请运行:

kubectl api-resources | awk '{print $4}'
Run Code Online (Sandbox Code Playgroud)

过滤出属于 Istio 的资源

kubectl api-resources | grep -i istio | awk '{print $4}'
Run Code Online (Sandbox Code Playgroud)

现在,因为IstioOperator(例如) 是一种资源,所以您可以运行以下命令:

kubectl get istiooperator
Run Code Online (Sandbox Code Playgroud)

检查所有命名空间中属于此 CR 的对象

kubectl get istiooperator --all-namespaces
Run Code Online (Sandbox Code Playgroud)

上述所有命令将帮助您基于现有资源构建 YAML 对象。kind: ???事实上,它会在现场帮助你

如果您还想获得合适的apiVersion: ???,请检查kubectl api-versions