Skip to content

Commit b0e5ccb

Browse files
committed
修改部署
1 parent e4b8bb4 commit b0e5ccb

11 files changed

+317
-235
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,6 @@
11
- https://gongzhao1.github.io/Kubernetes%E9%9B%86%E7%BE%A4%E6%97%A5%E5%BF%97%E6%94%B6%E9%9B%86-Filebeat-ELK/
2+
3+
4+
```shell
5+
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml
6+
```

apps/grafana/grafana.yaml

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,25 @@
22
apiVersion: storage.k8s.io/v1
33
kind: StorageClass
44
metadata:
5-
name: example-kubernetes-app-grafana-storage
5+
name: grafana-storage
6+
namespace: monitoring
67
provisioner: kubernetes.io/no-provisioner
78
volumeBindingMode: WaitForFirstConsumer
89

910
---
1011
apiVersion: v1
1112
kind: PersistentVolume
1213
metadata:
13-
name: example-kubernetes-app-grafana-pv
14+
name: grafana-pv
15+
namespace: monitoring
1416
spec:
1517
capacity:
1618
storage: 2Gi
1719
volumeMode: Filesystem # Filesystem(文件系统) Block(块)
1820
accessModes:
1921
- ReadWriteOnce # 卷可以被一个节点以读写方式挂载
2022
persistentVolumeReclaimPolicy: Delete
21-
storageClassName: example-kubernetes-app-grafana-storage
23+
storageClassName: grafana-storage
2224
local:
2325
path: /Users/toquery/data/grafana-data
2426
nodeAffinity:
@@ -36,10 +38,11 @@ apiVersion: v1
3638
kind: PersistentVolumeClaim
3739
metadata:
3840
name: grafana-pvc
41+
namespace: monitoring
3942
spec:
4043
accessModes:
4144
- ReadWriteOnce
42-
storageClassName: example-kubernetes-app-grafana-storage
45+
storageClassName: grafana-storage
4346
resources:
4447
requests:
4548
storage: 1Gi
@@ -50,6 +53,7 @@ metadata:
5053
labels:
5154
app: grafana
5255
name: grafana
56+
namespace: monitoring
5357
spec:
5458
selector:
5559
matchLabels:
@@ -71,28 +75,6 @@ spec:
7175
- containerPort: 3000
7276
name: http-grafana
7377
protocol: TCP
74-
# readinessProbe:
75-
# failureThreshold: 3
76-
# httpGet:
77-
# path: /robots.txt
78-
# port: 3000
79-
# scheme: HTTP
80-
# initialDelaySeconds: 10
81-
# periodSeconds: 30
82-
# successThreshold: 1
83-
# timeoutSeconds: 2
84-
# livenessProbe:
85-
# failureThreshold: 3
86-
# initialDelaySeconds: 30
87-
# periodSeconds: 10
88-
# successThreshold: 1
89-
# tcpSocket:
90-
# port: 3000
91-
# timeoutSeconds: 1
92-
resources:
93-
requests:
94-
cpu: 250m
95-
memory: 750Mi
9678
volumeMounts:
9779
- mountPath: /var/lib/grafana
9880
name: grafana-pv
@@ -104,7 +86,8 @@ spec:
10486
apiVersion: v1
10587
kind: Service
10688
metadata:
107-
name: grafana
89+
name: grafana-service
90+
namespace: monitoring
10891
spec:
10992
ports:
11093
- port: 3000
@@ -113,4 +96,27 @@ spec:
11396
selector:
11497
app: grafana
11598
sessionAffinity: None
116-
type: NodePort
99+
type: ClusterIP
100+
---
101+
## Nginx Ingress
102+
## Follow https://devopscube.com/setup-ingress-kubernetes-nginx-controller/
103+
apiVersion: networking.k8s.io/v1
104+
kind: Ingress
105+
metadata:
106+
name: grafana-ui
107+
namespace: monitoring
108+
annotations:
109+
kubernetes.io/ingress.class: nginx
110+
spec:
111+
rules:
112+
# Use the host you used in your kubernetes Ingress Configurations
113+
- host: grafana.example-kubernetes.com
114+
http:
115+
paths:
116+
- path: /
117+
pathType: Prefix
118+
backend:
119+
service:
120+
name: grafana-service
121+
port:
122+
number: 3000

apps/ingress-controller-nginx/apple.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ kind: Pod
22
apiVersion: v1
33
metadata:
44
name: apple-app
5-
namespace: example-kubernetes
5+
# namespace: example-kubernetes
66
labels:
77
app: apple
88
spec:
@@ -18,7 +18,7 @@ kind: Service
1818
apiVersion: v1
1919
metadata:
2020
name: apple-service
21-
namespace: example-kubernetes
21+
# namespace: example-kubernetes
2222
spec:
2323
selector:
2424
app: apple

apps/ingress-controller-nginx/banana.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ kind: Pod
22
apiVersion: v1
33
metadata:
44
name: banana-app
5-
namespace: example-kubernetes
5+
# namespace: example-kubernetes
66
labels:
77
app: banana
88
spec:
@@ -18,7 +18,7 @@ kind: Service
1818
apiVersion: v1
1919
metadata:
2020
name: banana-service
21-
namespace: example-kubernetes
21+
# namespace: example-kubernetes
2222
spec:
2323
selector:
2424
app: banana

apps/ingress-controller-nginx/ingress.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ apiVersion: networking.k8s.io/v1
22
kind: Ingress
33
metadata:
44
name: example-ingress
5-
namespace: example-kubernetes
5+
# namespace: example-kubernetes
66
# annotations:ingress-controller-kong
77
# kubernetes.io/ingress.class: "kong" # 控制器使用nginx
88
spec:

apps/prometheus/01.prometheus-ns.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: monitoring
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
apiVersion: rbac.authorization.k8s.io/v1
3+
kind: ClusterRole
4+
metadata:
5+
name: prometheus
6+
namespace: monitoring
7+
rules:
8+
- apiGroups: [""]
9+
resources:
10+
- nodes
11+
- nodes/proxy
12+
- services
13+
- endpoints
14+
- pods
15+
verbs:
16+
- get
17+
- list
18+
- watch
19+
- apiGroups:
20+
- extensions
21+
resources:
22+
- ingresses
23+
verbs:
24+
- get
25+
- list
26+
- watch
27+
- nonResourceURLs:
28+
- "/metrics"
29+
verbs:
30+
- get
31+
32+
---
33+
apiVersion: rbac.authorization.k8s.io/v1
34+
kind: ClusterRoleBinding
35+
metadata:
36+
name: prometheus
37+
namespace: monitoring
38+
roleRef:
39+
apiGroup: rbac.authorization.k8s.io
40+
kind: ClusterRole
41+
name: prometheus
42+
subjects:
43+
- kind: ServiceAccount
44+
namespace: default
45+
name: default

apps/prometheus/03.prometheus-cm.yaml

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,159 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: prometheus-server-conf
5+
namespace: monitoring
6+
labels:
7+
name: prometheus-server-conf
8+
data:
9+
prometheus.rules: |-
10+
groups:
11+
- name: devopscube demo alert
12+
rules:
13+
- alert: High Pod Memory
14+
expr: sum(container_memory_usage_bytes) > 1
15+
for: 1m
16+
labels:
17+
severity: slack
18+
annotations:
19+
summary: High Memory Usage
20+
prometheus.yml: |-
21+
global:
22+
scrape_interval: 5s
23+
evaluation_interval: 5s
24+
rule_files:
25+
- /etc/prometheus/prometheus.rules
26+
alerting:
27+
alertmanagers:
28+
- scheme: http
29+
static_configs:
30+
- targets:
31+
- "alertmanager.monitoring.svc:9093"
32+
33+
scrape_configs:
34+
- job_name: 'node-exporter'
35+
kubernetes_sd_configs:
36+
- role: endpoints
37+
relabel_configs:
38+
- source_labels: [__meta_kubernetes_endpoints_name]
39+
regex: 'node-exporter'
40+
action: keep
41+
42+
- job_name: 'kubernetes-apiservers'
43+
44+
kubernetes_sd_configs:
45+
- role: endpoints
46+
scheme: https
47+
48+
tls_config:
49+
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
50+
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
51+
52+
relabel_configs:
53+
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
54+
action: keep
55+
regex: default;kubernetes;https
56+
57+
- job_name: 'kubernetes-nodes'
58+
59+
scheme: https
60+
61+
tls_config:
62+
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
63+
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
64+
65+
kubernetes_sd_configs:
66+
- role: node
67+
68+
relabel_configs:
69+
- action: labelmap
70+
regex: __meta_kubernetes_node_label_(.+)
71+
- target_label: __address__
72+
replacement: kubernetes.default.svc:443
73+
- source_labels: [__meta_kubernetes_node_name]
74+
regex: (.+)
75+
target_label: __metrics_path__
76+
replacement: /api/v1/nodes/${1}/proxy/metrics
77+
78+
- job_name: 'kubernetes-pods'
79+
80+
kubernetes_sd_configs:
81+
- role: pod
82+
83+
relabel_configs:
84+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
85+
action: keep
86+
regex: true
87+
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
88+
action: replace
89+
target_label: __metrics_path__
90+
regex: (.+)
91+
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
92+
action: replace
93+
regex: ([^:]+)(?::\d+)?;(\d+)
94+
replacement: $1:$2
95+
target_label: __address__
96+
- action: labelmap
97+
regex: __meta_kubernetes_pod_label_(.+)
98+
- source_labels: [__meta_kubernetes_namespace]
99+
action: replace
100+
target_label: kubernetes_namespace
101+
- source_labels: [__meta_kubernetes_pod_name]
102+
action: replace
103+
target_label: kubernetes_pod_name
104+
105+
- job_name: 'kube-state-metrics'
106+
static_configs:
107+
- targets: ['kube-state-metrics.kube-system.svc.cluster.local:8080']
108+
109+
- job_name: 'kubernetes-cadvisor'
110+
111+
scheme: https
112+
113+
tls_config:
114+
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
115+
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
116+
117+
kubernetes_sd_configs:
118+
- role: node
119+
120+
relabel_configs:
121+
- action: labelmap
122+
regex: __meta_kubernetes_node_label_(.+)
123+
- target_label: __address__
124+
replacement: kubernetes.default.svc:443
125+
- source_labels: [__meta_kubernetes_node_name]
126+
regex: (.+)
127+
target_label: __metrics_path__
128+
replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
129+
130+
- job_name: 'kubernetes-service-endpoints'
131+
132+
kubernetes_sd_configs:
133+
- role: endpoints
134+
135+
relabel_configs:
136+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
137+
action: keep
138+
regex: true
139+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
140+
action: replace
141+
target_label: __scheme__
142+
regex: (https?)
143+
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
144+
action: replace
145+
target_label: __metrics_path__
146+
regex: (.+)
147+
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
148+
action: replace
149+
target_label: __address__
150+
regex: ([^:]+)(?::\d+)?;(\d+)
151+
replacement: $1:$2
152+
- action: labelmap
153+
regex: __meta_kubernetes_service_label_(.+)
154+
- source_labels: [__meta_kubernetes_namespace]
155+
action: replace
156+
target_label: kubernetes_namespace
157+
- source_labels: [__meta_kubernetes_service_name]
158+
action: replace
159+
target_label: kubernetes_name

0 commit comments

Comments
 (0)