Explore
Within the last chapter basic concepts have been demonstrated and a local development environment has been set up. This chapter will introduce new concepts, new software, and explorative examples that can be deployed easily in Kubernetes.
The idea is, that all apps can be tried out in the local setup. But also be used as a starting point for a potential production setup as introduced in the last chapter. There are two exceptions, ingress and OpenEBS. Those are only explained for the remote server, as the functionality comes right out-of-the-box with minikube. MailU can be installed on the local setup, but not really used, as a mail setup required a real server with internet connectivity.
All used files can be found in the directory /files within this repository.
To round up the basics chapter start with:
Kubeinvadersto showcase Kubernetes deployments.
Usually required basic infrastructure:
OpenEBSto provide Kubernetes volumes.ingress-nginxto provide ingress functionality.Cert-managerfor certificates.
Example applications:
Giteaas a git server.Wordpressas a common example.-
Nextcloudas a feature rich collaboration solution. -
MailUas a mail environment. (not working in local setup) Appsmithas a fancy try-out example. (not working in local setup)nocodbas another fancy example. (not working in local setup)
Usefull extensions for day2 operations:
Prometheus-stackas a feature rich monitoring solution.ArgoCDfor GitOps deployments.Velero and Minio and rclone(not implemented as part of this tutorial)
Fancy stuff:
ArgoCDfor gitops.Crossplanefor cloud native control plane. (not yet implemented)
helm
To deploy all these packages the tool helm is used. Helm is called "the package manager of Kubernetes". It works with a values.yaml file, which is used to template Kubernetes resources (other yamls).
graph LR;
A[values.yaml] -->|Used by| B(Template Engine)
B -->|Generates| C[Deployment]
B -->|Generates| D[PVC]
B -->|Generates| E[ConfigMap]
style A fill:#f9f,stroke:#333,stroke-width:2px
style B fill:#bbf,stroke:#333,stroke-width:2px
style C fill:#dfd,stroke:#333,stroke-width:2px
style D fill:#dfd,stroke:#333,stroke-width:2px
style E fill:#dfd,stroke:#333,stroke-width:2px
Dashboard
As part of minikube a Kubernetes dashboard can be accessed. The main purpose is to visualize current workloads. The dashboard can be installed and accessed with the following command. After the dashboard is up and running, the browser will be opened automatically.
minikube dashboard