forked from k-space/kube
Remove longhorn
This commit is contained in:
1
longhorn-system/.gitignore
vendored
1
longhorn-system/.gitignore
vendored
@@ -1 +0,0 @@
|
||||
longhorn.yaml
|
@@ -1,41 +0,0 @@
|
||||
# Longhorn distributed block storage system
|
||||
|
||||
## For users
|
||||
|
||||
You should really avoid using Longhorn as it has over time
|
||||
[proven to be unreliable system](https://www.reddit.com/r/kubernetes/comments/1cbggo8/longhorn_is_unreliable/).
|
||||
Prefer using remote databases in your application via
|
||||
the Kubernetes operator pattern.
|
||||
|
||||
Use Longhorn for applications that need persistent storage, but are unable
|
||||
to provide replication in the application layer:
|
||||
|
||||
* Applications that insist writing into filesystem
|
||||
* Applications that serve Git repositories (eg Gitea)
|
||||
* Applications that check out Git repositories (eg Woodpecker, Drone and CI systems)
|
||||
* Applications that need to use SQLite
|
||||
|
||||
Instead of using built-in `longhorn` storage class, please add new storage class
|
||||
with suitable replication, data locality parameters and reclaim policy
|
||||
[here](https://git.k-space.ee/k-space/kube/src/branch/master/storage-class.yaml)
|
||||
|
||||
Longhorn backups are made once per day and it's configured to be uploaded to
|
||||
the Minio S3 bucket hosted at nas.k-space.ee
|
||||
|
||||
|
||||
## For administrators
|
||||
|
||||
Longhorn was last upgraded with following snippet:
|
||||
|
||||
```
|
||||
wget https://raw.githubusercontent.com/longhorn/longhorn/v1.8.2/deploy/longhorn.yaml
|
||||
patch -p0 < changes.diff
|
||||
kubectl -n longhorn-system apply -f longhorn.yaml -f application-extras.yml -f backup.yaml
|
||||
```
|
||||
|
||||
After initial deployment `dedicated=storage:NoSchedule` was specified
|
||||
for `Kubernetes Taint Toleration` under `Setting -> General` on
|
||||
[Longhorn Dashboard](https://longhorn.k-space.ee/).
|
||||
Suitable nodes were tagged with `storage` and Longhorn scheduling was disabled on others.
|
||||
This is to prevent scheduling Longhorn data on arbitrary Kubernetes nodes as
|
||||
`storage[1-4].kube.k-space.ee` nodes are the ones which have additional 200G volume mounted at `/mnt/persistent/`
|
@@ -1,138 +0,0 @@
|
||||
---
|
||||
apiVersion: codemowers.cloud/v1beta1
|
||||
kind: OIDCMiddlewareClient
|
||||
metadata:
|
||||
name: ui
|
||||
spec:
|
||||
displayName: Longhorn
|
||||
uri: 'https://longhorn.k-space.ee'
|
||||
allowedGroups:
|
||||
- k-space:kubernetes:admins
|
||||
headerMapping:
|
||||
email: Remote-Email
|
||||
groups: Remote-Groups
|
||||
name: Remote-Name
|
||||
user: Remote-Username
|
||||
---
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: longhorn-dashboard
|
||||
namespace: longhorn-system
|
||||
annotations:
|
||||
kubernetes.io/ingress.class: traefik
|
||||
external-dns.alpha.kubernetes.io/target: traefik.k-space.ee
|
||||
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
||||
traefik.ingress.kubernetes.io/router.middlewares: longhorn-system-ui@kubernetescrd
|
||||
spec:
|
||||
rules:
|
||||
- host: longhorn.k-space.ee
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: "/"
|
||||
backend:
|
||||
service:
|
||||
name: longhorn-frontend
|
||||
port:
|
||||
number: 80
|
||||
tls:
|
||||
- hosts:
|
||||
- "*.k-space.ee"
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PodMonitor
|
||||
metadata:
|
||||
name: manager
|
||||
spec:
|
||||
selector: {}
|
||||
podMetricsEndpoints:
|
||||
- port: manager
|
||||
---
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: PrometheusRule
|
||||
metadata:
|
||||
name: longhorn
|
||||
spec:
|
||||
# Copied from https://longhorn.io/docs/1.2.4/monitoring/alert-rules-example/
|
||||
groups:
|
||||
- name: longhorn
|
||||
rules:
|
||||
- alert: LonghornVolumeActualSpaceUsedWarning
|
||||
annotations:
|
||||
description: The accumulated snapshots for volume use up more space than the volume's capacity
|
||||
summary: The actual used space of Longhorn volume is twice the size of the volume capacity.
|
||||
expr: longhorn_volume_actual_size_bytes > longhorn_volume_capacity_bytes * 2
|
||||
for: 5m
|
||||
labels:
|
||||
issue: The actual used space of Longhorn volume {{$labels.volume}} on {{$labels.node}} is high.
|
||||
severity: warning
|
||||
- alert: LonghornVolumeStatusCritical
|
||||
annotations:
|
||||
description: Longhorn volume {{$labels.volume}} on {{$labels.node}} is Fault for
|
||||
more than 2 minutes.
|
||||
summary: Longhorn volume {{$labels.volume}} is Fault
|
||||
expr: longhorn_volume_robustness == 3
|
||||
for: 5m
|
||||
labels:
|
||||
issue: Longhorn volume {{$labels.volume}} is Fault.
|
||||
severity: critical
|
||||
- alert: LonghornVolumeStatusWarning
|
||||
annotations:
|
||||
description: Longhorn volume {{$labels.volume}} on {{$labels.node}} is Degraded for
|
||||
more than 5 minutes.
|
||||
summary: Longhorn volume {{$labels.volume}} is Degraded
|
||||
expr: longhorn_volume_robustness == 2
|
||||
for: 5m
|
||||
labels:
|
||||
issue: Longhorn volume {{$labels.volume}} is Degraded.
|
||||
severity: warning
|
||||
- alert: LonghornNodeStorageWarning
|
||||
annotations:
|
||||
description: The used storage of node {{$labels.node}} is at {{$value}}% capacity for
|
||||
more than 5 minutes.
|
||||
summary: The used storage of node is over 70% of the capacity.
|
||||
expr: (longhorn_node_storage_usage_bytes / longhorn_node_storage_capacity_bytes) * 100 > 70
|
||||
for: 5m
|
||||
labels:
|
||||
issue: The used storage of node {{$labels.node}} is high.
|
||||
severity: warning
|
||||
- alert: LonghornDiskStorageWarning
|
||||
annotations:
|
||||
description: The used storage of disk {{$labels.disk}} on node {{$labels.node}} is at {{$value}}% capacity for
|
||||
more than 5 minutes.
|
||||
summary: The used storage of disk is over 70% of the capacity.
|
||||
expr: (longhorn_disk_usage_bytes / longhorn_disk_capacity_bytes) * 100 > 70
|
||||
for: 5m
|
||||
labels:
|
||||
issue: The used storage of disk {{$labels.disk}} on node {{$labels.node}} is high.
|
||||
severity: warning
|
||||
- alert: LonghornNodeDown
|
||||
annotations:
|
||||
description: There are {{$value}} Longhorn nodes which have been offline for more than 5 minutes.
|
||||
summary: Longhorn nodes is offline
|
||||
expr: (avg(longhorn_node_count_total) or on() vector(0)) - (count(longhorn_node_status{condition="ready"} == 1) or on() vector(0)) > 0
|
||||
for: 5m
|
||||
labels:
|
||||
issue: There are {{$value}} Longhorn nodes are offline
|
||||
severity: critical
|
||||
- alert: LonghornIntanceManagerCPUUsageWarning
|
||||
annotations:
|
||||
description: Longhorn instance manager {{$labels.instance_manager}} on {{$labels.node}} has CPU Usage / CPU request is {{$value}}% for
|
||||
more than 5 minutes.
|
||||
summary: Longhorn instance manager {{$labels.instance_manager}} on {{$labels.node}} has CPU Usage / CPU request is over 300%.
|
||||
expr: (longhorn_instance_manager_cpu_usage_millicpu/longhorn_instance_manager_cpu_requests_millicpu) * 100 > 300
|
||||
for: 5m
|
||||
labels:
|
||||
issue: Longhorn instance manager {{$labels.instance_manager}} on {{$labels.node}} consumes 3 times the CPU request.
|
||||
severity: warning
|
||||
- alert: LonghornNodeCPUUsageWarning
|
||||
annotations:
|
||||
description: Longhorn node {{$labels.node}} has CPU Usage / CPU capacity is {{$value}}% for
|
||||
more than 5 minutes.
|
||||
summary: Longhorn node {{$labels.node}} experiences high CPU pressure for more than 5m.
|
||||
expr: (longhorn_node_cpu_usage_millicpu / longhorn_node_cpu_capacity_millicpu) * 100 > 90
|
||||
for: 5m
|
||||
labels:
|
||||
issue: Longhorn node {{$labels.node}} experiences high CPU pressure.
|
||||
severity: warning
|
@@ -1,46 +0,0 @@
|
||||
---
|
||||
apiVersion: codemowers.cloud/v1beta1
|
||||
kind: MinioBucketClaim
|
||||
metadata:
|
||||
name: backup
|
||||
spec:
|
||||
capacity: 1Ti
|
||||
class: external
|
||||
---
|
||||
apiVersion: longhorn.io/v1beta2
|
||||
kind: Setting
|
||||
metadata:
|
||||
name: backup-target
|
||||
namespace: longhorn-system
|
||||
value: 's3://longhorn-system-a4b235c5-7919-4cb0-9949-259e60c579f1@us-east1/'
|
||||
---
|
||||
apiVersion: longhorn.io/v1beta2
|
||||
kind: Setting
|
||||
metadata:
|
||||
name: backup-target-credential-secret
|
||||
namespace: longhorn-system
|
||||
value: 'miniobucket-backup-owner-secrets'
|
||||
---
|
||||
apiVersion: longhorn.io/v1beta1
|
||||
kind: RecurringJob
|
||||
metadata:
|
||||
name: backup
|
||||
namespace: longhorn-system
|
||||
spec:
|
||||
cron: "0 2 * * *"
|
||||
task: backup
|
||||
groups:
|
||||
- default
|
||||
retain: 1
|
||||
concurrency: 4
|
||||
---
|
||||
apiVersion: longhorn.io/v1beta1
|
||||
kind: RecurringJob
|
||||
metadata:
|
||||
name: trim
|
||||
namespace: longhorn-system
|
||||
spec:
|
||||
cron: "0 * * * *"
|
||||
task: trim
|
||||
groups:
|
||||
- default
|
@@ -1,53 +0,0 @@
|
||||
--- longhorn.yaml 2024-07-07 14:16:47.953593433 +0300
|
||||
+++ longhorn.modded 2024-07-07 14:18:51.103452617 +0300
|
||||
@@ -86,14 +86,14 @@
|
||||
storageclass.kubernetes.io/is-default-class: "true"
|
||||
provisioner: driver.longhorn.io
|
||||
allowVolumeExpansion: true
|
||||
- reclaimPolicy: "Delete"
|
||||
+ reclaimPolicy: "Retain"
|
||||
volumeBindingMode: Immediate
|
||||
parameters:
|
||||
- numberOfReplicas: "3"
|
||||
+ numberOfReplicas: "2"
|
||||
staleReplicaTimeout: "30"
|
||||
fromBackup: ""
|
||||
- fsType: "ext4"
|
||||
- dataLocality: "disabled"
|
||||
+ fsType: "xfs"
|
||||
+ dataLocality: "best-effort"
|
||||
unmapMarkSnapChainRemoved: "ignored"
|
||||
---
|
||||
# Source: longhorn/templates/crds.yaml
|
||||
@@ -4379,6 +4379,15 @@
|
||||
app.kubernetes.io/version: v1.6.2
|
||||
app: longhorn-manager
|
||||
spec:
|
||||
+ tolerations:
|
||||
+ - key: dedicated
|
||||
+ operator: Equal
|
||||
+ value: nvr
|
||||
+ effect: NoSchedule
|
||||
+ - key: arch
|
||||
+ operator: Equal
|
||||
+ value: arm64
|
||||
+ effect: NoSchedule
|
||||
containers:
|
||||
- name: longhorn-manager
|
||||
image: longhornio/longhorn-manager:v1.6.2
|
||||
@@ -4484,6 +4493,15 @@
|
||||
app.kubernetes.io/version: v1.6.2
|
||||
app: longhorn-driver-deployer
|
||||
spec:
|
||||
+ tolerations:
|
||||
+ - key: dedicated
|
||||
+ operator: Equal
|
||||
+ value: nvr
|
||||
+ effect: NoSchedule
|
||||
+ - key: arch
|
||||
+ operator: Equal
|
||||
+ value: arm64
|
||||
+ effect: NoSchedule
|
||||
initContainers:
|
||||
- name: wait-longhorn-manager
|
||||
image: longhornio/longhorn-manager:v1.6.2
|
Reference in New Issue
Block a user