我是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 ,则可以从以下位置访问;
即(来自高山):apache
alpine
$ 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 ALLOW
apache
任何帮助表示赞赏。
我在 Windows 10 上使用kind
更新
alpine
pod 没有日志。
这是apache
pod 的日志(已删除 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'