![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Kubernetes
Kubernetes
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
时空无限
为信仰而生
展开
-
k8s kube-proxy pod 启动失败 failed to try resolving symlinks in path ... no such file or directory
exec format error 这是镜像跟 cpu 架构不匹配导致的。由于问题容器太多,先删除一下,它会自动再启动。删除 kube-proxy pod。上问题 pod 的宿主机上执行。过滤下 proxy 相关容器。由于删除了一次,只剩两个容器。原创 2024-07-19 12:16:53 · 726 阅读 · 0 评论 -
ceph mgr [errno 39] RBD image has snapshots (error deleting image from trash)
再查看 rdb task 为空,日志也就没有了告警。说明:这个知识消除了日志中的输出报错。从 trash 中恢复 image。ceph mgr 报错。原创 2024-07-08 19:31:07 · 532 阅读 · 0 评论 -
helm 报错处理
deploy 资源中字段配置和 helm charts 中配置不一致导致的。原创 2024-06-21 18:56:18 · 101 阅读 · 0 评论 -
grafana Not saving new dashboard due to restricted database access
grafana 容器中是否存在非唯一的仪表板 uid 和 title,例如。再通过重复的 uid 718Bruins 查看是哪些 json 文件重复了。再通过重复的 uid Oxed_c6Wz 查看是哪些 json 文件重复了。根据过滤出的重复 uid 和 title 修改相应的 json 文件即可。检查 grafana 容器中是否存在非唯一的仪表板 title,例如。检查 grafana 容器中是否存在非唯一的仪表板 uid,例如。grafana 容器日志报错。上诉命令可以合在一起。原创 2024-06-21 15:55:19 · 399 阅读 · 0 评论 -
kube-prometheus-stack 识别 k8s 集群内所有的 ServiceMonitor 和 PrometheusRule
默认情况下,kube-prometheus-stack 只自己创建的 ServiceMonitor,如果 k8s 集群内有多个非 kube-prometheus-stack 创建的 ServiceMonitor,不会被识别到。PrometheusRule 同理。要识别所有的 ServiceMonitor 和 PrometheusRule ,需要在 values.yaml 配置如下。原创 2024-05-29 18:25:25 · 259 阅读 · 0 评论 -
istiod 部署及使用
1.执行任何必要的。2.检查。3.或更高的版本。4.配置 Helm 存储库。原创 2024-05-28 19:49:26 · 119 阅读 · 0 评论 -
metailb 为 k8s 创建 LoadBalancer 类型的 svc
说明:192.168.0.100/24 为 k8s node 的 ip 段。将如下内容添加到 ip.yaml 文件中metadata:addresses:使配置生效更多详情请参考 MetalLB 官网。原创 2024-05-23 19:16:16 · 192 阅读 · 0 评论 -
k3s cpu load 和 cpu 使用率很高处理
在这期间还执行过缩减 sqlite3 数据库操作,不知道是哪个操作起了作用,亦或者两个操作有影响,删除 ns 促进了数据库缩减的执行(没删除之前数据库缩减不成功,db文件大小未减小,但不确定是不是执行完 VACUUM 之后需要时间 db 文件才会减小,或者是因为删除了 ns 才导致其减小),再或者是两个操作都起了作用。kubectl get ns 发现有很多卡在删除状态的 ns。k3s 官网关于这个问题的谈论。执行如下脚本删除掉这些 ns。有人详细说过这个问题。原创 2024-04-25 18:04:15 · 91 阅读 · 0 评论 -
k8s rook-ceph rpc error: code = Internal desc = stat /var/lib/… globalmount: permission denied
kubeadm 部署的 k8s 集群,rook-ceph 部署的存储。登录该 pod 所在的宿主机,可以看到挂载的问题挂载点,这里是。客户端 pod 挂载 cephfs 的 pvc 报错。但是,按照这个操作,pod 会报新的错误,如下。1、直接重启 pod 所在的宿主机。describe pod 信息如下。ls 查看会报没有权限的错误。中提到了另外一种解决方法,原创 2024-04-24 11:35:01 · 38 阅读 · 0 评论 -
k8s rook-ceph MountDevice failed for volume pvc An operation with the given Volume ID already exists
如果挂载不上使用 telnet xx.xx.xx.xx:6789 ,正常是能通的,或者 curl xx.xx.xx.xx:6789(注意curl要取消操作系统中的代理配置)正常也是通的。kubeadm 搭建的 k8s 集群,rook-ceph 部署的 ceph 存储,mon pod 所在宿主机和挂载客户端机器 pod 所在机器不在一个二层网络里。xxxxxxxx 为 /etc/ceph/keyring中的key,这个文件在 rook-ceph-tools-xxxxx 这个 pod 中有。原创 2024-04-24 11:15:07 · 84 阅读 · 0 评论 -
ubuntu 安装 infiniband 和 RoCE 驱动
安装完成后重启 openibd 服务。原创 2024-03-12 16:34:43 · 254 阅读 · 0 评论 -
k8s infiniband 和 RoCE(RDMA over Converged Ethernet)
vendors 为设备厂商编号,注意这里不是 ibv_devinfo 命令看到的vendor_id 的值,而是 lspci -n |grep “网卡的bdf” 得到的。如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod roce 设备 ip 为 10.56.217.79)如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod ip 为 10.96.225.24)说明:文中用到的镜像是自定义的,文末有其Dockerfile 文件。修改该文件,增加污点容忍的内容,如下。原创 2024-03-05 11:53:06 · 402 阅读 · 0 评论 -
k8s network-attachment-definition
这里列举了 3 个示例metadata:spec:config: '{"ipam": {],}'---metadata:spec:config: '{"ipam": {],}'---metadata:spec:config: '{"ipam": {],},}'EOF执行创建查看创建的 network-attachment-definitionNAME AGE。原创 2024-03-01 15:08:46 · 503 阅读 · 0 评论 -
attachdetach-controller Multi-Attach error for volume Volume is already exclusively attached to on
由于未知原因,pod 挂载了 rook-ceph 的 rbd pv,启动pod 失败。报错如下。原创 2024-02-28 12:53:42 · 122 阅读 · 0 评论 -
dragonfly 加 harbor 实现镜像预热
会话超时时间 和 令牌过期时间都是 默认 30分钟,加上限速 1M/s,因此当一个镜像 layer 超过 2G 的时候会预热失败(不通过 harbor 的方式预热),这个问题看 dragonfly issue。【项目】-选择设置了 P2P 预热并且想要预热的项目点进去-【P2P预热】-【新建策略】-选中策略-【其他操作】-【执行】-【确定】【项目】-选择触发了 P2P 预热的项目点进去-【P2P预热】-【新建策略】-选中策略。【项目】-选择一个项目点进去-【P2P预热】-【新建策略】原创 2024-01-16 19:05:33 · 336 阅读 · 0 评论 -
prometheus record
这是因为prometheus设置了record,例如,真实的查询语句是expr部分的内容。有时候监控图中的promsql语句类似于如下这样。原创 2024-01-08 18:55:55 · 445 阅读 · 0 评论 -
k8s 安装firewalld导致的网络疑难问题处理
如果安装过 firewalld,并且卸载掉,造成了奇奇怪怪的问题,处理方法为再次安装 firewalld,然后执行 systemctl disable --now firewalld。如果安装了firewalld,直接卸载掉是不行的,仍然会造成奇奇怪怪的问题,比如在节点上ping pod ip 不通,traefik ingress 无法访问服务(502)等。部署了k8s集群,n 台 机器,某些机器之间 telnet ip 10250不通。问题机器上安装了 firewalld。原创 2023-12-12 16:58:21 · 292 阅读 · 0 评论 -
k8s yaml 中如何写 shell 命令
【代码】k8s yaml 中如何写 shell 命令。原创 2023-11-10 23:56:24 · 231 阅读 · 0 评论 -
jsonpath 和 jq 查询 pod 镜像
【代码】jsonpath 和 jq 查询 pod 镜像。原创 2023-11-10 23:48:36 · 81 阅读 · 0 评论 -
kube-prometheus-stack监控k8s1.24+ docker缺少图像
由于 Kubernetes 1.24 已经从 cadvisor 中删除了 docker 插件,因此虽然可以使用 cri-dockerd 来适配容器运行时,但 cadvisor 无法获取有关图像标签等 docker 容器信息。解决方法为对 prometheusrule 进行修改。参考 https://github.com/kubernetes/kubernetes/issues/111077。查看cadvisor中是有监控指标的,因此判定是 prometheus 配置导致的缺少容器网络指标。原创 2023-11-06 11:24:51 · 460 阅读 · 0 评论 -
k8s pvc 扩容报错could not be patched: is forbidden: only dynamically provisioned pvc can be resized and
pvc扩容后端sc必须设置参数 allowVolumeExpansion: true。原创 2023-10-17 12:03:30 · 151 阅读 · 0 评论 -
velero 迁移k8s集群资源
前言高版本的velero和低版本的velero部署参数有所变化,网上的文章大多是老旧版本的,另外即便是新版本的,说明以及例子也不够详细,照着做不会成功,故写本文,本文采用最新版本1.12.0进行说明。截止2023-10-11,velero版本为1.12.0。原创 2023-10-13 11:05:42 · 544 阅读 · 0 评论 -
grafana 监控无图解决
Kube1.24已经从cadvisor中删除了docker插件,因此虽然可以使用cri-dockerd来适配容器运行时,但cadvisor无法获取有关图像标签等docker容器信息。分析,是因为数据缺少container标签,而grafana查询语句中带有这个标签导致的无数据。进grafana dashboards 任意选取一张有问题的图,查看查询语句,如下。部署上之后,发现grafana很多dashboard无图。到prometheus界面执行如下语句查询。grafana查询语句修改为。原创 2023-09-11 17:28:35 · 623 阅读 · 0 评论 -
prometheus监控k8s kube-proxy target down
删除 kube-proxy pod 使之重启应用配置。原创 2023-08-02 15:15:56 · 1329 阅读 · 0 评论 -
k8s部署minio
说明:也可由页面创建,这里使用命令行创建,页面创建的租户的 console 的svc默认为LoadBalancer类型,如下命令行创建的为CusterIP类型。这时候租户pod会重启,待重启完毕后再次查看其日志,会发现url信息由于https变为了http,并且console的svc端口由9443变为9090。创建完租户后查看租户pod的日志会看到报错,报错信息类似如下。在要方案的计算机中的/etc/hosts文件中加入域名解析。说明:ip地址为traefik的pod运行的节点的ip。原创 2023-07-21 10:14:18 · 251 阅读 · 0 评论 -
pod 无法启动 standard_init_linux.go:228: exec user process caused: argument list too long
将pod.spec.enableServiceLinks: 的值改为false。k8s集群中,有的pod正常,但有的pod无法启动,查看pod日志发现如下错误。原创 2023-07-11 10:18:17 · 439 阅读 · 0 评论 -
helm部署traefik
注意:访问的时候加上web entrypoint的hostPort端口号指定的值,如果不指定,默认值为8000。192.168.64.6 是启动traefik的pod 所在的节点。修改traefik/values.yaml。下载traefik charts到本地。添加traefik的helm源。原创 2023-07-07 15:37:35 · 456 阅读 · 0 评论 -
如何在 XFS / 分区上启用配额支持
要求就是xfs文件系统,overlay2存储,并且挂载参数为pquota,mount查看挂载参数为usrquota,prjquota,但不影响docker使用–storage-opt 参数限制启动的容器的磁盘用量(对于xfs文件系统来说prjquota和prjquota一样)。警告:如果是ext3/ext4文件系统的/分区,只需要修改/etc/fstab文件中的挂载选项即可,如果是xfs文件系统的/分区,则还需要修改grub参数。重启成功后,再次登录操作系统,查看是否启用新选项挂载文件系统。原创 2023-07-03 11:54:07 · 242 阅读 · 0 评论 -
kubeadm reset 报错 Found multiple CRI endpoints on the host
【代码】kubeadm reset 报错 Found multiple CRI endpoints on the host。原创 2023-06-30 17:24:16 · 564 阅读 · 0 评论 -
helm查看部署的values的值
以calico为例搜索chart名字查看部署的calico版本等信息结合helm search repo projectcalico输出可看出部署的为projectcalico/tigera-operator,版本为v3.20.6查看特定版本图表中可以自定义的值输出即为部署的calico自定义的values值原创 2023-06-30 11:48:42 · 633 阅读 · 0 评论 -
helm pending-upgrade处理
pending-upgrade 状态的需要加-a查看。原创 2023-06-27 18:12:50 · 389 阅读 · 0 评论 -
安装cri-dockerd
根据系统选择对应的安装包。原创 2023-06-27 14:15:39 · 1108 阅读 · 0 评论 -
lxcfs + cgroup v2 + docker + k8s 实现资源视图限制
说明:如果不配置这个,无法对cgroup v2 做资源视图限制。宿主机/var/lib/lxcfs/目录会生成如下内容。查看cgroups版本。原创 2023-06-26 19:20:44 · 534 阅读 · 0 评论 -
kubelet调整cpu绑核后不重启主机
如下所示,给kubelet指定cpu后,如果要修改,比如从0-3改为0-7,只是重启kubelet会报错,导致kubelet有问题。不重启主机,直接重启kubelet的方法。删除旧的 CPU 管理器状态文件。重启kubelet即可。原创 2023-06-23 08:55:45 · 238 阅读 · 0 评论 -
ctr命令
【代码】ctr命令。原创 2023-06-22 18:43:31 · 304 阅读 · 0 评论 -
k8s 不同node之间pod ip不通
底层k8s使用calico网络,ipip网络模式,kubevirt启动了2台虚拟机;在这两台虚拟机上再搭建k8s,calico网络,ipip网络模式。说明:我是使用helm安装的calico,改这个模式要改crd资源ippools。其他方式安装的calico修改方法可能不一样。在虚拟机上的k8s上启动了2个pod,分布在不同的node上,这两个pod不能ping通对方的pod ip。修改虚拟机之上的k8s集群的calico网络的ipipMode为Never即可,之前使用的是Always。原创 2023-06-14 15:56:43 · 3103 阅读 · 3 评论 -
helm安装mysql
该项目地址https://github.com/bitpoke/mysql-operator。修改下vim mysql-operator/values.yaml,改成集群中存在的存储类。选择bitpoke/mysql-operator下载到本地。注意:使用–version可以选择版本。原创 2023-06-12 10:17:33 · 351 阅读 · 0 评论 -
helm部署mysql-operator报错mysql operator ERROR failed to open raft store
helm 部署mysql-operator。关掉代理,重新部署。原创 2023-06-08 13:59:56 · 215 阅读 · 0 评论 -
rook-ceph rpc error: code = Internal desc = rbd: map failed with error an error (exit status 95)
rook-ceph部署成功并创建好存储类,启用mysql测试对接存储,pvc pv状态都正常,但是对应的pod报错。原创 2023-06-08 10:30:14 · 345 阅读 · 0 评论 -
服务器配置IPMI远程访问及排错
这里以dell服务器为例,其他的服务器类似。可以进BIOS配置,但是BIOS都是英文,不方便查看每个配置项的意思,所以这里用web界面配置。通过web界面配置初始准备开机界面查看IPMI地址,默认为192.168.0.1。找根网线,一端连服务器的iDRAC口(如下图),一端连到笔记本网口,笔记本网卡IP配置成和IPMI地址同网段的。浏览器登录输入IPMI地址,初始账号为root,密码为calvin。配置IPMI远程登录后找到iDRAC设置—网络—IPMI设置,勾选启用LAN上的IPMI。原创 2020-12-04 15:47:24 · 7235 阅读 · 0 评论