如何在物理主机上安全访问Grafana?
创作时间:
作者:
@小白创作中心
如何在物理主机上安全访问Grafana?
引用
7
来源
1.
https://www.solo.io/topics/kubernetes-api-gateway/kubernetes-ingress
2.
https://learn.microsoft.com/zh-cn/python/api/azure-mgmt-compute/azure.mgmt.compute.v2019_07_01.models.virtualmachinescalesetipconfiguration?view=azure-python
3.
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/
4.
https://m.book118.com/html/2017/0823/129724278.shtm
5.
http://dict.youdao.com/w/virtual_machine_configuration/
6.
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/custom-template/
7.
https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/configmap/
在物理主机上访问通过虚拟机部署的 Kubernetes 集群中的 Grafana,可以通过以下步骤解决:
方法一:修改本地 Hosts 文件(推荐)
适用场景:物理机与集群节点在同一局域网,且虚拟机有固定 IP。
获取 Ingress 控制器所在节点的 IP:
kubectl get svc -n ingress-nginx # 假设使用 Nginx Ingress,查看 EXTERNAL-IP 或 NodePort
如果 Service 类型为
NodePort
,记录节点的 IP(如192.168.1.100
)。修改物理机 Hosts 文件:
- Linux/Mac:
sudo vi /etc/hosts
- Windows:
C:\Windows\System32\drivers\etc\hosts
192.168.1.100 grafana.mydomain.com
- Linux/Mac:
访问 Grafana:
浏览器访问http://grafana.mydomain.com
(或https
如果配置了 TLS)。
方法二:通过 NodePort 直接访问
适用场景:Ingress 控制器 Service 类型为 NodePort
。
查找 NodePort 端口:
kubectl get svc -n ingress-nginx
找到
PORT(S)
列中的 NodePort(如80:31000/TCP
,则31000
是端口)。直接通过节点 IP + 端口访问:
浏览器访问http://<节点IP>:31000
,并通过 Host 头指定域名:curl -H "Host: grafana.mydomain.com" http://<节点IP>:31000
方法三:使用 kubectl port-forward
(临时调试)
适用场景:快速临时访问,无需修改网络配置。
找到 Grafana 的 Service 名称:
kubectl get svc -n monitoring # 假设 Grafana 在 monitoring 命名空间
端口转发:
kubectl port-forward svc/grafana-service 3000:3000 -n monitoring
访问本地端口:
浏览器访问http://localhost:3000
。
方法四:配置 LoadBalancer(云环境或 MetalLB)
适用场景:生产环境或需要稳定外部 IP。
修改 Ingress 控制器 Service 类型:
kubectl edit svc ingress-nginx-controller -n ingress-nginx
将
type: NodePort
改为type: LoadBalancer
。获取 External IP:
kubectl get svc -n ingress-nginx
等待分配 External IP(云环境自动分配,本地需安装 MetalLB)。
配置 DNS 或 Hosts:
将域名grafana.mydomain.com
解析到 External IP。
网络检查要点
- 防火墙规则:确保物理机到虚拟机节点的 80/443 或 NodePort 端口开放。
- 虚拟机网络模式:如果是 NAT 模式,需在宿主机配置端口转发(如 VirtualBox 的 NAT 网络设置)。
- Ingress 配置:确认 Ingress 中
host
字段与域名一致,且 TLS 配置正确(如果有)。
选择最适合你环境的方法即可。如果仍有问题,请提供更多集群网络细节(如 Ingress 类型、节点 IP 是否可达等)。
热门推荐
期货入门:多空双方与开平仓详解
利用心理学提升用户参与度:从众效应、损失厌恶和互惠原则
基金结算费用解析:你知道基金结算需要支付哪些费用吗?
永磁同步电机电流环,讨论永磁同步电机电流控制的关键环节
怎么区分喜神和用神,喜用神为火的人
跳高训练的周期和计划 如何制定科学合理的跳高训练计划
飞机事故赔偿标准与要求
晋级总决赛概率局势:勇士追平凯尔特人 独行侠夺冠概率5%垫底
仓库团队管理的要求有哪些
维生素D在炎症性肠病治疗中的新进展
探秘张家界:天子山登山攻略及上山交通详解
基于改进搜索策略的狼群算法
物料主数据该如何建立分类标准?
Excel替换怎么用通配符
沙家浜:抗战历史与自然美景的交融之地
如何较快地通过 Datasheet 掌握一片芯片
国家人力资源证书怎么取
咖啡机全自动好还是半自动好?买咖啡机应该注意什么?
原创“异育银鲫”,创造世界奇迹
2024顶尖大学升学率排名:国科大91.3%登顶,海归不再吃香!
被人打报警有人证是否有效?法律实务中的证据链构建与实践
辣椒饮食减肥全攻略:让减肥过程既有趣又有效
辣椒素减肥运动时间,辣椒素可以促进脂肪的燃烧吗
怎样利用网格系统提高UI设计效果
教师编制考试培训有必要吗?
U20亚洲杯,让中国足球在深圳看到未来
沥青市场研究
深圳菜市场升级:免费加工炒菜、智慧管理、环保回收成新亮点
项目管理如何优先级分类
石楠树的八大品种及其特征