Wie installiert man Software in einem Kubernetes Cluster? Am einfachsten mit Helm!
Es gibt schon viele fertige Helm Charts die man mit einem Befehl installieren kann (z.B. auf https://artifacthub.io/ ).
Ok man braucht zwei Befehle. Zuerst muss man das Helm Repository einbinden und dann kann man das Helm Chart installieren.
Hier mal ein paar Helm Charts wie ich sie bei mir installiert habe
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm install prometheus prometheus-community/prometheus --create-namespace --namespace monitoring --version 22.5.0 --set server.service.type=NodePort --set server.service.nodePort=30001
helm repo add grafana https://grafana.github.io/helm-charts
helm install grafana grafana/grafana --create-namespace --namespace monitoring --version 6.56.2 --set service.type=NodePort --set service.nodePort=30002
# Passwort für Benutzer admin
kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 -d ; echo
helm repo add jetstack https://charts.jetstack.io
helm install cert-manager jetstack/cert-manager --create-namespace --namespace cert-manager --version v1.11.2 --set installCRDs=true
# issuer-letsencrypt.yaml
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-staging
namespace: cert-manager
spec:
acme:
server: https://acme-staging-v02.api.letsencrypt.org/directory
email: john.doe@inter.net
privateKeySecretRef:
name: letsencrypt-staging
solvers:
- http01:
ingress:
class: nginx
--- apiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-prod namespace: cert-manager spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: john.doe@inter.net privateKeySecretRef: name: letsencrypt-prod solvers: - http01: ingress: class: nginx
kubectl apply -f issuer-letsencrypt.yaml
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install ingress-nginx ingress-nginx/ingress-nginx --create-namespace --namespace ingress-nginx --version 4.6.1 --set controller.service.type=NodePort --set controller.service.nodePorts.http=30080 --set controller.service.nodePorts.https=30443
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install wordpress bitnami/wordpress --create-namespace --namespace wordpress --version 16.1.2 --set service.type=NodePort --set service.nodePorts.http=30000 --set mariadb.auth.rootPassword="strenggeheim" --set mariadb.auth.password="geheim" --set ingress.enabled="true" --set ingress.hostname="blog.jamba.cloud" --set ingress.ingressClassName="nginx" --set ingress.tls="true" --set ingress.annotations."cert-manager\.io/cluster-issuer"="letsencrypt-staging"
# Passwort für Benutzer user
kubectl get secret --namespace wordpress wordpress -o jsonpath="{.data.wordpress-password}" | base64 -d ; echo
helm repo add itzg https://itzg.github.io/minecraft-server-charts
helm install minecraft itzg/minecraft --create-namespace --namespace minecraft --version 4.7.4 --set persistence.dataDir.enabled=true --set minecraftServer.gameMode=creative --set minecraftServer.eula=true --set minecraftServer.serviceType=NodePort --set minecraftServer.nodePort=30003