Skip to content

Commit 7865352

Browse files
authored
Merge pull request #11 from rishabkumar7/add-kcna-notes
Add kcna notes
2 parents 2c11ab9 + 33f1e76 commit 7865352

File tree

2 files changed

+349
-4
lines changed

2 files changed

+349
-4
lines changed

README.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# My Cloud Certifications Notes
22

33
[![Website](https://img.shields.io/website?down_color=red&down_message=down&up_color=green&up_message=up&url=https%3A%2F%2Frishabkumar.com/notes)](https://rishabkumar.com/notes)
4-
[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2Frishabkumar7%2FCloudNotes&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com)
4+
![Badge](https://hitscounter.dev/api/hit?url=https%3A%2F%2Fgithub.com%2Frishabkumar7%2FCloudNotes&label=Hits&icon=github&color=%23198754)
55
[![Twitter Follow](https://img.shields.io/twitter/follow/rishabincloud?style=social)](https://twitter.com/rishabincloud)
66

77
<!-- Github buttons -->
@@ -14,19 +14,25 @@ The web-version is available [here.](https://rishabkumar.com/notes)
1414

1515
You can support me 👉 [![Buy me a coffee](https://img.shields.io/static/v1.svg?label=Buy%20me%20a%20coffee&message=🥨&color=black&logo=buy%20me%20a%20coffee&logoColor=white&labelColor=6f4e37)](https://www.buymeacoffee.com/rishabincloud)
1616

17+
## Linux Certifications
18+
- [LPI Linux Essentials](/linux/LPILinuxEssentials.md)
19+
1720
## AWS Certifications
1821
- [AWS Cloud Practitioner](/cloud/AWS-CCP.md)
1922
- [AWS Solutions Architect Associate](/cloud/AWS-SAA.md)
2023
- [AWS Developer Associate](/cloud/AWS-CDA.md)
2124
- [AWS SysOps Associate](/cloud/AWS-SysOpsAssociate.md)
2225

23-
## Linux Certifications
24-
- [LPI Linux Essentials](/linux/LPILinuxEssentials.md)
25-
2626
## Azure Certfications
2727
- [Azure Fundamentals : AZ-900](/cloud/AzureFundamentals.md)
2828
- [Azure AI Engineer Associate : AI-102 ](/cloud/AzureAIEngineer-AI-102.md)
2929

30+
## GCP Certifications
31+
- [GCP Professional Cloud Security Engineer](/cloud/GCP-ProfessionalCloudSecurity.md)
32+
33+
## Kubernetes Certifications
34+
- [Kubernetes and Cloud Native Associate - KCNA](/devops/KCNA.md)
35+
3036
## Terraform Certifications
3137
- [Terraform Associate Certification](/devops/Terraform.md)
3238

devops/KCNA.md

Lines changed: 339 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,339 @@
1+
# Kubernetes and Cloud Native Associate (KCNA) Study Notes
2+
3+
## Overview
4+
5+
The Kubernetes and Cloud Native Associate (KCNA) certification is designed for beginners to demonstrate their knowledge of Kubernetes and the cloud native ecosystem. The exam tests basic concepts, principles, and terminology rather than hands-on implementation skills.
6+
7+
- [KCNA Official Page](https://training.linuxfoundation.org/certification/kubernetes-cloud-native-associate/)
8+
9+
## Domain 1: Kubernetes Fundamentals (46%)
10+
11+
### 1.1 Kubernetes Resources
12+
13+
- **Pods**:
14+
- Smallest deployable units in Kubernetes
15+
- Can contain one or more containers
16+
- Share network namespace and storage
17+
- Ephemeral by nature (not persistent)
18+
- **Deployments**:
19+
- Manage ReplicaSets
20+
- Provide declarative updates for Pods
21+
- Support rolling updates and rollbacks
22+
- Define desired state for application deployments
23+
- **Services**:
24+
- Abstract way to expose applications running on Pods
25+
- Types: ClusterIP, NodePort, LoadBalancer, ExternalName
26+
- Provide stable network endpoint for Pods
27+
- **ConfigMaps and Secrets**:
28+
- ConfigMaps: Store non-confidential configuration data
29+
- Secrets: Store sensitive information (passwords, tokens, keys)
30+
- Both can be used as environment variables or volume mounts
31+
- **Namespaces**:
32+
- Virtual clusters within a Kubernetes cluster
33+
- Provide scope for resource names
34+
- Allow resource isolation and quota management
35+
- **Other Resources**:
36+
- StatefulSets: For stateful applications
37+
- DaemonSets: Run a Pod on all (or some) nodes
38+
- Jobs and CronJobs: For batch and scheduled tasks
39+
- Ingress: Manage external access to services
40+
- PersistentVolumes and PersistentVolumeClaims: For storage
41+
42+
**Helpful links:**
43+
44+
- [Kubernetes Concepts](https://kubernetes.io/docs/concepts/)
45+
- [Pod Overview](https://kubernetes.io/docs/concepts/workloads/pods/)
46+
- [Deployments](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)
47+
- [Services](https://kubernetes.io/docs/concepts/services-networking/service/)
48+
- [ConfigMaps](https://kubernetes.io/docs/concepts/configuration/configmap/)
49+
- [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/)
50+
- [Namespaces](https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/)
51+
52+
### 1.2 Kubernetes Architecture
53+
54+
- **Control Plane Components**:
55+
- kube-apiserver: REST API front-end for Kubernetes control plane
56+
- etcd: Consistent and highly-available key-value store for cluster data
57+
- kube-scheduler: Assigns Pods to Nodes
58+
- kube-controller-manager: Runs controller processes
59+
- cloud-controller-manager: Interfaces with cloud providers
60+
- **Node Components**:
61+
- kubelet: Agent that ensures containers are running in a Pod
62+
- kube-proxy: Maintains network rules on nodes
63+
- Container runtime: Software responsible for running containers (Docker, containerd, CRI-O)
64+
- **Kubernetes API**:
65+
- Core of Kubernetes control plane
66+
- RESTful interface for cluster state
67+
- Enables declarative configuration
68+
- Uses JSON and YAML
69+
70+
![Kubernetes Components](https://kubernetes.io/images/docs/components-of-kubernetes.svg)
71+
72+
**Helpful links:**
73+
74+
- [Kubernetes Components](https://kubernetes.io/docs/concepts/overview/components/)
75+
- [Kubernetes API](https://kubernetes.io/docs/concepts/overview/kubernetes-api/)
76+
- [Nodes](https://kubernetes.io/docs/concepts/architecture/nodes/)
77+
78+
### 1.3 Kubernetes Configuration and Deployment
79+
80+
- **kubectl CLI**:
81+
- Primary command-line tool for interacting with Kubernetes clusters
82+
- Configure, create, manage, inspect resources
83+
- Key commands: apply, get, describe, delete, logs, exec
84+
- **YAML Manifests**:
85+
- Declarative approach to define Kubernetes resources
86+
- Structure: apiVersion, kind, metadata, spec
87+
- Can be applied, updated, and versioned
88+
- **Basic Deployment Strategies**:
89+
- Rolling updates: Gradual replacement of instances
90+
- Blue/Green: Maintain two production environments
91+
- Canary: Release to a small subset of users
92+
- **Helm**:
93+
- Package manager for Kubernetes
94+
- Helm charts: Package format (templates + values)
95+
- Simplifies deployment and management of applications
96+
97+
**Helpful links:**
98+
99+
- [kubectl Overview](https://kubernetes.io/docs/reference/kubectl/)
100+
- [kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
101+
- [Declarative Management](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/declarative-config/)
102+
- [Helm Documentation](https://helm.sh/docs/)
103+
104+
## Domain 2: Container Orchestration (22%)
105+
106+
### 2.1 Container Basics
107+
108+
- **Container Concepts**:
109+
- Lightweight, standalone, executable software packages
110+
- Include everything needed to run: code, runtime, libraries, settings
111+
- Share the host OS kernel but are isolated
112+
- **Container Images**:
113+
- Templates used to create containers
114+
- Layered file system (each instruction creates a layer)
115+
- Stored in registries (Docker Hub, GCR, ECR, ACR)
116+
- **Container Runtime Interface (CRI)**:
117+
- API between kubelet and container runtime
118+
- Allows for different container runtimes: Docker, containerd, CRI-O
119+
- **OCI (Open Container Initiative)**:
120+
- Standards for container formats and runtimes
121+
- Runtime Specification and Image Specification
122+
123+
**Helpful links:**
124+
125+
- [What are Containers?](https://kubernetes.io/docs/concepts/containers/)
126+
- [Container Runtime Interface (CRI)](https://kubernetes.io/docs/concepts/architecture/cri/)
127+
- [Open Container Initiative](https://opencontainers.org/)
128+
- [Docker Overview](https://docs.docker.com/get-started/overview/)
129+
130+
### 2.2 Orchestration Concepts
131+
132+
- **Scheduling**:
133+
- Process of assigning Pods to Nodes
134+
- Based on resource requirements, constraints, taints/tolerations
135+
- Handled by kube-scheduler
136+
- **Scaling**:
137+
- Manual scaling: Change replicas in Deployment/StatefulSet
138+
- Horizontal Pod Autoscaler (HPA): Automatically scale based on metrics
139+
- Vertical Pod Autoscaler (VPA): Adjust CPU/memory requests and limits
140+
- Cluster Autoscaler: Add/remove nodes based on resource requirements
141+
- **Self-healing**:
142+
- Automatic replacement of failed containers
143+
- Rescheduling evicted Pods
144+
- Health checks: liveness, readiness, and startup probes
145+
- **Load Balancing**:
146+
- Distributes traffic across Pods
147+
- Implemented through Services
148+
- External load balancing via LoadBalancer type or Ingress
149+
150+
**Helpful links:**
151+
152+
- [Scheduling](https://kubernetes.io/docs/concepts/scheduling-eviction/)
153+
- [Horizontal Pod Autoscaling](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/)
154+
- [Configure Liveness, Readiness and Startup Probes](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)
155+
- [Service Load Balancing](https://kubernetes.io/docs/concepts/services-networking/service/#loadbalancer)
156+
157+
## Domain 3: Cloud Native Architecture (16%)
158+
159+
### 3.1 Cloud Native Concepts
160+
161+
- **Microservices**:
162+
- Breaking applications into smaller, independent services
163+
- Each service focuses on specific business function
164+
- Independently deployable and scalable
165+
- Loosely coupled with other services
166+
- **Twelve-Factor App Methodology**:
167+
- Set of best practices for building cloud-native applications
168+
- Key principles: codebase, dependencies, config, backing services, build-release-run, processes, port binding, concurrency, disposability, dev/prod parity, logs, admin processes
169+
- **Serverless**:
170+
- Run code without managing infrastructure
171+
- Event-driven execution model
172+
- Pay-for-use pricing
173+
- Examples: AWS Lambda, Google Cloud Functions, Azure Functions, Knative
174+
- **Service Mesh**:
175+
- Infrastructure layer for service-to-service communication
176+
- Features: traffic management, security, observability
177+
- Examples: Istio, Linkerd, Consul
178+
179+
**Helpful links:**
180+
181+
- [CNCF Cloud Native Definition](https://github.com/cncf/toc/blob/main/DEFINITION.md)
182+
- [Twelve-Factor App](https://12factor.net/)
183+
- [Microservices Architecture](https://microservices.io/)
184+
- [Knative](https://knative.dev/docs/)
185+
- [Service Mesh Interface](https://smi-spec.io/)
186+
187+
### 3.2 Cloud Native Patterns
188+
189+
- **DevOps Principles**:
190+
- Collaboration between development and operations
191+
- Automation of processes
192+
- Continuous integration/continuous delivery (CI/CD)
193+
- Feedback loops and continuous improvement
194+
- **GitOps**:
195+
- Git as single source of truth for declarative infrastructure
196+
- Pull-based deployment model
197+
- Infrastructure as Code (IaC)
198+
- Examples: Flux, ArgoCD
199+
- **Stateless and Stateful Applications**:
200+
- Stateless: No client session data stored
201+
- Stateful: Maintains state/session information
202+
- Different deployment approaches in Kubernetes
203+
- **Resiliency Patterns**:
204+
- Circuit breaker: Prevent cascading failures
205+
- Retry: Automatically retry failed operations
206+
- Timeout: Abandon operations that take too long
207+
- Bulkhead: Isolate components to contain failures
208+
209+
**Helpful links:**
210+
211+
- [Cloud Native Patterns](https://www.manning.com/books/cloud-native-patterns)
212+
- [GitOps](https://www.gitops.tech/)
213+
- [Flux Documentation](https://fluxcd.io/docs/)
214+
- [Argo CD](https://argo-cd.readthedocs.io/en/stable/)
215+
- [Kubernetes StatefulSets](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/)
216+
- [Resilience Patterns](https://docs.microsoft.com/en-us/azure/architecture/patterns/category/resiliency)
217+
218+
## Domain 4: Cloud Native Observability (8%)
219+
220+
### 4.1 Telemetry and Observability
221+
222+
- **Monitoring vs. Observability**:
223+
- Monitoring: Tracking predefined metrics and alerts
224+
- Observability: Ability to understand system state from external outputs
225+
- Three pillars: metrics, logs, traces
226+
- **Metrics**:
227+
- Numerical data about system performance
228+
- Time-series data
229+
- Examples: CPU usage, memory usage, request count, error rate
230+
- Tools: Prometheus, Grafana
231+
- **Logging**:
232+
- Recording events with contextual information
233+
- Centralized log collection and analysis
234+
- Tools: Elasticsearch, Fluentd, Loki
235+
- **Tracing**:
236+
- Tracking request flow through distributed systems
237+
- Identify performance bottlenecks
238+
- Tools: Jaeger, Zipkin, OpenTelemetry
239+
240+
**Helpful links:**
241+
242+
- [CNCF Observability White Paper](https://github.com/cncf/tag-observability/blob/main/whitepaper.md)
243+
- [Prometheus](https://prometheus.io/docs/introduction/overview/)
244+
- [Grafana](https://grafana.com/docs/)
245+
- [Fluentd](https://www.fluentd.org/guides)
246+
- [OpenTelemetry](https://opentelemetry.io/docs/)
247+
248+
### 4.2 Prometheus and OpenMetrics
249+
250+
- **Prometheus Architecture**:
251+
- Pull-based monitoring system
252+
- Time-series database
253+
- Powerful query language (PromQL)
254+
- Alert manager for notifications
255+
- **Instrumentation and Exporters**:
256+
- Application instrumentation using client libraries
257+
- Exporters for third-party systems
258+
- Service discovery for dynamic environments
259+
260+
**Helpful links:**
261+
262+
- [Prometheus Getting Started](https://prometheus.io/docs/prometheus/latest/getting_started/)
263+
- [PromQL](https://prometheus.io/docs/prometheus/latest/querying/basics/)
264+
- [Prometheus Exporters](https://prometheus.io/docs/instrumenting/exporters/)
265+
266+
## Domain 5: Cloud Native Security (8%)
267+
268+
### 5.1 Cloud Native Security Concepts
269+
270+
- **Defense in Depth**:
271+
- Multiple layers of security controls
272+
- Includes: cloud infrastructure, cluster, container, code
273+
- Principle of least privilege
274+
- **Kubernetes Security**:
275+
- API authorization (RBAC)
276+
- Authentication methods
277+
- Pod security policies/standards
278+
- Network policies
279+
- Secrets management
280+
- **Supply Chain Security**:
281+
- Image scanning for vulnerabilities
282+
- Signed images and verification
283+
- Software Bill of Materials (SBOM)
284+
- Secure build processes
285+
- **Runtime Security**:
286+
- Container sandboxing
287+
- Intrusion detection/prevention
288+
- Audit logging
289+
- Tools: Falco, Sysdig, Open Policy Agent (OPA)
290+
291+
**Helpful links:**
292+
293+
- [Kubernetes Security](https://kubernetes.io/docs/concepts/security/)
294+
- [RBAC Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)
295+
- [Pod Security Standards](https://kubernetes.io/docs/concepts/security/pod-security-standards/)
296+
- [Network Policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
297+
- [Open Policy Agent](https://www.openpolicyagent.org/docs/latest/)
298+
- [Falco](https://falco.org/docs/)
299+
300+
### 5.2 Authentication, Authorization, and Admission Control
301+
302+
- **Authentication**:
303+
- Verifying identity in Kubernetes
304+
- Methods: client certificates, bearer tokens, OpenID Connect, service accounts
305+
- **Authorization (RBAC)**:
306+
- Role-Based Access Control
307+
- Roles and ClusterRoles (permissions)
308+
- RoleBindings and ClusterRoleBindings (assignments)
309+
- Namespace scoped vs. cluster-wide
310+
- **Admission Control**:
311+
- Intercepts requests to Kubernetes API server
312+
- Validation and Mutation webhooks
313+
- Built-in controllers (e.g., ResourceQuota, LimitRanger)
314+
- Tools: Gatekeeper, Kyverno
315+
316+
**Helpful links:**
317+
318+
- [Authenticating in Kubernetes](https://kubernetes.io/docs/reference/access-authn-authz/authentication/)
319+
- [RBAC Examples](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#role-examples)
320+
- [Admission Controllers](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/)
321+
- [Gatekeeper](https://open-policy-agent.github.io/gatekeeper/website/docs/)
322+
323+
## KCNA Preparation Tips
324+
325+
- Understand Kubernetes core concepts and terminology
326+
- Familiarize yourself with the Cloud Native ecosystem and CNCF projects
327+
- Focus on high-level concepts rather than detailed implementation
328+
- Use free online resources, including Kubernetes documentation and CNCF resources
329+
- Try hands-on practice with minikube or kind for local Kubernetes clusters
330+
- Take advantage of free courses like Introduction to Kubernetes on edX
331+
332+
**Additional Helpful Resources:**
333+
334+
- [CNCF Landscape](https://landscape.cncf.io/) - Overview of cloud native technologies
335+
- [Kubernetes Learning Path](https://kubernetes.io/docs/tutorials/kubernetes-basics/) - Official beginner tutorials
336+
- [Kubernetes the Hard Way](https://github.com/kelseyhightower/kubernetes-the-hard-way) - Advanced understanding of components
337+
- [CNCF YouTube Channel](https://www.youtube.com/c/cloudnativefdn) - Webinars and conference presentations
338+
- [KubeAcademy](https://kube.academy/) - Free Kubernetes courses from VMware
339+
- [DevOps Capstone Project Playlist](https://www.youtube.com/playlist?list=PLK_LRl1CH4L-kIl0-5FK6KszocD_1__YZ)

0 commit comments

Comments
 (0)