赞
踩
我在使用ClusterIP网络使用的时候,遇见一个问题,就是服务、网络、状态都没有问题,但是我的Clusterl映射的端口就是用curl访问不到。下面是我排查的一个流程,在这里说一下我的网络并不是不通,在文章结尾会写是因为什么。
我的service用的是IPTABLE
1、创建了一个dev的命名空间
kubectl get service -n dev
2、创建了3个nginx服务
vim /home/pod_nginx.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx1
namespace: dev
spec:
replicas: 3
selector:
matchLabels:
run: nginx
template:
metadata:
labels:
run: nginx
spec:
containers:
- image: nginx:1.7.1
name: nginx
ports:
- containerPort: 80
protocol: TCP
创建pod命令:kubectl create -f /home/pod_nginx.yaml
3、创建网络
kubectl expose deploy nginx1 --name=svc-nginx1 --type=ClusterIP --port=80 --target-port=80 -n dev
1、首先我排查我pod的网络 我们可以看到网络端口已经起来了 我还用crul去访问了一下,也是没问题的。
[root@master data]# kubectl get pod -n dev -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx1-757fbc894c-29bxb 1/1 Running 0 2m6s 10.244.1.2 node1 <none> <none>
nginx1-757fbc894c-kjffm 1/1 Running 0 2m6s 10.244.1.4 node1 <none> <none>
nginx1-757fbc894c-pzb79 1/1 Running 0 2m6s 10.244.1.3 node1 <none> <none>
2、其次我检查了一下我创建的service服务是不是网络没有起来,结果也是很明确他起来了,但是我用curl加端口是访问不进去的。
[root@master data]# kubectl get service -n dev
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
svc-nginx1 ClusterIP 10.104.17.44 <none> 80/TCP 14s
在这里我补充一个知识:ClusterIP是IPtable规则,不是绑定在网络接口上的,服务可以访问,但ping不通ClusterIP。
我之所有没有办法访问Cluster这个端口映射,是因为我环境的原因,因为我用的是机械硬盘搭建的centos环境所以系统反应会迟钝,我这个机械硬盘的环境需要10秒到20秒才能找到对应的服务端口进行访问,你如过用固态硬盘一般来说就不会出现这个问题了。
总结如果你的环境根据上面排查没有问题,你就可以给系统一个反应的时间,等待一下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。