Curl 库伯内特斯网络问题
我在Ubuntu 16.04机器上设置Kubernetes群集时遇到问题,我已正确设置:Curl 库伯内特斯网络问题,curl,networking,kubernetes,kube-proxy,coredns,Curl,Networking,Kubernetes,Kube Proxy,Coredns,我在Ubuntu 16.04机器上设置Kubernetes群集时遇到问题,我已正确设置: 主节点(机器IP:10.10.1.122) 工作节点(机器IP:10.10.1.38) 使用以下信息进入群集: NAME READY STATUS RESTARTS AGE pod/coredns-86c58d9df4-78lnp 1/1 Running 0
NAME READY STATUS RESTARTS AGE
pod/coredns-86c58d9df4-78lnp 1/1 Running 0 80m
pod/coredns-86c58d9df4-lw7vl 1/1 Running 0 80m
pod/etcd-di-linux-host 1/1 Running 0 111m
pod/kube-apiserver-di-linux-host 1/1 Running 0 110m
pod/kube-controller-manager-di-linux-host 1/1 Running 0 111m
pod/kube-flannel-ds-amd64-6wvkh 1/1 Running 0 109m
pod/kube-flannel-ds-amd64-p7ftb 1/1 Running 0 110m
pod/kube-proxy-rbfvz 1/1 Running 0 109m
pod/kube-proxy-zwr7b 1/1 Running 0 111m
pod/kube-scheduler-di-linux-host 1/1 Running 0 111m
pod/kubernetes-dashboard-79ff88449c-9f8qw 1/1 Running 0 89m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 111m
service/kubernetes-dashboard ClusterIP 10.98.188.215 <none> 443/TCP 89m
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/kube-flannel-ds-amd64 2 2 2 2 2 beta.kubernetes.io/arch=amd64 110m
daemonset.apps/kube-flannel-ds-arm 0 0 0 0 0 beta.kubernetes.io/arch=arm 110m
daemonset.apps/kube-flannel-ds-arm64 0 0 0 0 0 beta.kubernetes.io/arch=arm64 110m
daemonset.apps/kube-flannel-ds-ppc64le 0 0 0 0 0 beta.kubernetes.io/arch=ppc64le 110m
daemonset.apps/kube-flannel-ds-s390x 0 0 0 0 0 beta.kubernetes.io/arch=s390x 110m
daemonset.apps/kube-proxy 2 2 2 2 2 <none> 111m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/coredns 2/2 2 2 111m
deployment.apps/kubernetes-dashboard 1/1 1 1 89m
NAME DESIRED CURRENT READY AGE
replicaset.apps/coredns-86c58d9df4 2 2 2 111m
replicaset.apps/kubernetes-dashboard-79ff88449c 1 1 1 89m
我的豆荚
NAME READY STATUS RESTARTS AGE
guids-68898f7dc9-c65nv 1/1 Running 0 102m
Name: guids-68898f7dc9-c65nv
Namespace: default
Priority: 0
PriorityClassName: <none>
Node: gmf.com/10.10.1.38
Start Time: Sun, 16 Dec 2018 15:43:41 +0200
Labels: pod-template-hash=68898f7dc9
run=guids
Annotations: <none>
Status: Running
IP: 10.244.1.15
Controlled By: ReplicaSet/guids-68898f7dc9
Containers:
guids:
Container ID: docker://125ceccad4e572b514538292aaeaa55e22050c5e9129f834de8e01dfd452c6c1
Image: alexellis2/guid-service:latest
Image ID: docker-pullable://alexellis2/guid-service@sha256:17207f799760ccdccd0fa1e7f37838af5df915a33f9f27e97951a6eeee8c3a6f
Port: 9000/TCP
Host Port: 0/TCP
State: Running
Started: Sun, 16 Dec 2018 15:43:46 +0200
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-hnwtc (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-hnwtc:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-hnwtc
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events: <none>
名称就绪状态重新启动
guids-68898f7dc9-c65nv 1/1运行0 102m
名称:guids-68898f7dc9-c65nv
名称空间:默认值
优先级:0
PriorityClassName:
节点:gmf.com/10.10.1.38
开始时间:2018年12月16日星期日15:43:41+0200
标签:pod模板哈希=68898f7dc9
run=guids
注释:
状态:正在运行
IP:10.244.1.15
控制人:ReplicaSet/guids-68898f7dc9
容器:
指南:
容器ID:docker://125ceccad4e572b514538292aaeaa55e22050c5e9129f834de8e01dfd452c6c1
图像:alexellis2/guid服务:最新
图像ID:docker-pullable://alexellis2/guid-service@sha256:17207F799760CCDCCD0FA1E7F37838AF5DF915A33F9F27E97951A6EE8C3A6F
端口:9000/TCP
主机端口:0/TCP
状态:正在运行
开始时间:2018年12月16日星期日15:43:46+0200
准备好了吗
重新启动计数:0
环境:
挂载:
/来自默认令牌hnwtc(ro)的var/run/secrets/kubernetes.io/serviceCount
条件:
类型状态
初始化为True
准备好了吗
集装箱准备好了吗
播客预定为真
卷数:
默认令牌hnwtc:
类型:Secret(由Secret填充的卷)
SecretName:默认令牌hnwtc
可选:false
QoS等级:最佳努力
节点选择器:
容差:node.kubernetes.io/未就绪:不执行300秒
node.kubernetes.io/不可访问:不执行300秒
活动:
我在这里面临的问题是,每当我想从主节点卷曲服务或pod IP时,它永远不会命中,同时从工作节点卷曲服务/pod很好,我是Kubernetes的新手,但我找不到任何线索如何诊断这个问题,任何帮助都将不胜感激
当我尝试卷曲公开的服务时,即使我从主服务器得到了以下结果:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
guids ClusterIP 10.97.160.160 <none> 9000/TCP 92m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 139m
ubuntu@master:/$ curl http://10.97.160.160:9000/guid
curl: (7) Failed to connect to 10.97.160.160 port 9000: Connection timed out
名称类型群集IP外部IP端口
GUID群集IP 10.97.160.160 9000/TCP 92m
kubernetes ClusterIP 10.96.0.1 443/TCP 139m
ubuntu@master:/$curlhttp://10.97.160.160:9000/guid
curl:(7)未能连接到10.97.160.160端口9000:连接超时
可从其他节点访问的pod IP和可从kubernetes群集中的pod访问的clusterIP
服务的ClusterIP不是pod的IP地址,它是一个虚拟地址,根据服务中定义的规则映射到pod的IP地址,并由kubernetes集群中的kube proxy
守护程序管理
ClusterIP特别适用于集群内的通信,以访问服务背后的pod,而无需考虑pod的副本数量或存在于哪个节点pod上,并且ClusterIP与pod的IP不同,是静态的
如果可以,请阅读服务IP在中的工作原理
我希望您遵循一些调试步骤:
您可以使用以下方法检查您的服务名称是否从pod内部解析为ClusterIP:
kubectl exec -it <pod_name> bash
nslookup <svc_name>.<namespace>.svc.cluster.local
kubectl exec-it bash
nslookup..svc.cluster.local
上面的命令将为您提供服务的clusterIP
检查工作节点是否可以从主节点ping,如果不是,则表示覆盖网络存在问题,在您的情况下,它是法兰绒的。同意Prafull Ladha的回答。此外,如果要卷曲公开的服务,可以使用NodPort()。只需更新服务并使用该节点端口即可访问该服务。谢谢,@Prafull,为了在pod内运行命令,我尝试运行上述命令,但出现了kubectl exec-it guids-68898f7dc9-vlrsn bash错误来自服务器:错误拨号后端:拨号tcp 10.10.1.38:10250:i/o超时从主节点ping工作节点一切正常ubuntu@master:~$ping 10.10.1.38 ping 10.10.1.38(10.10.1.38)56(84)字节的数据。来自10.10.1.38的64字节:icmp_seq=1 ttl=64 time=0.267 ms@HansikaMadushanWeerasena我也尝试从主节点(不是外部)卷曲POD IP,但没有成功。请检查kubelet日志,它是否一次又一次地重新启动?kubelet日志怎么说,10250是kubelet港口。使用:`journalctl-xfe-u kubelet`@PrafullLadha
master kubelet[7433]:I1216 15:28:39.205823 7433服务器检查kubelet日志。go:137]开始在0.0.0.0:10250
上侦听之前,coredns出现了一个问题,它正在执行CrashLoopBackoff,但我作为一种解决方法解决了这个问题,它自己从worker nodekubelet日志中正确运行的pod是巨大的,你必须得到更多的东西,你能在一个文件中获取一些kubelet日志并附加在问题本身中吗。
kubectl exec -it <pod_name> bash
nslookup <svc_name>.<namespace>.svc.cluster.local