.. image:: ./_static/logo.png :height: 100px :width: 100px :alt: Kubernetes Logo :align: right Concepts ======== Pods ---- - The smallest deployment unit in kubernetes is a `Pod `_. - A Pod can contain multiple containers. - A pod runs a single instance of an application. - To scale horizontally, use multiple pods. - A pod has a single IP. - Containers inside a pod communicate using :code:`localhost` - Containers inside a pod share storage using Volumes. - Pods are disposable. To manage scheduling and self-healing, you should create Pods via a Controller. Controllers ----------- - Controllers create and manage multiple pods. - Controllers handle replication, rollout, and self-healing within a cluster - Types of controller: - `Deployment `_ - `StatefulSet `_ - `DaemonSet `_ - Controllers use Pod Templates to specify how to create the pods Services -------- - `Services `_ expose pod network endpoints to the cluster - A service uses a specification to define which pods to route traffic to. - A service can be used to expose a service externally using the following service types: - LoadBalancer - NodePort Ingress ------- - `Ingress rules `_ defines cluster external routes to connect services inside the cluster to the outside world. - To create an ingress rule, the cluster must have an `Ingress Controller `_ running. - Ingress can be used to arrange: - Routing - SSL/TLS termination - Authentication