kubernetes报错笔记 (一) calico报错

错误1

 read udp xxx:29270->169.169.0.10:53: i/o timeout   read    主机地址加端口  >>  169.169.0.10:53好像是这个

解决方法

#错误原因
vi /etc/hosts 文件中缺少以下配置

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

#不知道谁给删的,排了一下午。。

错误2

unable to ensure pod container exists: failed to create container for [kubepods burstable pod174ffa0f-3c24-4481-9254-efce02b03001] :
 mkdir /sys/fs/cgroup/memory/kubepods/burstable/pod174ffa0f-3c24-4481-9254-efce02b03001: cannot allocate memory

解决方法

Cgroup泄漏,mark一下,此处使用网上的多数解决方案并米诶有解决,做一个小小的记录,在此需要对no space left的服务器进行 reboot重启,即可解决问题,出现问题的可能为段时间内删除大量的pod所致。

初步思路,可以在今后的集群管理汇总,对服务器进行维修,通过删除节点,并对节点进行reboot处理

错误3

#启动calico后发现控制器成功就绪
node为0/1  但是running   查看日志 后发现以下情况 

报错信息

calico/node is not ready: BIRD is not ready: BGP not established with 10.133

原因

#搜索一下得知没有匹配到正确的网卡,发现当前节点中存在多个相似的网卡
bond1
bond1.2

解决方法

在calico.yaml中修改匹配的节点为
bond1$  重启即可

#如果有节点在不同集群,网卡可能也不相同
#如,一个是eth1 一个是eth0
#可以配置为 (eth1|eth0)

错误4

#状态如下
[root@xxx calico-typha-v3.15.2]# kk get pod
NAME                                       READY   STATUS     RESTARTS   AGE
calico-kube-controllers-75d69d4b44-f4rv7   0/1     Pending    0          11m
calico-node-5dthc                          0/1     Init:0/3   0          11m
calico-node-7tw7c                          0/1     Init:0/3   0          11m
calico-node-bvvmv                          0/1     Init:0/3   0          11m
calico-node-cltbf                          0/1     Init:0/3   0          11m
calico-node-fwxs7                          0/1     Init:0/3   0          11m
calico-node-gchnf                          0/1     Init:0/3   0          11m
calico-node-p9wfc                          0/1     Init:0/3   0          11m
calico-node-wvcsz                          0/1     Init:0/3   0          11m
calico-node-xhljh                          0/1     Init:0/3   0          11m
calico-node-zg6hh                          0/1     Init:0/3   0          11m
calico-typha-588c8dbccd-gk4n5              0/1     Pending    0          11m
calico-typha-588c8dbccd-st6xm              0/1     Pending    0          11m
calico-typha-588c8dbccd-sxgzj              0/1     Pending    0          11m

 之前老有小伙伴喜欢去看污点,如下,然后想办法去去除污点,其实这不是污点的问题,下面就说名了网卡没就绪

[root@calico-typha-v3.15.2]# k describe node | grep Tain
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule
Taints:             node.kubernetes.io/not-ready:NoSchedule

我们已经得知pod在init阶段无法通过,查看describe得到如下信息

查看node信息
  ----     ------                  ----                  ----                   -------
  Normal   Scheduled               <unknown>             default-scheduler      Successfully assigned kube-system/calico-node-5dthc to 192.168.1.20
  Warning  FailedCreatePodSandBox  35s (x10 over 7m56s)  kubelet, 192.168.1.20  Failed to create pod sandbox: rpc error: code = Unknown desc = failed pulling image "192.168.1.20:80/google_containers/pause:3.1": Error response from daemon: Get http://192.168.1.20:80/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)


#我们得知
failed pulling image "192.168.1.20:80/google_containers/pause:3.1"
#在创建pod时,没有成功拉取到pause的基础镜像
#发现仓库里面忘记上传了,已解决

错误5

calico 状态异常(0/1)修复
  Warning  Unhealthy  33s        kubelet, 10.252.205.100  Readiness probe failed: 2021-06-28 07:48:22.019 [INFO][222] confd/health.go 180: Number of node(s) with BGP peering established = 22
calico/node is not ready: BIRD is not ready: BGP not established with 
  Warning  Unhealthy  23s  kubelet, 10.252.205.100  Readiness probe failed: 2021-06-28 07:48:32.013 [INFO][275] confd/health.go 180: Number of node(s) with BGP peering established = 36
calico/node is not ready: BIRD is not ready: BGP not established with 10.252.205.197
  Warning  Unhealthy  13s  kubelet, 10.252.205.100  Readiness probe failed: 2021-06-28 07:48:42.014 [INFO][332] confd/health.go 180: Number of node(s) with BGP peering established = 36
calico/node is not ready: BIRD is not ready: BGP not established with 10.252.205.197
  Warning  Unhealthy  3s  kubelet, 10.252.205.100  Readiness probe failed: 2021-06-28 07:48:52.009 [INFO][380] confd/health.go 180: Number of node(s) with BGP peering established = 36
calico/node is not ready: felix is not ready: readiness probe reporting 404
  Warning  Unhealthy  2s (x3 over 22s)  kubelet, 10.252.205.100  Liveness probe failed: calico/node is not ready: Felix is not live: liveness probe reporting 404



#修复方法
[ecip@cmpaas-core-new-mpp-b-11 ~]$ cd /opt/cni/bin/
[ecip@cmpaas-core-new-mpp-b-11 bin]$ ls
bandwidth  calico  calico-ipam  flannel  host-local  loopback  portmap  tuning

#备份以下配置
mv * linshi


#备份挂载文件
[ecip@cmpaas-core-new-mpp-b-11 bin]$ cd /var/run/calico/
[ecip@cmpaas-core-new-mpp-b-11 calico]$ ls
bird6.ctl  bird.ctl  cgroup

#mv * linshi

#重启该节点kubelet

到master上delete pod 该calico解决

错误6  生产环境有一个calico pod容器起不来

#通过describe 得到的事件信息

 Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying 
BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/bird/bird.ctl: connect:
 no such file or directory

 Liveness probe failed: calico/node is not ready: bird/confd is not live: exit status 1

日志

Jul 27 10:17:27 cmpaas-core-new-mpp-j-1 kubelet[47192]: E0727 10:17:27.076332  
 47192 kuberuntime_manager.go:674] killPodWithSyncResult failed: failed to 
"KillPodSandbox" for "d49635fa-a070-469d-9228-d64a900e4403" with KillPodSandboxError:
 "rpc error: code = Unknown desc = networkPlugin cni failed to teardown pod \"kong-
migrations-pqwll_kong\" network: error getting ClusterInformation: Get 
https://[169.169.0.1]:443/apis/crd.projectcalico.org/v1/clusterinformations/default:
 dial tcp 169.169.0.1:443: i/o timeout"

其实结尾的这个错误已经很明显了,tcp 169.169.0.1:443: i/o timeout"

9成是kube-proxy导致的跑不了

再次查看calico pod日志(等一会)
[ecip@cmpaas-core-new-mpp-b-11 ~]$ kk logs calico-node-xm5qz 

2021-07-27 02:52:28.597 [INFO][8] startup/startup.go 374: Hit error connecting to 
datastore - retry error=Get https://169.169.0.1:443/api/v1/nodes/foo: dial tcp 
169.169.0.1:443: i/o timeout

检查一下kube-proxy

k8s.io/client-go/informers/factory.go:135: Failed to list *v1.Service: Get
 https://192.168.1.20:6443/api/v1
/services?labelSelector=%21service.kubernetes.io%2Fheadless
%2C%21service.kubernetes.io%2Fservice-proxy-name&limit=500&resourceVersion=0: dial tcp 
192.168.1.21:6443: connect: connection refused

##发现该节点kube-proxy无法连接apiserver

得知这个节点之前是其他集群的,我在想是否有可能是因为集群证书 漏掉了,

没有替换新的导致的,替换证书,重启节点服务,delete pod恢复

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Kubernetes是一种容器编排和管理系统,而Calico是一种网络插件,用于为Kubernetes集群提供高性能、可扩展和安全的网络互连。 Kubernetes作为容器编排和管理系统,负责管理和调度容器化的应用程序。它提供了一个统一的管理界面,使得用户可以方便地定义、部署和管理容器。但是,Kubernetes只关注容器的调度和管理,对于容器之间的网络连接则没有提供特定的解决方案。 而Calico则提供了一种容器网络解决方案,旨在为Kubernetes集群提供高性能、可扩展和安全的网络互连。它基于Linux内核的网络技术,如Linux虚拟路由、BGP路由协议等,提供了一套灵活的网络架构。通过将Kubernetes集群中的每个节点配置为一个路由器,Calico能够实现容器之间的直接通信,而无需通过NAT或其他网络转换技术。这样可以提供更低的网络延迟和更高的网络吞吐量。 除了高性能和可扩展性,Calico还提供了安全性方面的功能。它支持基于网络策略的安全控制,可以定义和限制容器之间的通信规则。通过使用网络策略,用户可以实现微服务之间的安全隔离,确保只有经过授权的容器可以相互通信。 总之,KubernetesCalico是两个不同但相关的技术。Kubernetes是用于容器编排和管理的系统,而Calico是提供高性能、可扩展和安全的网络连接的插件。它们可以一起使用,通过Calico插件为Kubernetes集群提供高效和可靠的容器网络解决方案。 ### 回答2: Kubernetes是一种用于容器编排和管理的开源平台,而Calico是一种用于容器网络的开源软件定义网络(SDN)解决方案。它们可以一起使用来提供强大和可靠的容器平台。 Kubernetes提供了容器编排和管理功能,允许用户在集群中创建、部署和管理容器化应用程序。它可帮助用户自动化容器的创建、启动、停止和销毁,并提供负载均衡、服务发现和自动扩展等功能。Kubernetes提供了一个灵活可扩展的架构,能够适应不同规模的应用和不同类型的基础设施。 Calico是一个开源的容器网络解决方案,它使用了标准的IP路由协议来提供高性能和高度可扩展的容器网络。Calico使用BGP(边界网关协议)来管理容器之间的网络连接,并提供了灵活的控制面和数据面,可以与Kubernetes无缝集成。 KubernetesCalico的结合可以提供更强大的容器平台。Kubernetes通过提供容器编排和管理功能来简化应用程序的部署和管理,而Calico则负责管理容器之间的网络连接和流量控制。使用Calico可以实现容器之间的高性能通信,并提供网络策略控制,以确保容器间的安全性。 总而言之,Kubernetes提供了容器的编排和管理功能,而Calico则提供了容器网络的解决方案。它们可以一起使用来构建可靠、高性能和安全的容器平台。 ### 回答3: Kubernetes是一个开源的容器编排和管理平台,而Calico是用于网络与网络安全的Kubernetes插件。 Kubernetes是用于管理容器化应用程序的平台,它可以自动管理和编排容器的生命周期,并提供了水平扩展、自我修复和服务发现等功能。而Calico是一个网络解决方案,它为Kubernetes集群提供了高性能、高可靠性和灵活性的网络连接。 Calico使用BGP协议,为Kubernetes集群中的每个节点提供独立的虚拟网络,使得所有容器都能够在不同主机上相互通信。Calico利用Linux的内核技术来实现网络隔离和安全性,通过为每个容器分配唯一的IP地址,实现容器之间的通信和访问控制。 在Kubernetes中,Calico还提供了网络策略的功能,可以通过定义网络策略规则来控制容器之间的通信。这些规则可以基于IP地址、端口、协议和标签等进行匹配,从而实现微服务之间的灵活和可靠的通信。Calico还支持加密和认证功能,可以确保容器之间的通信是安全和保密的。 总而言之,KubernetesCalico是两个互补的技术,Kubernetes提供了容器编排和管理的功能,而CalicoKubernetes提供了高性能、高可靠性和灵活性的网络解决方案,使得容器之间可以安全、可靠地通信和交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值