首页 > 解决方案 > 无法通过 kubectl 代理使用服务访问 kubernetes pod

问题描述

我有一个 deamonset 定义

ports:
- containerPort: 24231

在规格中。

部署一组后,我可以/metrics在本地主机(在容器中)上卷曲端点,并且可以从同一组的另一个容器中卷曲一个容器的端点。

然后我定义一个这样的服务:

apiVersion: v1
kind: Service
metadata:
  name: fluentd
  labels:
    app: fluentd
spec:
  ports:
    - name: prometheus
      port: 80
      targetPort: 24231
  selector:
    app: fluentd

我希望这将使我能够: kubectl proxy --port=8001

在点击链接之后: http://127.0.0.1:8001/api/v1/namespaces/default/services/fluentd:prometheus/proxy/metrics

我看到的是这样的:

Error: 'dial tcp 10.136.4.30:24231: i/o timeout'
Trying to reach: 'http://10.136.4.30:24231/metrics'

http://127.0.0.1:8001/api/v1/namespaces/default/services/fluentd按预期返回我的服务信息,其中包括:

"spec": {
    "ports": [
      {
        "name": "prometheus",
        "protocol": "TCP",
        "port": 80,
        "targetPort": 24231

我究竟做错了什么。该服务在一周前工作,但在重新部署后停止工作。

标签: kubernetesgoogle-kubernetes-engine

解决方案


这是我必须在他们的支持下解决的 GKE 问题。


推荐阅读