No description
Find a file
2022-04-13 18:26:33 +02:00
_templates FEAT: add retry limit 2022-04-09 15:41:17 +02:00
bin FEAT(bin): show install revision instead of revision pattern 2022-04-09 15:41:17 +02:00
k8s-manifests FEAT: merge prometheus chart and CRD definitions 2022-04-13 18:26:33 +02:00
init.yml FEAT: add retry limit 2022-04-09 15:41:17 +02:00
INSTALL.md DOC: re-enable metrics component for k3s install 2022-02-07 22:43:39 +01:00
logo.png FEAT: add logo 2021-11-30 14:49:29 +01:00
README.md FEAT!: move to GitOps 2022-03-31 21:25:21 +02:00

Kubernetes Baseline

Run kubectl apply -f init.yml to install:

Notes

ingress-nginx servicemonitor

For unknown reasons the servicemonitor is not create on helm install and therefore no metrics will be scraped by prometheus. Use helm upgrade -n ingress-nginx ingress-nginx ingress-nginx/ingress-nginx to force an update of t the release.

Linode

PROXY protocol needs to be enabled for ingress-nginx to see the clients IP in ingress log.

Add the PROXY protocol annotation to the ingress-nginx service:

annotations:
    service.beta.kubernetes.io/linode-loadbalancer-proxy-protocol: v2

Update the ingress-nginx ConfigMap to make nginx expect PROXY protocol data:

data:
  use-proxy-protocol: "true"

cert-manager

However, when you have the PROXY protocol enabled, the external load balancer does modify the traffic, prepending the PROXY line before each TCP connection. If you connect directly to the web server internally, bypassing the external load balancer, then it will receive traffic without the PROXY line.

This is particularly a problem when using cert-manager for provisioning SSL certificates.

After enabling the PROXY protocol cert-manager is unable to perform a self check ("propagation check failed", "failed to perform self check GET request").

hairpin-proxy adds PROXY protocol support for internal-to-LoadBalancer traffic for Kubernetes Ingress users, specifically for cert-manager self-checks (no further configuration needed).