Skip to content

Commit

Permalink
Added link to main page, for k8s pageS
Browse files Browse the repository at this point in the history
  • Loading branch information
joseeden committed Jan 7, 2024
1 parent ea8f3a9 commit 0d675fb
Show file tree
Hide file tree
Showing 41 changed files with 264 additions and 30 deletions.
5 changes: 5 additions & 0 deletions pages/04-Kubernetes/002-What-is-Kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,8 @@ As we've previously seen, the advent of containers called for much better tools
- workload scenarios, for multiple builds in your CICD pipeline
- leverage different deployment options (AB, canary, etc.)



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/004-Kubernetes-API-Objects.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,4 +67,10 @@ Storage objects serves as persistent storage to keep the data.

- **Persistent Volume**, a Pod-independent storage defined at the cluster level using a *Persistent Volume Claim*

</details>
</details>



<br>

[Back to first page](../../README.md#kubernetes)
7 changes: 6 additions & 1 deletion pages/04-Kubernetes/005-Kubernetes-Cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,9 @@ These are Pods that provide special services to the cluster.
- an example is the DNS Pods, which handles DNS operations
- IP of DNS Pod is in the network configuration
- DNS Pod is used for service discovery inside of the cluster
- other examples are ingres controllers and dashboard for web-based administration
- other examples are ingres controllers and dashboard for web-based administration


<br>

[Back to first page](../../README.md#kubernetes)
6 changes: 6 additions & 0 deletions pages/04-Kubernetes/006-Pod-Operations.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,9 @@ Let's say Node 2 goes down.
2. The Controller Manager send another request to the Scheduler.
3. The Scheduler checks the number of nodes on which to spin up the two pods, which in this case will be Node 1.
4. The kubelet in node1 seees a state change which will then spin up the two additional Pods.



<br>

[Back to first page](../../README.md#kubernetes)
5 changes: 5 additions & 0 deletions pages/04-Kubernetes/007-Kubernetes-Networking.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,8 @@ Components | Ports (TCP) | Used By
Kubelet | 10250 | Control Plane
NodePort | 30000-32767 | All



<br>

[Back to first page](../../README.md#kubernetes)
5 changes: 5 additions & 0 deletions pages/04-Kubernetes/008-Setting-up-Kubernetes.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,3 +105,8 @@ We'll use kubeadm to create our cluster. The phases include:
9. kubeadm starts **Add-on Pods: DNS and kube-proxy**

Note that the process defined above can be customized by specifying parameters.


<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/009-Pods.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,4 +112,10 @@ But at times we may want to run a process that runs to completion in a container

This could also be a process that waits for an external service or database to be up before the actual application starts. That's where **initContainers** comes in.

To learn more about initContainers, check out [Probe and InitContainers](./020-Probes.md)
To learn more about initContainers, check out [Probe and InitContainers](./020-Probes.md)



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/009-Static-Pods.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,10 @@ ExecStart=/usr/bin/kubelet \
# kubeconfig.yaml

staticPodPath: /etc/kubernetes/manifests
```
```
<br>
[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/009-kubeconfig-files.md
Original file line number Diff line number Diff line change
Expand Up @@ -183,4 +183,10 @@ clusters:
- [Organizing Cluster Access Using kubeconfig Files](https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/)
- [Kubernetes for the Absolute Beginners](https://kodekloud.com/courses/kubernetes-for-the-absolute-beginners-hands-on/)
- [Kubernetes for the Absolute Beginners](https://kodekloud.com/courses/kubernetes-for-the-absolute-beginners-hands-on/)
<br>
[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/010-DaemonSets.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,10 @@ spec:



To learn more, check out [DaemonSets in Kubernetes](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/).
To learn more, check out [DaemonSets in Kubernetes](https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/).



<br>

[Back to first page](../../README.md#kubernetes)
6 changes: 6 additions & 0 deletions pages/04-Kubernetes/011-ReplicaSets.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,9 @@ $ kubectl get rs -n kube-system
```

To learn more, check out [ReplicaSets in Kubernetes](https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/).



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/012-Scaling.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,10 @@ Scaling in Kubernetes is done using the **Replication Controller.**

- ensures specified number of replicas ran at all times
- pods are automatically replaced if they fail, get deleted, or are terminated
- recommended to use even if you're only running 1 pod to ensure pod is always running
- recommended to use even if you're only running 1 pod to ensure pod is always running



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/013-Services.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,10 @@ A load balancer type creates a **cluster IP** and a **node port** for the servic

Kubernetes also provides **Ingress Controller** which serves as a layer 7 service abstraction. These controllers are run as normal pods in the cluster, making it different from most controllers that are automatically run as part of the kube-controller manager.

Once we have an ingress controller in place, we can leverage the ingress to define rules for inbound connections to services. This support SSL termination, load balaancing, and path-based routing.
Once we have an ingress controller in place, we can leverage the ingress to define rules for inbound connections to services. This support SSL termination, load balaancing, and path-based routing.



<br>

[Back to first page](../../README.md#kubernetes)
6 changes: 6 additions & 0 deletions pages/04-Kubernetes/014-Deployments.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,9 @@ To see deployments in action, check out this [lab](../../Lab43_Deployments/READM

To learn more about Deployments and StatefulSets using Persistent Volumes in AWS, check out [Amazon EKS - Persistent Volumes](pages/04-Kubernetes/056-EKS-Persistent-Volumes.md) page.




<br>

[Back to first page](../../README.md#kubernetes)
7 changes: 6 additions & 1 deletion pages/04-Kubernetes/015-Certificate-Authority.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,9 @@ The CA files will be stored in:

```bash
$ /etc/kubernetes/pki
```
```


<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/016-Stateful-vs-Stateless.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,10 @@ Includes traditional databases such as PostgreSQL and MySQL which have database

- cannot horizontally scale
- can be ran on a single container and scale vertically
- use volumes to save data
- use volumes to save data



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/017-StorageClass.md
Original file line number Diff line number Diff line change
Expand Up @@ -335,4 +335,10 @@ To learn more, check out :
- [StorageClass on Kubernetes.](https://kubernetes.io/docs/concepts/storage/storage-classes/)
- [StorageClass on Amazon EKS.](https://docs.aws.amazon.com/eks/latest/userguide/storage-classes.html)
- [StorageClass on Amazon EKS.](https://docs.aws.amazon.com/eks/latest/userguide/storage-classes.html)
<br>
[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/018-Manifests.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,10 @@ Every manifest has the same set of top-level properties:
- **apiVersion** - usually v1, which is core API version
- **kind** - indicates the resource to be created
- **metadata** - details about the resource
- **spec** - specifications of the declared resource
- **spec** - specifications of the declared resource



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/019-Rollouts-and-Rollbacks.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,10 @@ kubectl rollout undo deployment/myapp-deployment

## Rollouts and Rollbacks in Action

To see rolling updates in action, check out this [lab](../../projects/Lab_045_Rollouts_and_Rollbacks/README.md).
To see rolling updates in action, check out this [lab](../../projects/Lab_045_Rollouts_and_Rollbacks/README.md).



<br>

[Back to first page](../../README.md#kubernetes)
4 changes: 4 additions & 0 deletions pages/04-Kubernetes/020-Probes.md
Original file line number Diff line number Diff line change
Expand Up @@ -184,3 +184,7 @@ spec:
To see init containers in actions check out this [lab](../../projects/Lab_047_Init_Containers/README.md).
<br>
[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/021-Configmaps.md
Original file line number Diff line number Diff line change
Expand Up @@ -229,4 +229,10 @@ Mount the secret as a volume to the container

## ConfigMaps and Secrets in Action

To see ConfigMaps and Secrets in actions check out this [lab](../../Lab49_ConfigMaps_and_Secrets/README.md).
To see ConfigMaps and Secrets in actions check out this [lab](../../projects/Lab_049_ConfigMaps_and_Secrets/README.md).



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/022-Scheduling-pods.md
Original file line number Diff line number Diff line change
Expand Up @@ -207,4 +207,10 @@ $ kubectl get pods

NAME READY STATUS RESTARTS AGE
myapp 1/1 Pending 0 4h52m
```
```



<br>

[Back to first page](../../README.md#kubernetes)
7 changes: 6 additions & 1 deletion pages/04-Kubernetes/022-Taints-and-tolerations.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,4 +215,9 @@ Check the taint:
```bash
$ kubectl describe node ip-192-168-81-3.ap-southeast-1.compute.internal | grep Taint
Taints: <none>
```
```


<br>

[Back to first page](../../README.md#kubernetes)
7 changes: 6 additions & 1 deletion pages/04-Kubernetes/023-NODESLSECTOR.MD
Original file line number Diff line number Diff line change
Expand Up @@ -168,4 +168,9 @@ Apply.

```bash
kubectl apply -f https://k8s.io/examples/pods/pod-nginx-preferred-affinity.yaml
```
```


<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/024-Pod-affinity.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,10 @@ However, the conditions are specific for the Pod labels, not the node labels. Th
- not recommended for large clusters with hundreds of nodes or more
- since pods are namespaced, their labels are also namespaced

After the conditions are evaluated, the **topology key** is used in deciding the node in which the pod will be scheduled on. This key usually corresponds to a physical domain such as datacenter, region, server rack, etc.
After the conditions are evaluated, the **topology key** is used in deciding the node in which the pod will be scheduled on. This key usually corresponds to a physical domain such as datacenter, region, server rack, etc.



<br>

[Back to first page](../../README.md#kubernetes)
6 changes: 6 additions & 0 deletions pages/04-Kubernetes/025-Container-resource-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,3 +54,9 @@ FIELDS:
```
To see resource requirements in action, check out this [lab](../../Lab21-Resource_Requirements/README.md).
<br>
[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/026-kubernetes-ecosystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,10 @@ Knative is platform for building, deploying, and managing serverless workloads o

- Focus more on the code, instead of the underlying resources
- Can be deployed anywhere, avoiding vendor lock-in
- Supported by Google, IBM, and SAP
- Supported by Google, IBM, and SAP



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/027-Kubernetes-Dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ To access the Kubernetes dashboard from our terminal,
$ kubectl proxy
```

To see this in action, check out this [lab](../../Lab55_EKS_K8s_Dashboard.md/README.md).
To see this in action, check out this [lab](../../projects/Lab_055_EKS_Kubernetes_Dashboard/README.md).

To learn more, check out the [official Kubernetes Dashboard Github](https://github.com/kubernetes/dashboard) page.



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/029-CNCF-Projects.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,10 @@ Each of these projects will have different statuses as defined by CNCF.
- **Incubating** - projects are slowly being adopted
- **Graduated** - project becomes a part of the K8s environment

You can read about their organizations and the projects that they maintain [here](https://www.cncf.io/).
You can read about their organizations and the projects that they maintain [here](https://www.cncf.io/).



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/033-Kubernetes-patterns.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,4 +189,10 @@ This command display all the available api-resources and their shortnames. Some

## Resources

- [Kubernetes Patterns for Application Developers](https://cloudacademy.com/course/kubernetes-patterns-for-application-developers/introduction/)
- [Kubernetes Patterns for Application Developers](https://cloudacademy.com/course/kubernetes-patterns-for-application-developers/introduction/)



<br>

[Back to first page](../../README.md#kubernetes)
6 changes: 6 additions & 0 deletions pages/04-Kubernetes/034-Labels-seclector-annotations.md
Original file line number Diff line number Diff line change
Expand Up @@ -221,3 +221,9 @@ Annotations: cni.projectcalico.org/podIP: 192.168.23.130/32
## Resources

- [Kubernetes Pod Design for Application Developers: Labels, Selectors, and Annotations](https://cloudacademy.com/lab/kubernetes-pod-design-application-developers-labels-selectors-and-annotations/?context_id=888&context_resource=lp)



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/035-jobs-cronjobs.md
Original file line number Diff line number Diff line change
Expand Up @@ -209,4 +209,10 @@ pod-fail 0/6 2m54s 2m54s

## Resource

- [Kubernetes Pod Design for Application Developers: Jobs and CronJobs](https://cloudacademy.com/lab/kubernetes-pod-design-application-developers-jobs-and-cronjobs/?context_id=888&context_resource=lp)
- [Kubernetes Pod Design for Application Developers: Jobs and CronJobs](https://cloudacademy.com/lab/kubernetes-pod-design-application-developers-jobs-and-cronjobs/?context_id=888&context_resource=lp)



<br>

[Back to first page](../../README.md#kubernetes)
8 changes: 7 additions & 1 deletion pages/04-Kubernetes/036-App-Lifecycle-Management.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,10 @@ To learn more, check out [ConfigMaps and Secrets](./021-Configmaps.md)
With multi-container Pods, we have a number of Pods that share the same lifecycle, which means these Pods are created together and destroyed together.
- they share the same network space, so they communicate through ports
- they have access to the same storage volume
- they have access to the same storage volume
<br>
[Back to first page](../../README.md#kubernetes)
Loading

0 comments on commit 0d675fb

Please sign in to comment.