Last active
September 28, 2023 12:26
-
-
Save tapih/ab293f339eaa56130931ce60825ce8b2 to your computer and use it in GitHub Desktop.
Loki manifests
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apiVersion: v1 | |
kind: Namespace | |
metadata: | |
name: loki-stack | |
--- | |
apiVersion: apps/v1 | |
kind: StatefulSet | |
metadata: | |
name: loki | |
namespace: loki-stack | |
labels: | |
app.kubernetes.io/name: loki | |
spec: | |
replicas: 1 | |
selector: | |
matchLabels: | |
app.kubernetes.io/name: loki | |
serviceName: loki-headless | |
template: | |
metadata: | |
labels: | |
app.kubernetes.io/name: loki | |
annotations: | |
prometheus.io/port: http-metrics | |
prometheus.io/scrape: "true" | |
spec: | |
containers: | |
- args: | |
- -config.file=/etc/loki/loki.yaml | |
image: grafana/loki:v0.2.0 | |
imagePullPolicy: IfNotPresent | |
livenessProbe: | |
failureThreshold: 3 | |
httpGet: | |
path: /ready | |
port: http-metrics | |
scheme: HTTP | |
initialDelaySeconds: 45 | |
periodSeconds: 10 | |
successThreshold: 1 | |
timeoutSeconds: 1 | |
name: loki | |
ports: | |
- containerPort: 3100 | |
name: http-metrics | |
protocol: TCP | |
readinessProbe: | |
failureThreshold: 3 | |
httpGet: | |
path: /ready | |
port: http-metrics | |
scheme: HTTP | |
initialDelaySeconds: 45 | |
periodSeconds: 10 | |
successThreshold: 1 | |
timeoutSeconds: 1 | |
volumeMounts: | |
- mountPath: /etc/loki | |
name: config | |
- mountPath: /data | |
name: storage | |
securityContext: | |
fsGroup: 10001 | |
runAsGroup: 10001 | |
runAsNonRoot: true | |
runAsUser: 10001 | |
volumes: | |
- name: config | |
secret: | |
defaultMode: 420 | |
secretName: loki | |
- emptyDir: {} | |
name: storage | |
--- | |
apiVersion: v1 | |
kind: Secret | |
metadata: | |
name: loki | |
namespace: loki-stack | |
labels: | |
app.kubernetes.io/name: loki | |
type: Opaque | |
data: | |
loki.yaml: YXV0aF9lbmFibGVkOiBmYWxzZQpjaHVua19zdG9yZV9jb25maWc6CiAgbWF4X2xvb2tfYmFja19wZXJpb2Q6IDAKaW5nZXN0ZXI6CiAgY2h1bmtfYmxvY2tfc2l6ZTogMjYyMTQ0CiAgY2h1bmtfaWRsZV9wZXJpb2Q6IDE1bQogIGxpZmVjeWNsZXI6CiAgICByaW5nOgogICAgICBrdnN0b3JlOgogICAgICAgIHN0b3JlOiBpbm1lbW9yeQogICAgICByZXBsaWNhdGlvbl9mYWN0b3I6IDEKbGltaXRzX2NvbmZpZzoKICBlbmZvcmNlX21ldHJpY19uYW1lOiBmYWxzZQogIHJlamVjdF9vbGRfc2FtcGxlczogdHJ1ZQogIHJlamVjdF9vbGRfc2FtcGxlc19tYXhfYWdlOiAxNjhoCnNjaGVtYV9jb25maWc6CiAgY29uZmlnczoKICAtIGZyb206ICIyMDE4LTA0LTE1IgogICAgaW5kZXg6CiAgICAgIHBlcmlvZDogMTY4aAogICAgICBwcmVmaXg6IGluZGV4XwogICAgb2JqZWN0X3N0b3JlOiBmaWxlc3lzdGVtCiAgICBzY2hlbWE6IHY5CiAgICBzdG9yZTogYm9sdGRiCnNlcnZlcjoKICBodHRwX2xpc3Rlbl9wb3J0OiAzMTAwCnN0b3JhZ2VfY29uZmlnOgogIGJvbHRkYjoKICAgIGRpcmVjdG9yeTogL2RhdGEvbG9raS9pbmRleAogIGZpbGVzeXN0ZW06CiAgICBkaXJlY3Rvcnk6IC9kYXRhL2xva2kvY2h1bmtzCnRhYmxlX21hbmFnZXI6CiAgcmV0ZW50aW9uX2RlbGV0ZXNfZW5hYmxlZDogZmFsc2UKICByZXRlbnRpb25fcGVyaW9kOiAwCg== | |
--- | |
apiVersion: extensions/v1beta1 | |
kind: DaemonSet | |
metadata: | |
name: loki-promtail | |
namespace: loki-stack | |
labels: | |
app.kubernetes.io/name: promtail | |
spec: | |
selector: | |
matchLabels: | |
app.kubernetes.io/name: promtail | |
template: | |
metadata: | |
labels: | |
app.kubernetes.io/name: promtail | |
annotations: | |
prometheus.io/port: http-metrics | |
prometheus.io/scrape: "true" | |
spec: | |
containers: | |
- args: | |
- -config.file=/etc/promtail/promtail.yaml | |
- -client.url=http://loki:3100/api/prom/push | |
env: | |
- name: HOSTNAME | |
valueFrom: | |
fieldRef: | |
apiVersion: v1 | |
fieldPath: spec.nodeName | |
image: quay.io/tapih/promtail:v0.2.0.5 | |
imagePullPolicy: IfNotPresent | |
name: promtail | |
ports: | |
- containerPort: 3101 | |
name: http-metrics | |
protocol: TCP | |
readinessProbe: | |
failureThreshold: 5 | |
httpGet: | |
path: /ready | |
port: http-metrics | |
scheme: HTTP | |
initialDelaySeconds: 10 | |
periodSeconds: 10 | |
successThreshold: 1 | |
timeoutSeconds: 1 | |
resources: {} | |
securityContext: | |
procMount: Default | |
readOnlyRootFilesystem: true | |
runAsGroup: 0 | |
runAsUser: 0 | |
terminationMessagePath: /dev/termination-log | |
terminationMessagePolicy: File | |
volumeMounts: | |
- mountPath: /etc/promtail | |
name: config | |
- mountPath: /run/promtail | |
name: run | |
- mountPath: /var/lib/docker/containers | |
name: docker | |
readOnly: true | |
- mountPath: /var/log/pods | |
name: pods | |
readOnly: true | |
- mountPath: /var/log/journal | |
name: journal | |
readOnly: true | |
serviceAccountName: loki-promtail | |
tolerations: | |
- effect: NoSchedule | |
key: node-role.kubernetes.io/master | |
volumes: | |
- configMap: | |
defaultMode: 420 | |
name: loki-promtail | |
name: config | |
- hostPath: | |
path: /run/promtail | |
type: "" | |
name: run | |
- hostPath: | |
path: /var/lib/docker/containers | |
type: "" | |
name: docker | |
- hostPath: | |
path: /var/log/pods | |
type: "" | |
name: pods | |
- hostPath: | |
path: /var/log/journal | |
type: "" | |
name: journal | |
--- | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: loki-promtail | |
namespace: loki-stack | |
labels: | |
app.kubernetes.io/name: promtail | |
data: | |
promtail.yaml: | | |
client: | |
backoff_config: | |
maxbackoff: 5s | |
maxretries: 5 | |
minbackoff: 100ms | |
batchsize: 102400 | |
batchwait: 1s | |
external_labels: {} | |
timeout: 10s | |
positions: | |
filename: /run/promtail/positions.yaml | |
server: | |
http_listen_port: 3101 | |
target_config: | |
sync_period: 10s | |
scrape_configs: | |
- job_name: journal | |
journal: | |
max_age: 12h | |
path: /var/log/journal | |
labels: | |
job: systemd-journal | |
relabel_configs: | |
- source_labels: | |
- __journal__systemd_unit | |
target_label: unit | |
- source_labels: | |
- __journal__hostname | |
target_label: hostname | |
- job_name: kubernetes-pods-name | |
pipeline_stages: | |
- docker: {} | |
kubernetes_sd_configs: | |
- role: pod | |
relabel_configs: | |
- source_labels: | |
- __meta_kubernetes_pod_label_name | |
target_label: __service__ | |
- source_labels: | |
- __meta_kubernetes_pod_node_name | |
target_label: __host__ | |
- action: drop | |
regex: ^$ | |
source_labels: | |
- __service__ | |
- action: replace | |
replacement: $1 | |
separator: / | |
source_labels: | |
- __meta_kubernetes_namespace | |
- __service__ | |
target_label: job | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_namespace | |
target_label: namespace | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_name | |
target_label: instance | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_container_name | |
target_label: container_name | |
- action: labelmap | |
regex: __meta_kubernetes_pod_label_(.+) | |
- replacement: /var/log/pods/*$1/*.log | |
separator: / | |
source_labels: | |
- __meta_kubernetes_pod_uid | |
- __meta_kubernetes_pod_container_name | |
target_label: __path__ | |
- job_name: kubernetes-pods-app | |
pipeline_stages: | |
- docker: {} | |
kubernetes_sd_configs: | |
- role: pod | |
relabel_configs: | |
- action: drop | |
regex: .+ | |
source_labels: | |
- __meta_kubernetes_pod_label_name | |
- source_labels: | |
- __meta_kubernetes_pod_label_app | |
target_label: __service__ | |
- source_labels: | |
- __meta_kubernetes_pod_node_name | |
target_label: __host__ | |
- action: drop | |
regex: ^$ | |
source_labels: | |
- __service__ | |
- action: replace | |
replacement: $1 | |
separator: / | |
source_labels: | |
- __meta_kubernetes_namespace | |
- __service__ | |
target_label: job | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_namespace | |
target_label: namespace | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_name | |
target_label: instance | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_container_name | |
target_label: container_name | |
- action: labelmap | |
regex: __meta_kubernetes_pod_label_(.+) | |
- replacement: /var/log/pods/*$1/*.log | |
separator: / | |
source_labels: | |
- __meta_kubernetes_pod_uid | |
- __meta_kubernetes_pod_container_name | |
target_label: __path__ | |
- job_name: kubernetes-pods-direct-controllers | |
pipeline_stages: | |
- docker: {} | |
kubernetes_sd_configs: | |
- role: pod | |
relabel_configs: | |
- action: drop | |
regex: .+ | |
separator: '' | |
source_labels: | |
- __meta_kubernetes_pod_label_name | |
- __meta_kubernetes_pod_label_app | |
- action: drop | |
regex: ^([0-9a-z-.]+)(-[0-9a-f]{8,10})$ | |
source_labels: | |
- __meta_kubernetes_pod_controller_name | |
- source_labels: | |
- __meta_kubernetes_pod_controller_name | |
target_label: __service__ | |
- source_labels: | |
- __meta_kubernetes_pod_node_name | |
target_label: __host__ | |
- action: drop | |
regex: ^$ | |
source_labels: | |
- __service__ | |
- action: replace | |
replacement: $1 | |
separator: / | |
source_labels: | |
- __meta_kubernetes_namespace | |
- __service__ | |
target_label: job | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_namespace | |
target_label: namespace | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_name | |
target_label: instance | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_container_name | |
target_label: | |
container_name | |
- action: labelmap | |
regex: __meta_kubernetes_pod_label_(.+) | |
- replacement: /var/log/pods/*$1/*.log | |
separator: / | |
source_labels: | |
- __meta_kubernetes_pod_uid | |
- __meta_kubernetes_pod_container_name | |
target_label: __path__ | |
- job_name: kubernetes-pods-indirect-controller | |
pipeline_stages: | |
- docker: {} | |
kubernetes_sd_configs: | |
- role: pod | |
relabel_configs: | |
- action: drop | |
regex: .+ | |
separator: '' | |
source_labels: | |
- __meta_kubernetes_pod_label_name | |
- __meta_kubernetes_pod_label_app | |
- action: keep | |
regex: ^([0-9a-z-.]+)(-[0-9a-f]{8,10})$ | |
source_labels: | |
- __meta_kubernetes_pod_controller_name | |
- action: replace | |
regex: ^([0-9a-z-.]+)(-[0-9a-f]{8,10})$ | |
source_labels: | |
- __meta_kubernetes_pod_controller_name | |
target_label: __service__ | |
- source_labels: | |
- __meta_kubernetes_pod_node_name | |
target_label: __host__ | |
- action: drop | |
regex: ^$ | |
source_labels: | |
- __service__ | |
- action: replace | |
replacement: $1 | |
separator: / | |
source_labels: | |
- __meta_kubernetes_namespace | |
- __service__ | |
target_label: job | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_namespace | |
target_label: namespace | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_name | |
target_label: instance | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_container_name | |
target_label: container_name | |
- action: labelmap | |
regex: __meta_kubernetes_pod_label_(.+) | |
- replacement: /var/log/pods/*$1/*.log | |
separator: / | |
source_labels: | |
- __meta_kubernetes_pod_uid | |
- __meta_kubernetes_pod_container_name | |
target_label: __path__ | |
- job_name: kubernetes-pods-static | |
pipeline_stages: | |
- docker: {} | |
kubernetes_sd_configs: | |
- role: pod | |
relabel_configs: | |
- action: drop | |
regex: ^$ | |
source_labels: | |
- __meta_kubernetes_pod_annotation_kubernetes_io_config_mirror | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_label_component | |
target_label: __service__ | |
- source_labels: | |
- __meta_kubernetes_pod_node_name | |
target_label: __host__ | |
- action: drop | |
regex: ^$ | |
source_labels: | |
- __service__ | |
- action: replace | |
replacement: $1 | |
separator: / | |
source_labels: | |
- __meta_kubernetes_namespace | |
- __service__ | |
target_label: job | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_namespace | |
target_label: namespace | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_name | |
target_label: instance | |
- action: replace | |
source_labels: | |
- __meta_kubernetes_pod_container_name | |
target_label: container_name | |
- action: labelmap | |
regex: __meta_kubernetes_pod_label_(.+) | |
- replacement: /var/log/pods/*$1/*.log | |
separator: / | |
source_labels: | |
- __meta_kubernetes_pod_annotation_kubernetes_io_config_mirror | |
- __meta_kubernetes_pod_container_name | |
target_label: __path__ | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: loki | |
namespace: loki-stack | |
labels: | |
app.kubernetes.io/name: loki | |
spec: | |
type: ClusterIP | |
ports: | |
- name: http-metrics | |
port: 3100 | |
protocol: TCP | |
targetPort: http-metrics | |
selector: | |
app.kubernetes.io/name: loki | |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: loki-headless | |
namespace: loki-stack | |
labels: | |
app.kubernetes.io/name: loki | |
spec: | |
type: ClusterIP | |
clusterIP: None | |
ports: | |
- name: http-metrics | |
port: 3100 | |
protocol: TCP | |
targetPort: http-metrics | |
selector: | |
app.kubernetes.io/name: loki | |
--- | |
apiVersion: v1 | |
kind: ServiceAccount | |
metadata: | |
name: loki-promtail | |
namespace: loki-stack | |
labels: | |
app.kubernetes.io/name: promtail | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1 | |
kind: ClusterRole | |
metadata: | |
name: loki-promtail-clusterrole | |
labels: | |
app.kubernetes.io/name: promtail | |
rules: | |
- apiGroups: | |
- "" | |
resources: | |
- nodes | |
- nodes/proxy | |
- services | |
- endpoints | |
- pods | |
verbs: | |
- get | |
- watch | |
- list | |
--- | |
apiVersion: rbac.authorization.k8s.io/v1 | |
kind: ClusterRoleBinding | |
metadata: | |
name: loki-promtail-clusterrolebinding | |
labels: | |
app.kubernetes.io/name: promtail | |
roleRef: | |
apiGroup: rbac.authorization.k8s.io | |
kind: ClusterRole | |
name: loki-promtail-clusterrole | |
subjects: | |
- kind: ServiceAccount | |
name: loki-promtail | |
namespace: loki-stack | |
--- | |
apiVersion: v1 | |
kind: Pod | |
metadata: | |
name: logcli | |
namespace: loki-stack | |
labels: | |
app.kubernetes.io/name: logcli | |
spec: | |
containers: | |
- name: logcli | |
image: quay.io/tapih/logcli:v0.2.0.2 | |
env: | |
- name: GRAFANA_ADDR | |
value: http://loki:3100 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Failed to pull image "quay.io/tapih/promtail:v0.2.0.5": rpc error: code = Unknown desc = failed to pull and unpack image "quay.io/tapih/promtail:v0.2