Google Kubernetes Engine Flashcards
Microservices
This is an architecture where an application is divided into a number of small tasks instead of lumped onto a single node, allowing for greater access and easier scalability.
How do Microservices communicate?
They used APIs, which allows them to be written in different programming languages. You can also use CI/CD to deliver faster funcationalities.
CI/CD
Continuous Integration and Continuous Delivery/Deployment. A methodology of streamlining software delivery.
Continuous Integration
Developers frequently submit code to a common repository where it is reviewed and tested. Once validated an automatic build is triggered.
Continuous Delivery
Allows for the automation of the release process so that software can be deployed to the target enviornment at any time
Continuous Deployment
Changes made by a developer that pass all tests are automatically deployed to the production enviornment
What are the advantages of containers?
They provide isolation between servies allowing for them to each have their own unconflicting libraries, the application’s use can be limited to each resource, they are self contained with all dependancies and don’t need an OS, and they are lightweight.
What types of containers does GKE support?
GKE primarily supports Docker. This platform creates Dockerfiles that can then be hosted in Google Container Registry and accessed from GKE clusters.
Kubernetes
Also known as K8s, an open source container orchestrator that was initially developed by Google that allows for the deployment, scaling, and management of containerized applications (both stateless and stateful).
Master Nodes
Responsible for the management of the cluster. Takes care of the desired state using YAML files on worker nodes. Runs API server, controller manager, etcd, and scheduler.
Worker Nodes
Host the workloads which are pods. Managed by the master node and runs kublet, kube proxy, and container runtime (aka Dockerfiles)
Pods
The smallest unit and can contain one or more containers. Each one has a unique IP address that is shared between the contents. They are created when called upon (ephemeral).
Kubernetes Objects
Records of intent defined in YAML files that are declarative and determine the state of the pods, ReplicaSets, Replication controllers, deployments, and namespaces.
What data do Kubernetes objects need?
apiVersion (the version of the Kubernetes API being used), kind (the kind of object to be created), metadata (data that helps uniquely identify the object, such as name), spec (the specification of the object, which is dependant on type)
ReplicaSets
Used to manage the number of pods that are running at any given time by monitoring how many pods are running and deploying new ones as needed. Defined under the replicas parameter.