prometheus 安装部署

kube-prometheus-stack#

https://artifacthub.io/packages/helm/prometheus-community/kube-prometheus-stack
https://kubernetes.github.io/ingress-nginx/deploy/#quick-start
https://github.com/kubernetes/ingress-nginx

安装 helm

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

安装 ingress-nginx

helm upgrade --install ingress-nginx ingress-nginx \
  --repo https://kubernetes.github.io/ingress-nginx \
  --namespace ingress-nginx --create-namespace \
  --set controller.service.type=ClusterIP \
  --set controller.kind=DaemonSet \
  --set controller.hostNetwork=true \
  --set controller.image.digest="" \
  --set controller.admissionWebhooks.patch.image.digest="" \
  --set controller.ingressClassResource.default=true

安装 kube-prometheus-stack

helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update

helm upgrade --install kube-prometheus-stack prometheus-community/kube-prometheus-stack \
  -n monitoring --create-namespace \
  --set prometheus.ingress.enabled=true \
  --set prometheus.ingress.hosts={prometheus.k8s.local} \
  --set prometheus.ingress.paths={/} \
  --set prometheus.ingress.pathType=Prefix \
  --set alertmanager.ingress.enabled=true \
  --set alertmanager.ingress.hosts={alertmanager.k8s.local} \
  --set alertmanager.ingress.paths={/} \
  --set alertmanager.ingress.pathType=Prefix \
  --set grafana.ingress.enabled=true \
  --set grafana.ingress.hosts={grafana.k8s.local} \
  --set grafana.ingress.paths={/} \
  --set grafana.ingress.pathType=Prefix \
  --set grafana.adminPassword=admin

prometheus-operator#

branch="release-0.11"
namespace=monitoring
domain="example.com"

git clone -b ${branch} https://github.com/prometheus-operator/kube-prometheus.git --depth 1

cd kube-prometheus
kubectl apply --server-side -f manifests/setup
kubectl wait \
    --for condition=Established \
    --all CustomResourceDefinition \
    --namespace=${namespace}
kubectl apply -f manifests/

kubectl -n ${namespace} patch svc prometheus-k8s -p '{"spec":{"type":"NodePort"}}'
kubectl -n ${namespace} patch svc grafana -p '{"spec":{"type":"NodePort"}}'
kubectl -n ${namespace} patch svc alertmanager-main -p '{"spec":{"type":"NodePort"}}'

kubectl create ingress grafana.${domain} -n ${namespace} --class=nginx \
  --rule="grafana.${domain}/*=grafana:3000"

kubectl create ingress prometheus.${domain} -n ${namespace} --class=nginx \
  --rule="prometheus.${domain}/*=prometheus-k8s:9090"

# kubectl delete networkpolicy --all -n monitoring

# 查看 monitoring 命名空间下所有的镜像
kubectl get pods -n ${namespace} -o=jsonpath='{range .items[*]}{range .spec.containers[*]}{.image}{"\n"}{end}{end}' | grep -v '<none>' | sort | uniq
# 保存 monitoring 命名空间下所有的镜像
docker save $( kubectl get pods -n ${namespace} -o=jsonpath='{range .items[*]}{range .spec.containers[*]}{.image}{"\n"}{end}{end}' | grep -v '<none>' | sort | uniq ) -o kube-prometheus-${branch}.tar

作者:xwjh

出处:https://www.cnblogs.com/xwjh/p/17167308.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   小维江湖  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu