Skip to content

JS-LinuxK8Infra/Kubernetes_KCNA

Repository files navigation

Scope

This repo covers all projects, tasks, and troubleshooting completed in preparation for obtaining the KCNA, demonstrating both hands-on Kubernetes skills and practical knowledge.

Environment

  • Minikube: v1.33.1
  • kubectl: 1.33.4
  • Operating System: Ubuntu 24.0.3 LTS
  • YAML for manifests
  • Visual Studio Code: v1.103.1
  • Istio Demo Profile: 1.27.0
  • Docker: 28.3.3
├── README.md
├── Screenshots
│   ├── Deployments/
│   ├── Docker/
│   ├── Istio/
│   ├── Minikube/
│   ├── Namespaces/
│   ├── Networking/
│   ├── Pods/
│   ├── ReplicaSets/
│   ├── Security/
│   └── ServiceAccounts/
├── Manifests 
├── Deployments
│   ├── Manifests
│   └── Testing, scale up, scale down, rollouts and rollbacks
├── Docker
│   ├── Installation
│   └── Version
├── Istio
│   ├── Installation
│   └── Version
├── Minikube
│   ├── Installation
│   ├── Create, validate, destroy
│   ├── Install, test and validate kubectl
│   └── Troubleshooting
├── Namespaces
│   ├── Manifests
│   ├── Create namespace
│   └── Validate taints
├── Networking
│   ├── Troubleshooting
├── Pods 
│   ├── Pods
│   ├── Manifests
│   ├── Troubleshooting
│   └── Manifest pod creation
├── ReplicaSets
│   ├── Manifests
│   └── Pods 
├── Security
│   ├── Certificates
└── ServiceAccounts
│   ├── Manifest creation
│   ├── Attach to pods
│   ├── Troubleshooting

Deployments

  • 2025-08-17 Create new deployment manifest, create the deployment, validate the pod status. Dep1-1
  • 2025-08-17 Validate the details of the newly created deployment. Dep1-2
  • 2025-08-17 Validate replicas are auto-scaling to the correct amount as intended per deployment specifications. Dep1-3
  • 2025-08-17 Validate all components of the new deployment are present, running, and in the intended state. Dep1-4
  • 2025-08-17 Delete the current deployment, scale up replicas to desired count, create a new deployment, validate both the replica count and deployment health. Dep1-5
  • 2025-08-17 Delete the current deployment, create and rollout a new deployment, validate 6/6 pods are up and healthy. Dep1-6
  • 2025-08-17 Create and annotate new deployment, roll it out, check the history and confirm the change-cause annotation is logged. Dep1-7
  • 2025-08-17 Validate the change-cause is annotated when describing the deployment. Dep1-8
  • 2025-08-17 Update the deployment manifest to a different image version, annotate the change-cause, rollout the deployment, then validate the deployment history.
    Dep1-9
  • 2025-08-17 Validate the scaling of replicas in the deployment manifest. Dep1-10
  • 2025-08-17 Downgrade to version 3.21, validate this failed, rollback to version 3.22, validate change-cause annotations, validate the deployment, validate the number of pods and their health. Dep1-11
  • 2025-08-19 Update the deployment manifest with an image version that does not exist, confirm the rollout produces an error, confirm the number of pods up is 6 as expected and the other 3 are in a broken state due to trying to pull an image version that does not exist off DockerHub. Dep1-12
  • 2025-08-19 Rollback deployment, confirm the pods terminated and the correct amount of replicas are now running. Dep1-13
  • 2025-08-19 Validate the image version has been rolled back to the desired version. Dep1-14
  • 2025-08-19 Validate the replica count is correct by describing the deployment. Dep1-15

Docker

  • 2025-08-13 Install Docker and Launch Hello World container. Doc1-1
  • 2025-08-13 Validate locally installed version. Doc1-2

Istio

  • 2025-08-24 Install Istio with demo profile, then validate the installation stability. IS1-1
  • 2025-08-13 Validate locally installed version. IS1-2

Minikube

  • 2025-08-12 Install Minikube. MK1-1
  • 2025-08-12 Start cluster and Minikube version validation. MK1-2
  • 2025-08-12 Validate the cluster is running, stop the cluster, then delete. MK1-3
  • 2025-08-14 Install kubectl, start the cluster, validate cluster info, validate kubectl version. MK1-4
  • 2025-08-16 Determined Minikube is not launching because it is not started, and when it is starting it is starting with too much memory allocated. MK1-5
  • 2025-08-16 Fix Minikube not starting, reduce memory allocation create pod, create nginx pod. MK1-6

Namespaces

  • 2025-08-19 Create namespace manifest then create first namespace. Nst1-1
  • 2025-08-19 Create namespace with kubectl command. Nst1-2
  • 2025-08-19 Check if any taints are currently set on the node. Nst1-3

Networking

  • 2025-08-24 TROUBLESHOOTING: Create network policy manifest, apply to node, identify and correct JSON error in manifest, apply and validate applied to pod. Net1-1

Pods

  • 2025-08-16 Validate running pods on the node and then review pod details. Pod1-1
  • 2025-08-16 Delete the pod and validate no longer running on the node. Pod1-2
  • 2025-08-16 Create the manifest then validate both spacing and contents are correct. Pod1-3
  • 2025-08-16 TROUBLESHOOTING: Pod not starting due to a crash loop. Pod1-4
  • 2025-08-16 TROUBLESHOOTING: The wrong image is defined in the pod manifest. Pod1-5
  • 2025-08-16 TROUBLESHOOTING: The incorrect image version is defined in the pod manifest. Pod1-6
  • 2025-08-16 Describe running pods and review applicable details, specifically start process for all three. Pod1-7
  • 2025-08-16 Create a manifest for all three pods, start them, validate 3/3 are now running on the node. Pod1-8
  • 2025-08-16 Delete all three pods then validate they are gone on the node. Pod1-9
  • 2025-08-23 TROUBLESHOOTING: Pod won't create due to the image name not matching the correct vernacular that is on DockerHub. Pod1-10
  • 2025-08-23 TROUBLESHOOTING: The Prometheus pod will not start, found that the image in the manifest was incorrect. Deleted the pod. Pod1-11

ReplicaSets

  • 2025-08-17 ReplicaSet manifest created in Visual Studio Code, validate accessible through bash shell locally. RS1-1
  • 2025-08-17 Create ReplicaSet manifest in bash, then validate the correct number of pods are started running in a healthy state. RS1-2
  • 2025-08-17 Create new pod manifest in Visual Studio Code, validate available in bash, to be used with Replicaset testing. RS1-3
  • 2025-08-17 Confirm correct number of pods defined in the Replicaset are running. RS1-4
  • 2025-08-17 Delete a pod, then validate the Replicaset created and started new pod, validate 3/3 are running, so HA is functioning as intended. RS1-5
  • 2025-08-17 Check the details of the Replicaset, specifically checking for both replica and pod counts.
    RS1-6
  • 2025-08-17 Edit the Replicaset manifest, scale the number of replicas to 4, confirm the fourth pod has been started, and is now running.
    RS1-7
  • 2025-08-17 Scale down the number of replicas to 2, without editing the manifest (using CLI syntax), then validate that only two pods are running.
    RS1-8

Security

  • 2025-08-21 Create the root certificate. Sec1-1
  • 2025-08-21 Create and sign an administrator certificate. Sec1-2
  • 2025-08-21 Create and sign the system masters certificate. Sec1-3
  • 2025-08-21 Create and sign certificates for the kube-scheduler, kube-controller-manager and kube-proxy services. Sec1-4

ServiceAccounts

  • 2025-08-21 Create a service account, validate on the node, describe the service account. SA1-1
  • 2025-08-21 Describe a pod with an attached service account. SA1-2
  • 2025-08-23 Grab Java Web Token (JWT) for the Prometheus pod. SA1-3
  • 2025-08-23 Install jq locally to view the decoded token JSON, view both the exp and iat values in the token, calculate to confirm the token expiration is set for one year. Both are set in seconds and the formula for determining the token TTL is exp - iat = token expiration date. SA1-4
  • 2025-08-23 TROUBLESHOOTING: The manifest is not creating either the serviceaccount or the pod, Visual Studio Code (VSC) is not updating the manifest on the node. Updated the manifest on the node then deleted the pod, re-applied the manifest, validated each have now been created. SA1-5

About

Repo for all work done working on obtaining the KCNA.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published