Istio проверяет, что установлено - PullRequest
0 голосов
/ 10 июля 2020

istio docs здесь содержит следующую информацию:

Команда istioctl сохраняет IstioOperator CR, который использовался для установки Istio, в копии CR с именем installed-state . Вы можете проверить этот CR, если потеряете из виду, что установлено в кластере.

CR установленного состояния также используется для выполнения проверок в некоторых командах istioctl и поэтому не должен удаляться.

Теперь я хотел бы знать, что такое «CR» и как проверить этот «CR»?

1 Ответ

2 голосов
/ 10 июля 2020

Короткий ответ

это даст вам, что все развернутые объекты принадлежат Istio CRs во всех пространствах имен:

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

Подробности:

CR - это общая терминология k8s и это означает Custom Resource. И его определение называется CRD: Custom Resource Definition.

Итак, у нас есть две категории ресурсов:

  • Встроенные ресурсы: Pod, Service, Deployment, Ingress, ReplicaSet, StatefulSet, ...

  • Пользовательские ресурсы (CR): это зависит от вашей настройки вашего кластера.

    • Например, если вы устанавливаете Istio, вы получите CR, например: IstioOperator, ...
    • Если вы установите Prometheus-Operator, вы получите CR, например: Alertmanager, PrometheusRule, ...

Теперь, чтобы получить список ресурсов, встроенных или настраиваемых (CR), запустите:

kubectl api-resources | awk '{print $4}'

Отфильтровать их по ресурсам, принадлежащим Istio

kubectl api-resources | grep -i istio | awk '{print $4}'

Теперь, потому что IstioOperator (например) - это ресурс, вы можете запустить следующее:

kubectl get istiooperator

Проверить, что объекты принадлежат этому CR во всех пространствах имен

kubectl get istiooperator --all-namespaces

Все приведенные выше команды помогут вам построить объект YAML на основе существующих ресурсов. Собственно, это поможет вам в kind: ??? поле

Если вы хотите также получить подходящий apiVersion: ???, отметьте kubectl api-versions

...