1. 系統(tǒng)信息參數(shù)說明
[root@minikube ~]# uname -a
Linux minikube 5.14.0-284.11.1.el9_2.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 9 17:09:15 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@minikube ~]# hostnamectl
Static hostname: minikube
Icon name: computer-vm
Chassis: vm ??
Machine ID: 8f112fe303914f1e8e27c6b68d205117
Boot ID: 75046d09558f47d9a823fff033cb1fe1
Virtualization: vmware
Operating System: Rocky Linux 9.2 (Blue Onyx)
CPE OS Name: cpe:/o:rocky:rocky:9::baseos
Kernel: Linux 5.14.0-284.11.1.el9_2.x86_64
Architecture: x86-64
Hardware Vendor: VMware, Inc.
Hardware Model: VMware Virtual Platform
Firmware Version: 6.00
[root@minikube ~]# free -g
total used free shared buff/cache available
Mem: 7 2 1 0 4 5
Swap: 0 0 0
[root@minikube ~]# lscpu
2. Docker安裝
# 移除舊的docker
[root@minikube ~]# sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安裝第三方依賴庫
[root@minikube ~]# sudo yum install -y yum-utils
# 添加Docker-ce倉庫
[root@minikube ~]# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安裝docker相關(guān)安裝包
[root@minikube ~]# sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 啟動(dòng)docker服務(wù)
[root@minikube ~]# sudo systemctl start docker
3. minikube安裝
[root@minikube ~]# curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-latest.x86_64.rpm
[root@minikube ~]# sudo rpm -Uvh minikube-latest.x86_64.rpm
4. kubectl安裝
[root@minikube ~]# yum install -y kubectl
5. Helm安裝
[root@minikube ~]# curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
[root@minikube ~]# chmod 700 get_helm.sh
[root@minikube ~]# ./get_helm.sh
6. 啟動(dòng)Kubernetes集群v1.28.3
[root@minikube ~]# minikube start --kubernetes-version=v1.28.3 --memory=6g
?? Rocky 9.2 上的 minikube v1.32.0
? 當(dāng)提供 --force 參數(shù)時(shí),minikube 將跳過各種驗(yàn)證,這可能會(huì)導(dǎo)致意外行為
? 自動(dòng)選擇 docker 驅(qū)動(dòng)。其他選項(xiàng):none, ssh
?? The "docker" driver should not be used with root privileges. If you wish to continue as root, use --force.
?? 如果您在VM中運(yùn)行 minikube,請(qǐng)考慮使用 --driver=none:
?? https://minikube.sigs.k8s.io/docs/reference/drivers/none/
?? 使用具有 root 權(quán)限的 Docker 驅(qū)動(dòng)程序
?? 正在集群 minikube 中啟動(dòng)控制平面節(jié)點(diǎn) minikube
?? 正在拉取基礎(chǔ)鏡像 ...
?? 正在下載 Kubernetes v1.28.3 的預(yù)加載文件...
> preloaded-images-k8s-v18-v1...: 403.35 MiB / 403.35 MiB 100.00% 1.60 Mi
> gcr.io/k8s-minikube/kicbase...: 453.90 MiB / 453.90 MiB 100.00% 1.70 Mi
?? Creating docker container (CPUs=2, Memory=2200MB) ...
?? 正在 Docker 24.0.7 中準(zhǔn)備 Kubernetes v1.28.3…
? 正在生成證書和密鑰...
? 正在啟動(dòng)控制平面...
? 配置 RBAC 規(guī)則 ...
?? 配置 bridge CNI (Container Networking Interface) ...
?? 正在驗(yàn)證 Kubernetes 組件...
? 正在使用鏡像 gcr.io/k8s-minikube/storage-provisioner:v5
?? 啟用插件: storage-provisioner, default-storageclass
?? 完成!kubectl 現(xiàn)在已配置,默認(rèn)使用"minikube"集群和"default"命名空間
# 查看集群狀態(tài)
[root@minikube ~]# minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
7. 使用helm安裝Prometheus
[root@minikube ~]# kubectl create ns monitoring
namespace/monitoring created
[root@minikube ~]# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
"prometheus-community" has been added to your repositories
[root@minikube ~]# helm repo list
NAME URL
prometheus-community https://prometheus-community.github.io/helm-charts
[root@minikube ~]# helm search repo prometheus-community
[root@minikube ~]# helm install prometheus prometheus-community/prometheus
[root@minikube ~]# kubectl expose service prometheus-server --type=NodePort --target-port=9090 --name=prometheus-server-np
通過運(yùn)行以下命令來檢查狀態(tài)
[root@minikube ~]# kubectl get pods -l app.kubernetes.io/instance=prometheus
NAME READY STATUS RESTARTS AGE
prometheus-alertmanager-0 1/1 Running 0 3h15m
prometheus-kube-state-metrics-6b464f5b88-8p49t 1/1 Running 0 3h15m
prometheus-prometheus-node-exporter-b6bzv 1/1 Running 0 3h15m
prometheus-prometheus-pushgateway-7857c44f49-zjddf 1/1 Running 0 3h15m
prometheus-server-6b68fbd54b-df64z 2/2 Running 0 3h15m
由于使用的是 Minikube,第二個(gè)命令prometheus-server
使用NodePort
. 這樣,當(dāng) Pod 準(zhǔn)備就緒時(shí),就可以輕松訪問 Prometheus Web 界面:
minikube service prometheus-server-np
[root@minikube ~]# kubectl port-forward svc/prometheus-server-np 30944:80 --address='0.0.0.0'
Forwarding from 0.0.0.0:30944 -> 9090
http://192.168.20.20:30944/targets
8. 使用helm安裝Grafana
# 將存儲(chǔ)庫添加到 helm 配置中
[root@minikube ~]# helm repo add grafana https://grafana.github.io/helm-charts
"grafana" has been added to your repositories
[root@minikube ~]# helm repo list
NAME URL
prometheus-community https://prometheus-community.github.io/helm-charts
grafana https://grafana.github.io/helm-charts
[root@minikube ~]# helm search repo grafana
# 使用提供的圖表安裝 Grafana
[root@minikube ~]# helm install grafana grafana/grafana
[root@minikube ~]# kubectl expose service grafana --type=NodePort --target-port=3000 --name=grafana-np
由于使用的是 Minikube,為了輕松訪問 Grafana 的 Web 界面,將該服務(wù)公開為NodePort
。
注意: Grafana 默認(rèn)受密碼保護(hù),為了檢索admin
用戶密碼,我們可以運(yùn)行以下命令:
kubectl get secret --namespace default grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
wYISKh0bkkLuQm0TOEOUoVx4M1AW6q70JlOBABS0
現(xiàn)在可以使用檢索到的用戶和密碼加載 Grafana Web 界面
[root@minikube ~]# kubectl port-forward svc/grafana-np 30264:80 --address='0.0.0.0'
Forwarding from 0.0.0.0:30264 -> 3000
9. Grafana的Dashboard設(shè)定
root@minikube ~]# kubectl get secret --namespace monitoring grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
uJEkCoHDGjfkUdvOP8i3djaIvPOggK2tMZcdPKWa
[root@minikube ~]# export POD_NAME=$(kubectl get pods --namespace monitoring -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=grafana" -o jsonpath="{.items[0].metadata.name}")
[root@minikube ~]# kubectl --namespace monitoring port-forward $POD_NAME 3000
Forwarding from 127.0.0.1:3000 -> 3000
Forwarding from [::1]:3000 -> 3000
10. 設(shè)定Prometheus數(shù)據(jù)源
11. 導(dǎo)入Kubernetes Dashboard
12. 實(shí)驗(yàn)過程中的常見問題
Grafana 忘記登陸密碼 重置密碼
[root@minikube ~]# kubectl get pods -A
[root@minikube ~]# kubectl exec -it grafana-5657d4fc47-jkdx6 -n default sh
/usr/share/grafana $ grafana-cli admin reset-admin-password 123456
Admin password changed successfully ?
13. 參考鏈接
1??https://blog.marcnuri.com/prometheus-grafana-setup-minikube
2??Local MacのMinikubeでPrometheusとGrafana
3??Minikube 安裝和簡單使用 - 江湖小小白 - 博客園 (cnblogs.com)
4??grafana 忘記登陸密碼 重置密碼
5??https://github.com/prometheus-operator/kube-prometheus#compatibility
6??https://yuya-hirooka.hatenablog.com/entry/2021/03/30/202342文章來源:http://www.zghlxwxcb.cn/news/detail-776398.html
7??minikube start | minikube文章來源地址http://www.zghlxwxcb.cn/news/detail-776398.html
到了這里,關(guān)于【Minikube & Prometheus】基于Prometheus & Grafana監(jiān)控由Minikube創(chuàng)建的K8S集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!