 2025-1-15
2025-1-15给默认的服务账号service account: default赋予当前namespace的最高权限, 但是仅有这些权限.创建namespace之后, 里面会自带一个默认的service account, 名字是default. 它是没有任何权限的.Error from server (Forbidden): pods is forbidden: User system:serviceaccount:test-namespace:default cannot list resource pods in API group in the namespace default Error from server (Forbidden): storageclasses.storage.k8s.io is forbidden: User system:serviceaccount:test-namespace:default cannot list resource storageclasses in API group storage.k8s.io at the cluster scope
 2025-1-15
2025-1-15问题描述
#
用户反应, 在kubernetes中部署的pod去访问外部的redis时, 速度很慢.
redis地址: 10.193.96.73:20100,10.193.96.73:20101,10.193.96.188:20100,10.193.96.188:20101,10.193.96.189:20100,10.193.96.189:20101
已知:
- pod ip: 10.194.43.122
- pod所在机器ip: 10.193.40.57
tcpdump抓包
#
我们选择一个redis端点(10.193.96.188:20101)抓包, 登录pod所在node(10.193.40.57)执行抓包:
tcpdump -n -i eth0 'host 10.193.96.188 and port 20101'
... 2025-1-8
2025-1-8问题描述
#
反应执行kubectl命令没有权限:
| 1
2
 | $ kubectl get pod -A
Error from server (Forbidden): pods is forbidden: User "kubernetes-admin" cannot list resource "pods" in API group "" at the cluster scope
 | 
解决思路
#
首先要了解几个文件夹的作用:
... 2023-9-4
2023-9-4使用VeleroFSB备份集群的时候, 遇到了一些错误, 导致整个备份任务没有成功, 状态: PartiallyFailed: failed to list daemonset pods: client rate limiter Wait returned an error: context deadline exceeded
 2023-4-4
2023-4-4由于Kubernetes中部署的服务队外发起的tcp请求很难监控, 最近数据库运维在排查来自集群的大量数据库请求, 网络层只能看到来自哪个Kubernetes节点主机. 所以写了下面这个脚本来定时扫描.
 2022-7-31
2022-7-31Fluentd负责Kubernetes中容器日志的收集工作, 以Daemonset形式运行在每一个节点上. 下面这个配置是在多个生产集群使用的配置, 经过多次调优的. 有一些关键的配置增加了配置解释说明. 目前使用问题不大. 持续更新配置中…
 2022-7-16
2022-7-16新建集群的第一步就是要规划服务器、网络、操作系统等等, 下面就结合我平时的工作经验总结下相关的要求, 内容根据日常工作持续补充完善:
服务器配置
#
kubernetes 集群分为控制节点和数据节点, 它们对于配置的要求有所不同:
控制面
#
| 节点规模 | Master规格 | 
|---|
| 1~5个节点 | 4核 8Gi(不建议2核 4Gi) | 
| 6~20个节点 | 4核 16Gi | 
| 21~100个节点 | 8核 32Gi | 
| 100~200个节点 | 16核 64Gi | 
系统盘40+Gi,用于储存 etcd 信息及相关配置文件等
... 2022-5-15
2022-5-15控制组(cgroups)是内核的一个特性,它能限制/统计/隔离一个或者多个进程使用CPU、内存、磁盘I/O和网络。cgroups技术最开始是Google开发,最终在2.6.24版本的内核中出现。3.15和3.16版本内核将合并进重新设计的cgroups,它添加来kernfs(拆分一些sysfs逻辑)。cgroups的主要设计目标是提供一个统一的接口,它可以管理进程或者整个操作系统级别的虚拟化,包含Linux容器,或者LXC。
 2022-4-27
2022-4-27负载过高分析
#
通过 linux 提供的几个命令可以从不同的纬度分析系统负载。
vmstat
#
这命令能从一个系统的角度反应出服务器情况,报告虚拟内存统计信息,报告有关进程、内存、分页、块的信息 IO、陷阱、磁盘和 CPU 活动。看个例子:
| 1
2
3
4
5
6
7
8
 | $ vmstat --wide --unit M 5
procs ----------------memory---------------- ---swap--- -----io---- ---system--- ---------cpu--------
 r  b     swpd      free      buff     cache   si   so    bi    bo     in   cs     us sy  id  wa  st
 1  1        0    127691      1535     73572    0    0     0     3      0    0     2   1  97   0   0
93  0        0    127674      1535     73573    0    0     0    80   49267 67634   5   1  94   1   0
 0  2        0    127679      1535     73573    0    0     0    66   38537 56283   3   1  95   1   0
 2  2        0    127738      1535     73574    0    0     6    86   41769 61823   5   1  93   2   0
 2  0        0    127729      1535     73574    0    0    18    18   41002 59214   4   1  95   0   0
 | 
命令以及输出解释:
... 2022-4-14
2022-4-14apisix-ingress-controller 要求 kubernetes 版本 1.16+. 因为使用了 CustomResourceDefinition v1 stable 版本的 API. 从 1.0.0 版本开始,APISIX-ingress-controller 要求 Apache APISIX 版本 2.7+.