Browse Source
Merge pull request #231 from ClemontX/master
added K8s-Deployment and edited README
pull/237/head
Louis Lam
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with
152 additions and
1 deletions
README.md
kubernetes/README.md
kubernetes/kustomization.yml
kubernetes/uptime-kuma/deployment.yml
kubernetes/uptime-kuma/ingressroute.yml
kubernetes/uptime-kuma/kustomization.yml
kubernetes/uptime-kuma/pvc.yml
kubernetes/uptime-kuma/service.yml
@ -36,6 +36,11 @@ docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name upti
Browse to http://localhost:3001 after started.
### ☸️ Kubernetes
See more [here ](kubernetes/README.md )
### Advanced Installation
If you need more options or need to browse via a reserve proxy, please read:
@ -43,7 +48,6 @@ If you need more options or need to browse via a reserve proxy, please read:
https://github.com/louislam/uptime-kuma/wiki/%F0%9F%94%A7-How-to-Install
## 🆙 How to Update
Please read:
@ -0,0 +1,28 @@
# Uptime-Kuma K8s Deployment
## How does it work?
Kustomize is a tool which builds a complete deployment file for all config elements.
You can edit the files in the ```uptime-kuma``` folder except the ```kustomization.yml``` until you know what you're doing.
If you want to choose another namespace you can edit the ```kustomization.yml``` in the ```kubernetes```-Folder and change the ```namespace: uptime-kuma``` to something you like.
It creates a certificate with the specified Issuer and creates the Ingress for the Uptime-Kuma ClusterIP-Service
## What do i have to edit?
You have to edit the ```ingressroute.yml``` to your needs.
This ingressroute.yml is for the [nginx-ingress-controller ](https://kubernetes.github.io/ingress-nginx/ ) in combination with the [cert-manager ](https://cert-manager.io/ ).
- host
- secrets and secret names
- (Cluster)Issuer (optional)
- the Version in the Deployment-File
- update:
- change to newer version and run the above commands, it will update the pods one after another
## How To use:
- install [kustomize ](https://kubectl.docs.kubernetes.io/installation/kustomize/ )
- Edit files mentioned above to your needs
- run ```kustomize build > apply.yml```
- run ```kubectl apply -f apply.yml```
Now you should see some k8s magic and Uptime-Kuma should be available at the specified address.
@ -0,0 +1,10 @@
namespace : uptime-kuma
namePrefix : uptime-kuma-
commonLabels:
app : uptime-kuma
bases:
- uptime-kuma
@ -0,0 +1,42 @@
apiVersion : apps/v1
kind : Deployment
metadata:
labels:
component : uptime-kuma
name : deployment
spec:
selector:
matchLabels:
component : uptime-kuma
replicas : 1
strategy:
type : Recreate
template:
metadata:
labels:
component : uptime-kuma
spec:
containers:
- name : app
image : louislam/uptime-kuma:1
ports:
- containerPort : 3001
volumeMounts:
- mountPath : /app/data
name : storage
livenessProbe:
exec:
command:
- node
- extra/healthcheck.js
readinessProbe:
httpGet:
path : /
port : 3001
scheme : HTTP
volumes:
- name : storage
persistentVolumeClaim:
claimName : pvc
@ -0,0 +1,39 @@
apiVersion : networking.k8s.io/v1
kind : Ingress
metadata:
annotations:
kubernetes.io/ingress.class : nginx
cert-manager.io/cluster-issuer : letsencrypt-prod
nginx.ingress.kubernetes.io/proxy-read-timeout : "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout : "3600"
nginx.ingress.kubernetes.io/server-snippets : |
location / {
proxy_set_header Upgrade $http_upgrade;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header Connection "upgrade";
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_cache_bypass $http_upgrade;
}
name : ingress
spec:
tls:
- hosts:
- example.com
secretName : example-com-tls
rules:
- host : example.com
http:
paths:
- path : /
pathType : Prefix
backend:
service:
name : service
port:
number : 3001
@ -0,0 +1,5 @@
resources:
- deployment.yml
- service.yml
- ingressroute.yml
- pvc.yml
@ -0,0 +1,10 @@
apiVersion : v1
kind : PersistentVolumeClaim
metadata:
name : pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage : 4Gi
@ -0,0 +1,13 @@
apiVersion : v1
kind : Service
metadata :
name : service
spec:
selector :
component : uptime-kuma
type : ClusterIP
ports :
- name : http
port : 3001
targetPort : 3001
protocol : TCP