Примеры использования настраиваемого определения ресурса Kubernetes

Я получил неплохое понимание CRD, читая примеры типов hello world. Я не вижу необходимости в CRD для моих сценариев использования. Не могли бы вы перечислить бизнес-варианты использования, решаемые CRD?

Обновление: под бизнес-вариантами использования я имел в виду требования в организации, которые реализуются с использованием CRD.

Пример: каждое приложение, развернутое в пространстве имен «prod», должно иметь минимальное количество реплик модуля, равное 2. Определить CRD для хранения минимального количества реплик и использовать этот CRD (экземпляр) в контроллере допуска для обеспечения выполнения требования? Я не уверен, что такой подход верен. Хотелось бы знать такие требования.


person dsatish    schedule 20.12.2018    source источник


Ответы (1)


Это широкий вопрос. Их можно использовать для самых разных целей. Например, перечисление всех CRD в моем кластере показывает все это:

$ kubectl get crd
NAME                                          CREATED AT
adapters.config.istio.io                      2018-09-21T04:33:18Z
alertmanagers.monitoring.coreos.com           2018-11-10T00:30:22Z
apikeys.config.istio.io                       2018-09-21T04:33:17Z
attributemanifests.config.istio.io            2018-09-21T04:33:17Z
authorizations.config.istio.io                2018-09-21T04:33:17Z
bgpconfigurations.crd.projectcalico.org       2018-07-23T22:22:59Z
bgppeers.crd.projectcalico.org                2018-07-23T22:22:59Z
bypasses.config.istio.io                      2018-09-21T04:33:17Z
certificates.certmanager.k8s.io               2018-09-21T04:33:51Z
checknothings.config.istio.io                 2018-09-21T04:33:17Z
circonuses.config.istio.io                    2018-09-21T04:33:17Z
clusterinformations.crd.projectcalico.org     2018-07-23T22:22:59Z
clusterissuers.certmanager.k8s.io             2018-09-21T04:33:51Z
deniers.config.istio.io                       2018-09-21T04:33:17Z
destinationrules.networking.istio.io          2018-09-21T04:33:17Z
edges.config.istio.io                         2018-09-21T04:33:17Z
envoyfilters.networking.istio.io              2018-09-21T04:33:17Z
etcdbackups.etcd.database.coreos.com          2018-07-31T00:07:01Z
etcdclusters.etcd.database.coreos.com         2018-07-31T00:07:01Z
etcdrestores.etcd.database.coreos.com         2018-07-31T00:07:01Z
felixconfigurations.crd.projectcalico.org     2018-07-23T22:22:59Z
fluentds.config.istio.io                      2018-09-21T04:33:17Z
gateways.networking.istio.io                  2018-09-21T04:33:17Z
globalnetworkpolicies.crd.projectcalico.org   2018-07-23T22:22:59Z
globalnetworksets.crd.projectcalico.org       2018-07-23T22:22:59Z
handlers.config.istio.io                      2018-09-21T04:33:18Z
hostendpoints.crd.projectcalico.org           2018-07-23T22:22:59Z
httpapispecbindings.config.istio.io           2018-09-21T04:33:17Z
httpapispecs.config.istio.io                  2018-09-21T04:33:17Z
instances.config.istio.io                     2018-09-21T04:33:18Z
ippools.crd.projectcalico.org                 2018-07-23T22:22:59Z
issuers.certmanager.k8s.io                    2018-09-21T04:33:51Z
kongconsumers.configuration.konghq.com        2018-09-26T06:06:44Z
kongcredentials.configuration.konghq.com      2018-09-26T06:06:44Z
kongingresses.configuration.konghq.com        2018-09-26T06:06:44Z
kongplugins.configuration.konghq.com          2018-09-26T06:06:44Z
kubernetesenvs.config.istio.io                2018-09-21T04:33:17Z
kuberneteses.config.istio.io                  2018-09-21T04:33:17Z
listcheckers.config.istio.io                  2018-09-21T04:33:17Z
listentries.config.istio.io                   2018-09-21T04:33:17Z
logentries.config.istio.io                    2018-09-21T04:33:17Z
memquotas.config.istio.io                     2018-09-21T04:33:17Z
meshpolicies.authentication.istio.io          2018-09-21T04:33:17Z
metrics.config.istio.io                       2018-09-21T04:33:17Z
networkpolicies.crd.projectcalico.org         2018-07-23T22:22:59Z
noops.config.istio.io                         2018-09-21T04:33:17Z
opas.config.istio.io                          2018-09-21T04:33:17Z
policies.authentication.istio.io              2018-09-21T04:33:17Z
prometheuses.config.istio.io                  2018-09-21T04:33:17Z
prometheuses.monitoring.coreos.com            2018-11-10T00:30:22Z
prometheusrules.monitoring.coreos.com         2018-11-10T00:30:22Z
quotas.config.istio.io                        2018-09-21T04:33:17Z
quotaspecbindings.config.istio.io             2018-09-21T04:33:17Z
quotaspecs.config.istio.io                    2018-09-21T04:33:17Z
rbacconfigs.rbac.istio.io                     2018-09-21T04:33:17Z
rbacs.config.istio.io                         2018-09-21T04:33:17Z
redisquotas.config.istio.io                   2018-09-21T04:33:17Z
reportnothings.config.istio.io                2018-09-21T04:33:17Z
rules.config.istio.io                         2018-09-21T04:33:17Z
servicecontrolreports.config.istio.io         2018-09-21T04:33:17Z
servicecontrols.config.istio.io               2018-09-21T04:33:17Z
serviceentries.networking.istio.io            2018-09-21T04:33:17Z
servicemonitors.monitoring.coreos.com         2018-11-10T00:30:22Z
servicerolebindings.rbac.istio.io             2018-09-21T04:33:18Z
serviceroles.rbac.istio.io                    2018-09-21T04:33:18Z
signalfxs.config.istio.io                     2018-09-21T04:33:17Z
solarwindses.config.istio.io                  2018-09-21T04:33:17Z
stackdrivers.config.istio.io                  2018-09-21T04:33:17Z
statsds.config.istio.io                       2018-09-21T04:33:17Z
stdios.config.istio.io                        2018-09-21T04:33:17Z
templates.config.istio.io                     2018-09-21T04:33:18Z
tracespans.config.istio.io                    2018-09-21T04:33:17Z
vaultservices.vault.security.coreos.com       2018-07-31T00:07:49Z
virtualservices.networking.istio.io           2018-09-21T04:33:17Z

Каждый из них - это ресурс, определение которого можно использовать с типом Kind. Вы видите разные вещи, например:

bgpconfigurations.crd.projectcalico.org => Calico BGP
prometheuses.config.istio.io => Prometheus config
fluentds.config.istio.io => Fluentd config
...
person Rico    schedule 20.12.2018