All Projects → moabukar → Kubernetes-and-Cloud-Native-Associate-KCNA

moabukar / Kubernetes-and-Cloud-Native-Associate-KCNA

Licence: Apache-2.0 license
Useful notes for the KCNA - Kubernetes and Cloud Native Associate

Projects that are alternatives of or similar to Kubernetes-and-Cloud-Native-Associate-KCNA

Kubesphere
The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management ⎈ 🖥 ☁️
Stars: ✭ 8,315 (+5032.72%)
Mutual labels:  cncf, k8s, istio
meshery
Meshery, the cloud native manager
Stars: ✭ 1,587 (+879.63%)
Mutual labels:  cncf, service-mesh, istio
kserve
Serverless Inferencing on Kubernetes
Stars: ✭ 1,621 (+900.62%)
Mutual labels:  k8s, service-mesh, istio
Dew
微服务一站式解决方案,提供:架构指南、容器优先/兼容Spring Cloud与Service Mesh的框架、最佳实践及Devops标准化流程。
Stars: ✭ 285 (+75.93%)
Mutual labels:  k8s, service-mesh, istio
ultimate-kubernetes-bootcamp
Ultimate Kubernetes Bootcamp
Stars: ✭ 43 (-73.46%)
Mutual labels:  cncf, orchestration, container-orchestration
Admiral
Admiral provides automatic configuration generation, syncing and service discovery for multicluster Istio service mesh
Stars: ✭ 323 (+99.38%)
Mutual labels:  k8s, service-mesh, istio
apiclarity
Reconstruct Open API Specifications from real-time workload traffic seamlessly.
Stars: ✭ 290 (+79.01%)
Mutual labels:  k8s, service-mesh, istio
Kruise
Automate application management on Kubernetes (project under CNCF)
Stars: ✭ 2,819 (+1640.12%)
Mutual labels:  cncf, k8s, cloudnative
kubernetes the easy way
Automating Kubernetes the hard way with Vagrant and scripts
Stars: ✭ 22 (-86.42%)
Mutual labels:  cncf, orchestration, k8s
github-task-manager
receive github hook, notify agent, receive task results, notify github
Stars: ✭ 13 (-91.98%)
Mutual labels:  k8s, gitops
fury-kubernetes-opa
Kubernetes Fury OPA. Policy enforcement for your Kubernetes Cluster
Stars: ✭ 34 (-79.01%)
Mutual labels:  cncf, k8s
merbridge
Use eBPF to speed up your Service Mesh like crossing an Einstein-Rosen Bridge.
Stars: ✭ 469 (+189.51%)
Mutual labels:  service-mesh, istio
service-mesh-performance
Standardizing Service Mesh Value Measurement
Stars: ✭ 234 (+44.44%)
Mutual labels:  cncf, service-mesh
php-nacos
阿里巴巴nacos配置中心-PHP客户端
Stars: ✭ 167 (+3.09%)
Mutual labels:  service-mesh, istio
paas-templates
Bosh, CFAR, CFCR and OSB services templates for use with COA (cf-ops-automation) framework
Stars: ✭ 16 (-90.12%)
Mutual labels:  k8s, gitops
meshery.io
Site for Meshery, the cloud native management plane
Stars: ✭ 135 (-16.67%)
Mutual labels:  cncf, service-mesh
inclavare-containers
A novel container runtime, aka confidential container, for cloud-native confidential computing and enclave runtime ecosystem.
Stars: ✭ 510 (+214.81%)
Mutual labels:  runtime, cncf
learn-layer5
A sample application for learning how to service mesh and for validating SMI conformance
Stars: ✭ 43 (-73.46%)
Mutual labels:  service-mesh, istio
gitops-app-distribution
GitOps workflow for managing app delivery on multiple clusters
Stars: ✭ 22 (-86.42%)
Mutual labels:  istio, gitops
CKA-Exercises
A set of curated exercises to help prepare you for the Certified Kubernetes Administrator Exam by the Cloud Native Computing Foundation
Stars: ✭ 51 (-68.52%)
Mutual labels:  cncf, k8s

License PRs Welcome

Kubernetes-and-Cloud-Native-Associate KCNA

Note: A documentation of notes & curated useful resources to help you prepare for the Kubernetes and Cloud Native Associate Exam (KCNA) Feel free to share them :)

For any fixes, updates or new additions to the syllabus, please raise an issue or make a pull-request (PR). Thank you!

  • Regardless of you sitting the KCNA exam or not, once you have studied these topics, you will have a good overall understanding of the Cloud-Native, Containers and Kubernetes eco-system. What matters is that you enjoy the learning process. Goodluck on your learning journey!

The KCNA is a certification aimed for individuals who want to advance to the professional level by demonstrating an understanding of the core knowledge and abilities of Kubernetes. This certification is ideal for students learning about or candidates interested in working with cloud native technologies.

Exam Brief

  • Duration : 1.5 hours
  • Passing score: 75%

  • Certification validity: 3 years

  • Prerequisite: None

  • Cost: $250 USD, 1 year exam eligibility, with a free retake within the year.

  • Result: Emailed 24 hours after exam completion

  • Official KCNA curriculum

  • The exam consists of around 60 MCQ questions.

    Linux Foundation offer several discounts around the year such as CyberMonday, Kubecon and various other events - ensure to utilise these

KCNA topics overview

Practice questions for KCNA

Extra helpful materials

Useful keys & Common accronyms in Kubernetes

  • K8s = Kubernetes
  • CNCF = Cloud Native Computing Foundation
  • NetPol = Network Policies
  • PV = Persistent Volumes
  • PVC = Persistent Volume Claims
  • CSI = Container Storage Interface
  • CNI = Container Network Interface
  • CI/CD = Continuous Integration & Continuous Deployment
  • RBAC = Role Based Access Control
  • OCI = Open Container Initiative
  • CRI = Container Runtime Interface
  • SMI = Service Mesh Interface
  • SLO = Service Level Objectives
  • SLI = Service Level Indicators
  • SLA = Service Level Agreements

🔹 1. Kubernetes Fundamentals - 46%

1.1 Fundamental Kuberenetes resources

Pods in K8s - Click arrow to read more

Pods are the smallest deployable units of computing that you can create and manage in Kubernetes.

Deployments in K8s - Click arrow to read more

A Deployment provides declarative updates for Pods and ReplicaSets.

You describe a desired state in a Deployment, and the Deployment Controller changes the actual state to the desired state at a controlled rate. You can define Deployments to create new ReplicaSets, or to remove existing Deployments and adopt all their resources with new Deployments.

Services in K8s - Click arrow to read more

An abstract way to expose an application running on a set of Pods as a network service.

Types of Services: ClusterIP: Exposes the Service on a cluster-internal IP. Choosing this value makes the Service only reachable from within the cluster. This is the default ServiceType.

NodePort: Exposes the Service on each Node's IP at a static port (the NodePort). A ClusterIP Service, to which the NodePort Service routes, is automatically created. You'll be able to contact the NodePort Service, from outside the cluster, by requesting :.

LoadBalancer: Exposes the Service externally using a cloud provider's load balancer. NodePort and ClusterIP Services, to which the external load balancer routes, are automatically created.

ExternalName: Maps the Service to the contents of the externalName field (e.g. foo.bar.example.com), by returning a CNAME record with its value. No proxying of any kind is set up.

Reference: https://kubernetes.io/docs/concepts/services-networking/service/

ReplicaSets in K8s - Click arrow to read more

A ReplicaSet's purpose is to maintain a stable set of replica Pods running at any given time. As such, it is often used to guarantee the availability of a specified number of identical Pods.

Headless Services - Click arrow to read more

Sometimes you don't need load-balancing and a single Service IP. In this case, you can create what are termed "headless" Services, by explicitly specifying "None" for the cluster IP (.spec.clusterIP).

You can use a headless Service to interface with other service discovery mechanisms, without being tied to Kubernetes' implementation.

Useful Kubernetes commands using kubectl

kubectl get pods (obtain/list pods in current namespace)

kubectl get pods -A OR kubectl get pods --all-namespaces (obtain pods in all namespaces)

kubectl api-resources (obtain API resources that are retrievable using the kubect commands)

kubectl run nginx --image=nginx (run a pod named nginx using the nginx image)

kubectl create deploy kcna --image=nginx (create a deployment named "kcna" with the nginx image)

kubectl create deploy kcna --image=nginx --replicas=5 (create a deployment named "kcna" with the nginx image that deploys 5 pods (replicas))

1.2 Kubernetes Architecture

K8s components - Click arrow to read more

Control Plane Components

kube-apiserver:

The API server is a component of the Kubernetes control plane that exposes the Kubernetes API. The API server is the front end for the Kubernetes control plane.

The main implementation of a Kubernetes API server is kube-apiserver. kube-apiserver is designed to scale horizontally—that is, it scales by deploying more instances. You can run several instances of kube-apiserver and balance traffic between those instances.

etcd Consistent and highly-available key value store used as Kubernetes' backing store for all cluster data.

kube-scheduler: Control plane component that watches for newly created Pods with no assigned node, and selects a node for them to run on.

kube-controller-manager: Control plane component that runs controller processes.

Logically, each controller is a separate process, but to reduce complexity, they are all compiled into a single binary and run in a single process.

Some types of these controllers are:

Node controller: Responsible for noticing and responding when nodes go down. Job controller: Watches for Job objects that represent one-off tasks, then creates Pods to run those tasks to completion. Endpoints controller: Populates the Endpoints object (that is, joins Services & Pods). Service Account & Token controllers: Create default accounts and API access tokens for new namespaces.

cloud-controller-manager: A Kubernetes control plane component that embeds cloud-specific control logic. The cloud controller manager lets you link your cluster into your cloud provider's API, and separates out the components that interact with that cloud platform from components that only interact with your cluster. The cloud-controller-manager only runs controllers that are specific to your cloud provider. If you are running Kubernetes on your own premises, or in a learning environment inside your own PC, the cluster does not have a cloud controller manager.

Worker Node Components

kubelet An agent that runs on each node in the cluster. It makes sure that containers are running in a Pod.

kube-proxy kube-proxy is a network proxy that runs on each node in your cluster, implementing part of the Kubernetes Service concept.

kube-proxy maintains network rules on nodes. These network rules allow network communication to your Pods from network sessions inside or outside of your cluster.

K8s API - Click arrow to read more

Kubernetes API

The core of Kubernetes' control plane is the API server. The API server exposes an HTTP API that lets end users, different parts of your cluster, and external components communicate with one another.

The Kubernetes API lets you query and manipulate the state of API objects in Kubernetes (for example: Pods, Namespaces, ConfigMaps, and Events).

Most operations can be performed through the kubectl command-line interface or other command-line tools, such as kubeadm, which in turn use the API. However, you can also access the API directly using REST calls.

1.4 Containers

Containers - Click arrow to read more

Containers are a form of operating system virtualization. A single container might be used to run anything from a small microservice or software process to a larger application. Inside a container are all the necessary executables, binary code, libraries, and configuration files. Compared to server or machine virtualization approaches, however, containers do not contain operating system images.

This makes them more lightweight and portable, with significantly less overhead. In larger application deployments, multiple containers may be deployed as one or more container clusters. Such clusters might be managed by a container orchestrator such as Kubernetes.

Reference : https://www.netapp.com/devops-solutions/what-are-containers/

1.5 Scheduling

🔹 2. Container Orchestration - 22%

2.1 Containers Orchestration Fundamentals

2.2 Runtime

2.3 Security

2.4 Networking

2.5 Service Mesh

2.6 Storage

🔹 3. Cloud Native Architecture - 16%

Characteristics of Cloud Native Architecture - Click arrow to read more
  • High level of Automation
  • Self-healing
  • Secure by default
  • Cost-efficient
  • Easy-to-maintain
  • Scalable
Twelve-Factor App - Click arrow to read more

The Twelve Factors

  • I. Codebase: One codebase tracked in revision control, many deploys
  • II. Dependencies: Explicitly declare and isolate dependencies
  • III. Config: Store config in the environment
  • IV. Backing services: Treat backing services as attached resources
  • V. Build, release, run: Strictly separate build and run stages
  • VI. Processes: Execute the app as one or more stateless processes
  • VII. Port binding: Export services via port binding
  • VIII. Concurrency: Scale out via the process model
  • IX. Disposability: Maximize robustness with fast startup and graceful shutdown
  • X. Dev/prod parity: Keep development, staging, and production as similar as possible
  • XI. Logs: Treat logs as event streams
  • XII. Admin processes: Run admin/management tasks as one-off processes

Reference: https://12factor.net/

3.1 Autoscaling

3.2 Serverless

3.3 Community & Governance

3.4 Roles & Personas

3.5 Open Standards

🔹 4. Cloud Native Observability - 8%

4.1 Telemetry & Observability

4.2 Prometheus

4.3 Cost Management

🔹 5. Cloud Native Application Delivery - 8%

5.1 Application Delivery Fundamentals

5.2 GitOps

5.3 CI/CD

Test your knowledge - Click this for practice questions

Slack

  1. Kubernetes Community - #kcna-exam-prep
  2. Kubernetes Community
  3. Cloud Native Mentoring - #kcna

Useful training material

Useful reading material

Books

References

Useful Youtube vdeos

Useful Kubernetes repos + Next steps?

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].