Thursday, April 2, 2020

We were discussing custom resources for user data.
The size and the separation of concerns between the kubectl resource and its associated data does not stop with the external service and the kube-api server. The binding between the resource and the external service is managed with the help of a service catalog which lets services to be hosted outside the cluster. It adheres to OSBA api. It allows services to be independent and scaleable. It allows services to define their own resources.
The disadvantages of defining a resource for provisioning externally is that it has no relationship with other Kubernetes resources and the catalog is not able to enforce a sync between the resource and its provisioner’s last known state. The infrastructure finds the resource opaque and interpretable only by the external provisioner which may or may not be the source of truth.
The service broker then leads to a model where the resource has to become more composable from finer resources and the composition becomes the form of organization.  This could lead to a hybrid model where a larger custom resource is composed of smaller self-contained resources.
The catalog keeps instance and binding at a cluster wide or namespace scope. These are helpful for keeping track of accounts and roles to interact with the external service providers. The resource itself does not persist in the catalog until recently when etcd was made part of it.  Since the resource declarations and the logic to reconcile it rests outside the catalog, it is easy for them to implement self contained resources or those with referenced data bindings.
The user data has so far been represented by a K8s resource. The resource is only a representation for data to be fetched from service providers, either internal or external to the cluster. The resource can also have metadata that can help with its versioning, point of origin and signatures.
The use of metadata to improve the information on the resource without having to introspect the resource helps in making decisions about the resources and for visibility between source and destination of transfer.

No comments:

Post a Comment