1. 部署报错:The requested fsGroup is 123, but the volume local-pv-c7ef339e has GID 1000710000. The volume may not be shareable.

问题描述:

部署 CNF(pod 集群) 时,pod 中的 container crash,events 报错:

Warning AlreadyMountedVolume 11m kubelet The requested fsGroup is 123, but the volume local-pv-c7ef339e has GID 1000710000. The volume may not be shareable.

问题分析:

为什么 volume 这里会有 GID 1000710000,这个 GID 又是从哪来的呢?

查阅文档结合自己的理解,volume 本身是没有 GID 的,对于 volume 来说只有绑定的 uid 限制。既然不是 volume 自带的,那这个 GID 从何而来呢?

查看 volume mount 到 container 的目录,发现文件组权限都是 GID 1000710000。而 mount 的 pod fsGroup 是 123(uid, gid 都不是 1000710000)。

那么,大胆猜测会不会有另外一个 container mount 了这个 volume 到相同目录,并且是在 crash container 创建之前 mount 的。这样就能解释,这个文件实际的拥有者是另外

一个 container。

顺着这个思路往下走,是哪个 container 呢?创建的 CNF 通过 helm chart 部署的,在这个 pod 创建之前的 pod,会不会是 helm hook 调用的 pre pod,查看 pod 果然有一个 pod

mount 了这个 volume,查看该 pod 的 securityContext 发现正是 GID 1000710000!

结论:

helm chart 部署 pod 时,helm hook 调用的 pre pod mount 了主 pod 的 volume,而 pre pod 和主 pod 的用户权限不一致,并且和主 pod mount 的是同一目录,导致主 pod 启动时,

尝试读写 volume 失败,crash。

解决方式:

将 pre pod 的 securityContext 设置成和主 pod 一致。

2. podman 报错:stat /run/user/xx: no such file or directory

$ podman ps -a

ERRO[0000] stat /run/user/1002: no such file or directory

执行 podman 命令显示 no such file or directory,新建 /run/user/1002,重新执行,成功!


Kubernetes 疑难杂症汇总的更多相关文章

  1. 原创:LNMP架构部署个人博客网站 禁止转载复制

    nginx编译安装步骤 ①. 检查软件安装的系统环境 cat /etc/redhat-release uname -r ②. 安装nginx的依赖包(pcre-devel openssl-devel) ...

  2. Nginx初步入门

    1.Nginx介绍 官网:nginx.org Nginx ("engine x") 是一个开源的.支持高性能.高并发的WWW服务和代理服务软件. 它是由俄罗斯人IgorSysoev ...

  3. 99% 的人都不知道的 Kubernetes 网络疑难杂症排查方法

    原文链接:Kubernetes 网络疑难杂症排查分享 大家好,我是 roc,来自腾讯云容器服务 (TKE) 团队,经常帮助用户解决各种 K8S 的疑难杂症,积累了比较丰富的经验,本文分享几个比较复杂的 ...

  4. 折腾kubernetes各种问题汇总-<1>

    折腾kubernetes各种问题汇总-<1> 折腾部署fluend-elasticsearch日志,折腾出一大堆问题,解决这些问题过程中,感觉又了解了不少. 如何删除不一致状态下的rc,d ...

  5. APM(pixhawk)飞控疑难杂症解决方法汇总(持续更新)

    本文转自下面博主 https://blog.csdn.net/junzixing/article/details/79310159 APM/Pixhawk常用链接汇总(持续更新) https://bl ...

  6. kubernetes 报错汇总

    一. pod的报错: 1. pod的容器无法启动报错: 报错信息: Normal SandboxChanged 4m9s (x12 over 5m18s) kubelet, k8sn1 Pod san ...

  7. 折腾kubernetes各种问题汇总

    折腾fluend-elasticsearch日志,折腾出一大堆问题,解决这些问题过程中,感觉又了解了不少. 1.如何删除不一致状态下的rc,deployment,service. 在某些情况下,经常发 ...

  8. .NET Core Run On Docker By Kubernetes 系列文章汇总

    前言介绍 .NET Core是微软新一代主力编程平台,开源.免费.跨平台.轻量级.高性能,支持Linux.Docker.k8s等环境,适合开发微服务.云原生.大型互联网应用.全开源解决方案. Dock ...

  9. kubernetes 基本概念和资源对象汇总

    kubernetes 基本概念和知识点脑图 基本概念 kubernetes 中的绝大部分概念都抽象成kubernets管理的资源对象,主要有以下类别: Master : Master节点是kubern ...

  10. kubernetes部署Fluentd+Elasticsearch+kibana 日志收集系统

    一.介绍 1. Fluentd 是一个开源收集事件和日志系统,用与各node节点日志数据的收集.处理等等.详细介绍移步-->官方地址:http://fluentd.org/ 2. Elastic ...

随机推荐

  1. 华企盾DSC在苹果电脑上申请审批没有通知

    由于系统通知这里没有允许DSC通知,开启后即可.系统偏好设置-通知与专注模式-通知 ​

  2. Spingboot整合Dubbo+zookeeper

    前言: 2023-12-26 19:38:05 最近学习分布式技术:Dubbo+zookeeper,准备写一个demo用springboot整合dubbo和zookeeper.但是看了网上一些教程都是 ...

  3. 关于SpringBoot中出现的循环依赖问题

    环境: SpringBoot2.7.8 背景: 在增加出库订单时需要对物品表的的数量进行修改 因此我在OutboundController中创建了几个公共方法,并将其注入到Spring中,结果给我报了 ...

  4. modeless dialog in html

    <!DOCTYPE html> <html lang="zh_CN"> <head> <meta charset="UTF-8& ...

  5. 利用腾讯快捷登录协议截取 QQ ClientKey / QQKey 实战课程

    本文主要通过利用腾讯网页快捷登录协议来模拟访问并截取已登录 QQ 客户端的Token.Uin.ClientKey.Skey.P_skey等. Step 1. https://ssl.xui.ptlog ...

  6. 文心一言 VS 讯飞星火 VS chatgpt (19)-- go语言的slice和rust语言的Vec的扩容流程是什么?

    go语言的slice和rust语言的Vec的扩容流程是什么? 文心一言: 在Go语言中,slice(切片)和Rust语言中的Vec都是用于存储一组固定长度的元素的数据结构.它们的扩容流程略有不同,下面 ...

  7. Typora+Docsify快速入门

    Typora是什么? ​ Typora中文版是一款好用极简的跨平台Markdown编辑器,软件使用这款软件能够帮助用户轻松将文本转换到HTML,软件从底层向上设计,软件支持markdown的标准语法, ...

  8. 什么是CodeArts?

    摘要:一站式.全流程.安全可信的软件开发生产线. 软件开发生产线(CodeArts)原名"软件开发平台(DevCloud)"是集华为近30年研发实践.前沿研发理念.先进研发工具为一 ...

  9. Shell:Lite OS在线调试工具知多少

    摘要:Shell作为Huawei Liteos在线调试工具,可以通过串口工具输入输出,支持常用的基本调试功能.同时用户可以新增定制的命令,新增命令需重新编译烧录后才能执行 本文分享自华为云社区< ...

  10. TypeScript里string和String,真不是仅仅是大小写的区别

    摘要:通常来说,string表示原生类型,而String表示对象. 本文分享自华为云社区<TypeScript里string和String的区别>,作者:gentle_zhou . 背景 ...