Kubernetes Architecture Guide

ਜ਼ਿਆਦਾਤਰ ਇੰਜੀਨੀਅਰ ਕਮਾਂਡਾਂ ਨੂੰ ਯਾਦ ਕਰਕੇ Kubernetes ਸਿੱਖਦੇ ਹਨ।

ਵਧੀਆ ਇੰਜੀਨੀਅਰ ਸਮਝਦੇ ਹਨ ਕਿ ਆਰਕੀਟੈਕਚਰ ਕਿਵੇਂ ਕੰਮ ਕਰਦਾ ਹੈ।

ਜਦੋਂ ਤੁਸੀਂ ਆਰਕੀਟੈਕਚਰ ਨੂੰ ਸਮਝ ਲੈਂਦੇ ਹੋ, ਤਾਂ troubleshooting ਕਰਨਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।

ਇਹਨਾਂ ਕੰਮਾਂ ਨੂੰ ਮੈਨੂਅਲੀ (manually) ਸੰਭਾਲਣ ਦੀ ਕਲਪਨਾ ਕਰੋ:

  • ਸੈਂਕੜੇ ਸਰਵਰ
  • ਹਜ਼ਾਰਾਂ ਕੰਟੇਨਰ (containers)
  • ਲਗਾਤਾਰ ਡਿਪਲਾਈਮੈਂਟਸ (deployments)
  • ਹਾਰਡਵੇਅਰ ਫੇਲ੍ਹ ਹੋਣਾ
  • ਟ੍ਰੈਫਿਕ ਵਿੱਚ ਅਚਾਨਕ ਵਾਧਾ (traffic spikes)

Kubernetes ਇਹਨਾਂ ਕੰਮਾਂ ਨੂੰ ਆਟੋਮੇਟ ਕਰਦਾ ਹੈ। ਇੱਕ ਕਲੱਸਟਰ (cluster) ਦੇ ਦੋ ਮੁੱਖ ਹਿੱਸੇ ਹੁੰਦੇ ਹਨ: Control Plane ਅਤੇ Worker Nodes।

Control Plane ਕਲੱਸਟਰ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ। Worker Nodes ਤੁਹਾਡੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਚਲਾਉਂਦੇ ਹਨ।

Core Components:

The API Server: ਇਹ ਗੇਟਵੇਅ ਹੈ। ਹਰ kubectl ਕਮਾਂਡ ਪਹਿਲਾਂ ਇੱਥੇ ਆਉਂਦੀ ਹੈ।

ETCD: ਇਹ ਡਾਟਾਬੇਸ ਹੈ। ਇਹ Pods ਅਤੇ Secrets ਵਰਗੇ ਸਾਰੇ ਕਲੱਸਟਰ ਡਾਟਾ ਨੂੰ ਸਟੋਰ ਕਰਦਾ ਹੈ। ਇਹ 'single source of truth' ਹੈ।

The Scheduler: ਇਹ ਤੁਹਾਡੇ Pod ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਨੋਡ ਚੁਣਦਾ ਹੈ। ਇਹ CPU ਅਤੇ ਮੈਮੋਰੀ ਦੀ ਉਪਲਬਧਤਾ ਨੂੰ ਦੇਖਦਾ ਹੈ।

Controllers: ਇਹ ਕਲੱਸਟਰ ਦੀ ਸਿਹਤ (health) ਦੀ ਨਿਗਰਾਨੀ ਕਰਦੇ ਹਨ। ਉਹ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਨ ਕਿ ਅਸਲ ਸਥਿਤੀ (actual state) ਤੁਹਾਡੀ ਲੋੜੀਂਦੀ ਸਥਿਤੀ (desired state) ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ।

Cloud Controller: ਇਹ AWS ਵਿੱਚ load balancers ਵਰਗੇ ਕਲਾਉਡ-ਵਿਸ਼ੇਸ਼ ਕੰਮਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ।

Worker Node Components:

Kubelet: ਇਹ ਹਰੇਕ ਨੋਡ 'ਤੇ ਇੱਕ ਏਜੰਟ ਹੈ। ਇਹ ਹਦਾਇਤਾਂ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ ਅਤੇ ਕੰਟੇਨਰਾਂ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ।

Container Runtime: ਇਹ ਕੰਟੇਨਰਾਂ ਨੂੰ ਚਲਾਉਂਦਾ ਹੈ। ਉਦਾਹਰਣਾਂ ਵਿੱਚ containerd ਅਤੇ CRI-O ਸ਼ਾਮਲ ਹਨ।

Kube Proxy: ਇਹ ਨੈੱਟਵਰਕਿੰਗ ਅਤੇ ਟ੍ਰੈਫਿਕ ਰੂਟਿੰਗ ਨੂੰ ਸੰਭਾਲਦਾ ਹੈ।

The Pod: ਇਹ ਸਭ ਤੋਂ ਛੋਟੀ ਯੂਨਿਟ ਹੈ। ਤੁਹਾਡੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ Pods ਦੇ ਅੰਦਰ ਚੱਲਦੀਆਂ ਹਨ।

How a Deployment Works:

  1. API Server ਤੁਹਾਡੀ ਬੇਨਤੀ (request) ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।
  2. ETCD ਨਵੀਂ ਸਥਿਤੀ ਨੂੰ ਸਟੋਰ ਕਰਦਾ ਹੈ।
  3. Scheduler ਇੱਕ ਨੋਡ ਚੁਣਦਾ ਹੈ।
  4. Kubelet Pod ਨੂੰ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
  5. Container runtime ਕੰਟੇਨਰਾਂ ਨੂੰ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
  6. Kube Proxy ਨੈੱਟਵਰਕਿੰਗ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।

Kubernetes Desired State Management ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ 3 replicas ਦੀ ਮੰਗ ਕਰਦੇ ਹੋ, ਤਾਂ Kubernetes ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ 3 replicas ਮੌਜੂਦ ਹਨ। ਜੇਕਰ ਇੱਕ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ Kubernetes ਇੱਕ ਨਵਾਂ ਸ਼ੁਰੂ ਕਰ ਦਿੰਦਾ ਹੈ। ਇਹ self-healing ਹੈ।

CKA, DevOps, ਅਤੇ SRE ਰੋਲ ਲਈ ਆਰਕੀਟੈਕਚਰ ਦਾ ਗਿਆਨ ਬਹੁਤ ਜ਼ਰੂਰੀ ਹੈ। ਇਸ ਤੋਂ ਬਿਨਾਂ, production ਦੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਸੁਲਝਾਉਣਾ ਮੁਸ਼ਕਲ ਹੈ।

Test your knowledge:

The API Server ਸਹੀ (healthy) ਹੈ। The Worker Nodes ਸਹੀ (healthy) ਹਨ। ETCD ਉਪਲਬਧ ਨਹੀਂ ਹੈ।

ਕੀ ਤੁਸੀਂ ਨਵੇਂ Pods ਨੂੰ ਸ਼ੈਡਿਊਲ ਕਰ ਸਕਦੇ ਹੋ? ਕਿਉਂ ਜਾਂ ਕਿਉਂ ਨਹੀਂ?

ਆਪਣਾ ਜਵਾਬ ਹੇਠਾਂ ਪੋਸਟ ਕਰੋ।

Source: https://dev.to/arnabadhikar/kubernetes-architecture-the-complete-beginner-to-intermediate-guide-3e4l

Optional learning community: https://t.me/GyaanSetuAi