一次解决Kubernetes集群内无法访问服务的问题过程
发布日期:2021-06-29 15:53:41 浏览次数:2 分类:技术文章

本文共 2057 字,大约阅读时间需要 6 分钟。

文章目录

一次解决Kubernetes集群内无法访问服务的问题过程

前言

在Kubernetes集群中创建了一个名为的Deployment和Service,但是在集群内的另外一个Pod中却无法通过该服务名来访问到服务。

本文描述了解决这一问题的过程,以供参考。

解决过程

先检查要访问的服务是否正常

# Check deployment kubectl get deployment php-apache -o wide# Check servicekubectl get svc php-apache -o wide# Check podkubectl get pods | grep php-apache

本例中Service的Cluster IP为10.105.77.184,端口为80。

在busybox中测试

启动busybox:

kubectl delete pod busyboxkubectl run -it busybox --image=busybox -- /bin/sh

在busybox pod内,尝试通过服务名访问失败:

wget -q -O- http://php-apachewget -q -O- http://php-apache.defaultwget -q -O- http://php-apache.default.svc.cluster.local

但是尝试通过Cluster IP方式访问成功:

wget -q -O- http://10.105.77.184:80

怀疑是kube-dns的问题。

检查kube-dns

# Check deploymentkubectl get deployment -n kube-system -l k8s-app=kube-dns# Check servicekubectl get svc -n kube-system -l k8s-app=kube-dns# Check endpointkubectl get ep -n kube-system -l k8s-app=kube-dns

发现kube-dns正常。

怀疑是网络原因,本例中的Kubernetes集群用的是Calico网络组件。

检查Calico

# Check daemonset kubectl get ds -n kube-system -l k8s-app=calico-node# Check pod status and readykubectl get pods -n kube-system -l k8s-app=calico-node# Check apiservice statuskubectl get apiservice v1.crd.projectcalico.org -o yaml

发现calico-node的2个Pod都不是READY状态。

查看calico-node Pod的详细信息:

kubectl describe -n kube-system pod -l k8s-app=calico-node

查看calico-node 某个Pod的日志:

kubectl logs -f -n kube-system calico-node-

发现错误日志为:“calico/node is not ready: BIRD is not ready: BGP not established

在Calico的Manifest中的 “# Auto-detect the BGP IP address.” 前添加:

# Specify interface- name: IP_AUTODETECTION_METHOD  value: "interface=eth0"

说明:

  • interface=eth0 表示选择节点机器的eth0网卡,可以通过ip addr show来查看网卡。

一个完整的Calico Manifest的例子参见:

interface示例:

# 指定某个网卡interface=eth0interface=ens33# 指定网卡的前缀interface=eth.*interface=ens.*# 指定多个网卡的前缀interface=eth.*,ens.*

calico_ip_autodetection_method`: This parameter is used to select the interface on the node, and for pod to pod data communication across the nodes. Three methods are available to help select the data path for pods.

参见:

更新Calico,再重新检查Calico。

再在busybox中测试通过服务名访问成功。

参考文档

转载地址:https://cookcode.blog.csdn.net/article/details/109424100 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Kubernetes自动横向扩展(HPA)示例
下一篇:在Kubernetes集群上安装Metrics Server

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月28日 08时30分00秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

2020年开发运维工具清单:选择开发运维工具堆栈吧 2019-04-29
效率提升法则:高效人士不会去做的4件事 2019-04-29
8.PostgreSQL约束 2019-04-29
【技术分享】使用AES加密技术保障数据安全 2019-04-29
【应用实例】布线多?成本高?不可靠?泽耀方案没烦恼! 2019-04-29
数据可视化工具:Matplotlib绘图 2019-04-29
用Python写个超级小恐龙跑酷游戏,上班摸鱼我能玩一天 2019-04-29
闺蜜看我用Python画了一幅樱花图,吵着要我给他介绍程序员小哥哥 2019-04-29
【Python爬虫实战】知乎热榜数据采集,上班工作摸鱼两不误,知乎热门信息一网打尽 2019-04-29
自从我学会了数据挖掘Matplotlib、Numpy、Pandas、Ta-Lib等一系列库,我把领导开除了 2019-04-29
Python抓取哔哩哔哩up主信息:只要爬虫学的好,牢饭吃的早 2019-04-29
有个码龄5年的程序员跟我说:“他连wifi从来不用密码” 2019-04-29
领导让我整理上个季度的销售额,幸好我会Python数据分析,你猜我几点下班 2019-04-29
【Python爬虫实战】为何如此痴迷Python?还不是因为爱看小姐姐图 2019-04-29
零基础自学Python,你也可以实现经济独立! 2019-04-29
ElasticSearch与Mysql对比(ElasticSearch常用方法大全,持续更新) 2019-04-29
数字化转型的主干道上,华为云以“三大关键”成企业智能化推手 2019-04-29
数字化为何不走“捷”“径”? 2019-04-29
和总裁、专家交朋友,华为云助推政企智能化升级又做到前面去了 2019-04-29
BCOP章鱼船长,6月22日晚上8点上线薄饼 2019-04-29