Deep diving into GKE – key concepts and best practices
Starting with basic concepts, a Kubernetes Pod (https://cloud.google.com/kubernetes-engine/docs/concepts/pod) is a self-contained and isolated logical host that contains all the needs, at a systemic level, of the application it will serve. Pods are the smallest deployable objects in Kubernetes, representing a single instance of a running process in our cluster and can host one or more containers. All the containers within the same Pod share their resources and are managed as a single entity.
Each Pod has a unique IP address and all the containers in the Pod share the same IP address and network ports, using localhost to communicate with each other. Shared storage volumes may also be present and shared among the containers.
A Kubernetes Service (https://kubernetes.io/docs/concepts/services-networking/service/) is an abstract way to expose an application running on a set of pods as a network service. Kubernetes will...