added kubernetes (k3s) setup and docs and monitoring
This commit is contained in:
36
kubernetes/alloy-rbac/alloy-rbac.yaml
Normal file
36
kubernetes/alloy-rbac/alloy-rbac.yaml
Normal file
@@ -0,0 +1,36 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: alloy-external
|
||||
namespace: monitoring
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: alloy-external
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["pods","pods/log","namespaces"]
|
||||
verbs: ["get","list","watch"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: alloy-external
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: alloy-external
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: alloy-external
|
||||
namespace: monitoring
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: alloy-external-token
|
||||
namespace: monitoring
|
||||
annotations:
|
||||
kubernetes.io/service-account.name: alloy-external
|
||||
type: kubernetes.io/service-account-token
|
||||
88
kubernetes/kube-state-metrics/kube-state-metrics.yaml
Normal file
88
kubernetes/kube-state-metrics/kube-state-metrics.yaml
Normal file
@@ -0,0 +1,88 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: monitoring
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: kube-state-metrics
|
||||
namespace: monitoring
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: kube-state-metrics
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["configmaps","secrets","nodes","pods","services","resourcequotas","replicationcontrollers","limitranges","persistentvolumeclaims","persistentvolumes","namespaces","endpoints"]
|
||||
verbs: ["list","watch"]
|
||||
- apiGroups: ["apps"]
|
||||
resources: ["statefulsets","daemonsets","deployments","replicasets"]
|
||||
verbs: ["list","watch"]
|
||||
- apiGroups: ["batch"]
|
||||
resources: ["cronjobs","jobs"]
|
||||
verbs: ["list","watch"]
|
||||
- apiGroups: ["autoscaling"]
|
||||
resources: ["horizontalpodautoscalers"]
|
||||
verbs: ["list","watch"]
|
||||
- apiGroups: ["storage.k8s.io"]
|
||||
resources: ["storageclasses"]
|
||||
verbs: ["list","watch"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: kube-state-metrics
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: kube-state-metrics
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: kube-state-metrics
|
||||
namespace: monitoring
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: kube-state-metrics
|
||||
namespace: monitoring
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: kube-state-metrics
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: kube-state-metrics
|
||||
spec:
|
||||
serviceAccountName: kube-state-metrics
|
||||
containers:
|
||||
- name: kube-state-metrics
|
||||
image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.13.0
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: metrics
|
||||
resources:
|
||||
limits:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 20m
|
||||
memory: 32Mi
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: kube-state-metrics
|
||||
namespace: monitoring
|
||||
spec:
|
||||
type: NodePort
|
||||
selector:
|
||||
app: kube-state-metrics
|
||||
ports:
|
||||
- port: 8080
|
||||
targetPort: 8080
|
||||
nodePort: 30900
|
||||
41
kubernetes/kube-state-metrics/prometheus-rbac.yaml
Normal file
41
kubernetes/kube-state-metrics/prometheus-rbac.yaml
Normal file
@@ -0,0 +1,41 @@
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: prometheus-external
|
||||
namespace: monitoring
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
name: prometheus-external
|
||||
rules:
|
||||
- apiGroups: [""]
|
||||
resources: ["nodes","nodes/proxy","nodes/metrics","services","endpoints","pods"]
|
||||
verbs: ["get","list","watch"]
|
||||
- apiGroups: [""]
|
||||
resources: ["configmaps"]
|
||||
verbs: ["get"]
|
||||
- nonResourceURLs: ["/metrics"]
|
||||
verbs: ["get"]
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: prometheus-external
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: prometheus-external
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: prometheus-external
|
||||
namespace: monitoring
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: prometheus-external-token
|
||||
namespace: monitoring
|
||||
annotations:
|
||||
kubernetes.io/service-account.name: prometheus-external
|
||||
type: kubernetes.io/service-account-token
|
||||
38
kubernetes/resource-limits/resource-limits.yaml
Normal file
38
kubernetes/resource-limits/resource-limits.yaml
Normal file
@@ -0,0 +1,38 @@
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: apps
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: LimitRange
|
||||
metadata:
|
||||
name: apps-limits
|
||||
namespace: apps
|
||||
spec:
|
||||
limits:
|
||||
- type: Container
|
||||
default:
|
||||
cpu: "200m"
|
||||
memory: "256Mi"
|
||||
defaultRequest:
|
||||
cpu: "50m"
|
||||
memory: "64Mi"
|
||||
max:
|
||||
cpu: "500m"
|
||||
memory: "512Mi"
|
||||
min:
|
||||
cpu: "10m"
|
||||
memory: "16Mi"
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ResourceQuota
|
||||
metadata:
|
||||
name: apps-quota
|
||||
namespace: apps
|
||||
spec:
|
||||
hard:
|
||||
requests.cpu: "1"
|
||||
requests.memory: "768Mi"
|
||||
limits.cpu: "1.5"
|
||||
limits.memory: "1.5Gi"
|
||||
pods: "10"
|
||||
Reference in New Issue
Block a user