diff --git a/.gitignore b/.gitignore index f68c48e..278c407 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,8 @@ !.vscode/extensions.json !.vscode/settings.json +.obsidian/ + .vagrant/ .terraform/ diff --git a/knowledge base/kubernetes/README.md b/knowledge base/kubernetes/README.md index 55313d1..9556afe 100644 --- a/knowledge base/kubernetes/README.md +++ b/knowledge base/kubernetes/README.md @@ -191,24 +191,24 @@ Also see [configuration best practices] and the [production best practices check - Avoid workloads and nodes fail due limited resources being available.
Set [resource requests and limits][resource management for pods and containers] to reserve a minimum amount of resources for pods and limit their hogging abilities. - Prefer smaller container images. -- Prioritize critical workloads. +- Prioritize critical workloads.
Quality of service. - Instrument applications to detect and respond to the SIGTERM signal. - Avoid using bare pods.
Prefer defining them as part of a replica-based resource, like Deployments, StatefulSets, ReplicaSets or DaemonSets. -- Restrict traffic between objects in the cluster. - Network policies. +- Restrict traffic between objects in the cluster.
+ [Network policies]. - Reduce container privileges. - Leverage autoscalers. - Pod disruption budgets. -- Try to use all nodes possible. +- Try to use all nodes possible.
Affinities, taint and tolerations. -- Push for automation. +- Push for automation.
GitOps. - Apply the principle of least privilege.
Role-based access control (RBAC). - Continuously audit events and logs regularly, also for control plane components. -- Protect the cluster's ingress points. +- Protect the cluster's ingress points.
Firewalls, web application firewalls, application gateways. ## Quality of service @@ -519,18 +519,29 @@ Concepts: - [Container capabilities in Kubernetes] - [Kubernetes SecurityContext Capabilities Explained] - [Best practices for pod security in Azure Kubernetes Service (AKS)] +- [Network policies] Tools: - [`kubectl`][kubectl] - [`helm`][helm] - [`helmfile`][helmfile] +- [`kustomize`][kustomize] - [`kubeval`][kubeval] - `kube-score` - [`kubectx`+`kubens`][kubectx+kubens] (alternative to [`kubie`][kubie]) - [`kube-ps1`][kube-ps1] - [`kubie`][kubie] (alternative to [`kubectx`+`kubens`][kubectx+kubens] and [`kube-ps1`][kube-ps1]) - [k3s] +- [minikube] + +Applications: + +- [cert-manager] +- [external-dns] +- [flux] +- [istio] +- [keda] Others: @@ -589,12 +600,20 @@ All the references in the [further readings] section, plus the following: [azure kubernetes service]: ../azure/aks.md +[cert-manager]: cert-manager.md [create an admission webhook]: ../../examples/kubernetes/create%20an%20admission%20webhook/README.md +[external-dns]: external-dns.md +[flux]: flux.md [helm]: helm.md [helmfile]: helmfile.md +[istio]: istio.md [k3s]: k3s.md +[keda]: keda.md [kubectl]: kubectl.md [kubeval]: kubeval.md +[kustomize]: kustomize.md +[minikube]: minikube.md +[network policies]: network%20policies.md [prometheus on kubernetes using helm]: ../../examples/kubernetes/prometheus%20on%20k8s%20using%20helm.md [terraform]: ../terraform.md [velero]: velero.md diff --git a/knowledge base/kubernetes/cert-manager.md b/knowledge base/kubernetes/cert-manager.md new file mode 100644 index 0000000..246a5df --- /dev/null +++ b/knowledge base/kubernetes/cert-manager.md @@ -0,0 +1,35 @@ +# cert-manager + +FIXME + +## Table of contents + +1. [TL;DR](#tldr) +1. [Further readings](#further-readings) +1. [Sources](#sources) + +## TL;DR + +## Further readings + +- [Website] +- [Github] + +## Sources + +All the references in the [further readings] section, plus the following: + + + + +[github]: https://github.com/cert-manager/cert-manager +[website]: https://cert-manager.io/ + + +[further readings]: #further-readings + + + + diff --git a/knowledge base/kubernetes/external-dns.md b/knowledge base/kubernetes/external-dns.md new file mode 100644 index 0000000..e33ec14 --- /dev/null +++ b/knowledge base/kubernetes/external-dns.md @@ -0,0 +1,33 @@ +# ExternalDNS + +FIXME + +## Table of contents + +1. [TL;DR](#tldr) +1. [Further readings](#further-readings) +1. [Sources](#sources) + +## TL;DR + +## Further readings + +- [Github] + +## Sources + +All the references in the [further readings] section, plus the following: + + + + +[github]: https://github.com/kubernetes-sigs/external-dns + + +[further readings]: #further-readings + + + + diff --git a/knowledge base/kubernetes/kustomize.md b/knowledge base/kubernetes/kustomize.md new file mode 100644 index 0000000..c50b9f4 --- /dev/null +++ b/knowledge base/kubernetes/kustomize.md @@ -0,0 +1,35 @@ +# Kustomize + +FIXME + +## Table of contents + +1. [TL;DR](#tldr) +1. [Further readings](#further-readings) +1. [Sources](#sources) + +## TL;DR + +## Further readings + +- [Website] +- [Github] + +## Sources + +All the references in the [further readings] section, plus the following: + + + + +[github]: https://github.com/kubernetes-sigs/kustomize +[website]: https://kustomize.io/ + + +[further readings]: #further-readings + + + +