记一次k8s pod的CrashLoopBackOff错误状态

背景经过:

k8s刚搭建完毕,组建图形界面dashboard时报错

主要原因:firewall仅开放了服务器ip,没有开放k8s pod之间的虚拟ip,网络不通
方法:放通或干脆关闭firewalld

检查pod状态

复制代码
kubectl get pod -n kubernetes-dashboard

注:

  1. 发现有pod不正常,先describe查看一下

查看pod描述

复制代码
kubectl describe pod kubernetes-dashboard-6b8f9cc89c-n7ff4 -n kubernetes-dashboard

注:

  1. 主要看最后面的Events,没发现具体异常,查看pod日志

查看pod日志

复制代码
kubectl logs -f kubernetes-dashboard-6b8f9cc89c-n7ff4 -n kubernetes-dashboard

注:

  1. 发现异常:dial tcp 10.96.0.1:443: connect: no route to host. 是pod内部网络问题导致无法连接

查看防火墙

复制代码
firewall-cmd --list-all

注:

  1. 服务器firewall只放通了192.169.10.0/16网段,pod内部虚拟网络通信是另外一组ip段(tcp 10.96.0.1:443: connect: no route to host)
  2. pod容器之间会创建虚拟网络互相通信。

解决办法:

复制代码
# k8s集群所有节点放通pod虚拟网卡网段
# 建议直接所有节点关闭firewall
systemctl disable firewalld --now

# 然后等待pod重启,或者手动删了重建
kubectl delete -f recommended.yaml
kubectl apply -f recommended.yaml

再次检查

复制代码
kubectl get pod -n kubernetes-dashboard

ps:获取已有pod的yaml

复制代码
kubectl get deploy -o yaml -n kubernetes-dashboard > recommended2.yaml

ps2:尽量用apply不用create

复制代码
create 是一次性创建命令,资源已存在时报错,仅适用于确认资源不存在的场景
apply 是声明式管理命令,支持创建/更新资源,重复执行无故障,是日常使用的首选
核心区别:create 只有创建能力,apply 兼具创建和增量更新能力。

ps3:使用edge浏览器打开自建https网站被拦截问题

复制代码
在浏览器被拦截页面,英文输入 thisisunsafe
相关推荐
SelectDB13 小时前
安全评审卡了三周,我把部署形态的四种选项重新排了一遍
大数据·数据库·云原生
阿里云云原生14 小时前
完整还原已经服务千家企业的 AIOps Agent 的评测和调优实践
云原生
阿里云云原生14 小时前
让 Agent 成为企业生产力丨Alibaba Cloud AgentCore 企业智能体构建与治理沙龙·上海站精彩回顾 & PPT 下载
云原生·agent
csdn_aspnet16 小时前
Docker Prune:完整指南与上手示例
运维·docker·容器·prune
阿里云云原生16 小时前
交付周期从 51 天缩短到 14 天,多 Agent 协作产品⾃进化背后的组织重构
云原生·agent
阿里云云原生16 小时前
从部署上线到运维优化:STAROps 与 ROS Agent 的资源运维自动化实践
云原生
谢白羽18 小时前
从传统运维到 AI Infra: K8s 上调度 100 张 GPU踩坑笔记
运维·人工智能·缓存·kubernetes·vllm·sglang·vllm-omni
xianyuCcCcCCCcc19 小时前
Kubernetes 资源调度与弹性伸缩:Schedule、Metric、HPA 与 Quota
云原生·kubernetes
分布式存储与RustFS19 小时前
在 1Panel 应用商店部署 RustFS:安装、配置与验证步骤
云原生·开源·对象存储·分布式存储·s3·rustfs·性能基准
我不会起名字32220 小时前
滚动更新时请求 502:Pod 终止与 endpoint 摘除的时间差
kubernetes·滚动更新·排查·优雅停机