0

我是K8s的新手,如果这是一个简单的问题,请原谅我。

TL;博士

我使用 k8s 服务部署了一个经典的服务器-客户端架构,以使用服务的 FQDN 访问服务器。

当我仅应用以下 yaml 时,可以从客户端访问服务器(即:wget -O- my-service返回 Apache hello 页面)。
当我在他们的快速入门kubectl apply --server-side -f manifests/setup -f manifests)中也应用 kube-prometheus 时,我无法再访问服务器(wget返回Connection Refused)。

我在 Windows 10 上使用kind

问题

我需要在 kubernetes 上部署 Prometheus 以根据一些自定义指标来扩展 pod。我的 pod 遵循经典的服务器-客户端架构;下面的 yaml 类似于我在 k8s 上实际部署的内容。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: apache
  labels:
    app: apache
spec:
  replicas: 1
  selector:
    matchLabels:
      app: apache
  template:
    metadata:
      labels:
        app: apache
    spec:
      containers:
      - name: apache
        image: httpd:2.4-alpine
        ports:
        - containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: alpine
  labels:
    app: alpine
spec:
  replicas: 1
  selector:
    matchLabels:
      app: alpine
  template:
    metadata:
      labels:
        app: alpine
    spec:
      containers:
      - name: alpine
        image: alpine:3.15
---
apiVersion: v1
kind: Service
metadata:
  name: my-service
  labels:
    service: my-service
spec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: server-tcp
  selector:
    app: apache

如果我在遵循kube-prometheus quickstart之前部署此 yaml ,则可以从以下位置访问; 即(来自高山):apachealpine

$ wget -q -O- my-service
<html><body><h1>It works!</h1></body></html>

如果我在部署 kube-prometheus之后apache部署它,则无法从alpine;
即(来自高山):

$ wget -q -O- my-service
Connecting to my-service
wget: can't connect to remote host: Connection refused

我不知道这是 kube-prometheus 的错误还是我做错了什么。我试着用谷歌搜索了很多,但我找不到任何解决这个问题的方法。我在pod 上
尝试过,但它不起作用(即使以 root 身份发出命令也没有权限)。iptables --policy FORWARD ALLOWapache

任何帮助表示赞赏。

我在 Windows 10 上使用kind

更新

alpinepod 没有日志。
这是apachepod 的日志(已删除 IP 和 PID)

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using pod_internal_ip. Set the 'ServerName' directive globally to suppress this message
[Tue Feb 01 12:30:58.430151 2022] [mpm_event:notice] AH00489: Apache/2.4.52 (Unix) configured -- resuming normal operations
[Tue Feb 01 12:30:58.430280 2022] [core:notice] AH00094: Command line: 'httpd -D FOREGROUND'
4

0 回答 0