Rock • I have a held a number of roles (Sysadmin, Developer, Reliability Engineer, System Analyst) in resources, transport and finance. • I’ve worked across embedded systems, CI/CD, frontend, backend, both cloud and neolithic. • Most of my time is spent improving the cloud development experience at large enterprises.
course on Kubernetes It is scheduled to take place on January 9th and 10th @ Cliftons Perth More Information: https://ti.to/intro-to-kubernetes/intro-to-kubernetes/
API based up different objects. Let’s add new ones. • The existing ‘core’ objects form a set of composable of building blocks. • What if we could enable higher level functionality by providing a building block that exposes a limited a API surface to compose the other blocks?
I say We need to how your hardware requirements, so we can order the gear. Once you get that to use it’ll take another fortnight for everything to turn up, at which point it *might* get rack at some point in the next month. At some point after that you’ll get access and you can install what you want it. I couldn’t say when though, it’s handled by someone else. What they hear No.
reusability begins the process of dynamic object registration in the Kubernetes API • What if we use the expose of the object registration layer as an API? ThirdPartyResources are born. • CustomResourceDefinitions are borne from the TPR experiment
to use Kubernetes client libraries and CLIs to create and update the new resource. • You want to build new automation that watches for updates on the new object, and then CRUD other objects, or vice versa. • You want to use Kubernetes API conventions like .spec, .status, and .metadata. • You want the object to be an abstraction over a collection of controlled resources, or a summarization of other resources https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
spec: # group name to use for REST API:/apis/<group>/<version> group: stable.example.com # version name to use for REST API: /apis/<group>/<version> version: v1 scope: Namespaced names: # plural name to be used in the URL: /apis/<group>/<version>/<plural> plural: crontabs singular: crontab kind: CronTab shortNames: - ct
to the cluster 2. The cluster stores the definition in ETCD 3. The replicaset controller is informed of the presence of a new object in ETCD and requests the object 4. The replicaset controller submits x pod definitions to the cluster 5. The scheduler is informed of these new pod definitions 6. The scheduler retrieves these pod definitions, notes they haven’t yet been assigned a node to run on. 7. The scheduler determines what nodes the pods should be run, updates their object definitions to include this information, then submits them to the API server. 8. The node is informed of the changes to the pod object, and requests those pod objects. 9. The node starts the pod up, based on whatever was in the object definition
of the Kubernetes API. • Combining this with a ‘controller’ we can enable kubernetes to provide extended functionality - while taking advantage of Kubernetes existing tooling • We do this to provide a ‘package’ services in a manner that is better for our end-consumers