Terminologies

  1. kubectl = The k8s command line tool
  2. container = container runs inside of pods!
    • Containers are lightweight, standalone
  3. service = a k8s resource that provides stable network endpoint (IP & DNS Name) to access a set of pods, enabling communication between pods/ with outside network
  4. k8s (API) resources = all k8s objects, entites manged by API resources (e.g. deployments, pods, servicesโ€ฆetc)
  5. k8s API server = kubectl commands go to here; API Server = centeral management component in the k8s cluster = frontend of the k8s control plane
  6. Ingress vs Egress
    • Similarity: Both are used to describe flow of network traffic from pods to someone else/ some other resources (e.g. pod/ services)
    • Difference:
      • ingress: incoming traffic (from external to pod) = who can talk to your pod = into cluster/pod/services
        • example:
          • how users access app from the internet
      • egress: Outgoing traffic (from pod to external) = who your pod can talk to = out of cluster/pod/services
        • example:
          • pod calls an external API
          • pod calls an external DB
             User invoking (kubectl, UI, etc.)
              โ”‚
              โ–ผ
             [K8s API Server]
              โ”‚
              โ–ผ
             Cluster State (etcd)
              โ”‚
              โ–ผ
             Other Control Plane Components
            

Hierarchy

Cluster
โ”‚
โ”œโ”€โ”€ Namespace(s)
โ”‚    โ”‚
โ”‚    โ””โ”€โ”€ Pod(s)
โ”‚         โ”‚
โ”‚         โ”œโ”€โ”€ Container(s)
โ”‚         โ””โ”€โ”€ Service(s)
โ”‚
โ””โ”€โ”€ Node(s) = worker node (physical/virtual), 2 types of nodes: Master (control plane) node & worker node

Table of contents