k8s1.25所遇到的问题

系统:ubuntu.20.0.4
docker版本:20.10.20
k8s版本:1.25.3
安装方式:kubeadm

  • k8s-maste01:192.168.1.246
  • k8s-slave1:192.168.1.173
  • k8s-slave2:192.168.1.29
    网卡:calico
    网络:ipvs
    1、kubeadm初始化报错
  • 查看/var/log/syslog,发现镜像无法下载
  • 因为之前用kubeadm确认他需要3.8版本的pause包,已经下载好了,日志却要3.6版本的,重新去down 3.6的包,并改好tag
    k8s1.25所遇到的问题_第1张图片
  • 明明指定啦镜像仓库,pause包还是去拉取kos.grc.io谷歌官网的包
    在这里插入图片描述
    2、service改为nodeport格式,节点没有监听端口
    在这里插入图片描述
  • netstat -nltp | egrep “31828|32645|30830|31859|30975”
    在这里插入图片描述
  • ipvsadm -ln | egrep “31828|32645|30830|31859|30975”
    k8s1.25所遇到的问题_第2张图片
  • 端口没有被监听,但是ipvs规则建立啦,访问也正常
    k8s1.25所遇到的问题_第3张图片

3、新版本的prometheus设置啦网络策略

  • 将grafana的svc设置为nodeport发现无法telnet通,ipvs规则已建立,而且连接状态一直为SYN_RECV。
    k8s1.25所遇到的问题_第4张图片
  • telnet同时进grafana容器抓包,因为grafana没有命令,使用nsenter命令进入,进行抓包,发现抓不到来源包
docker inspect --format "{{.State.Pid}}" 【容器id】
nsenter -u -p -n -t pid

在这里插入图片描述

  • 怀疑calico网络问题,网卡都是正常的,并且发现只有monitoring命令空间的svc才会出现这种情况,想到是网络策略问题。
    在这里插入图片描述
    k8s1.25所遇到的问题_第5张图片
  • 网络策略只允许含有标签“app.kubernetes.io/name: prometheu”的pod访问,增加IP访问策略,发现还是无法访问nodeport端口。
    k8s1.25所遇到的问题_第6张图片
  • 索性删除该条网络策略,在grafana的容器内抓包,查看访问来源IP
    k8s1.25所遇到的问题_第7张图片
  • 发现该ip为tunl0网卡ip,将networkpolicy策略ip放开三个节点的tunl0网卡ip
    在这里插入图片描述
  • 访问正常

你可能感兴趣的:(k8s,kubernetes,docker,linux)