
《容器排障指南》
文章平均质量分 56
0
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
k8s小王
知识改变命运,学习提升技能,技术成就梦想!欢迎各位大佬咨询交流哈~
本人目前从事云运维工作,有需要招聘的可以联系我哈~
展开
-
The connection to the server localhost:8080 was refused
执行命令:$ kubectl get nodes报错如下:The connection to the server localhost:8080 was refused - did you specify the right host or port?报错说明:这个错误在 master 和 node 节点上都有可能出现,报错是与服务器连接被拒绝。解决方案:master$ mkdir -p $HOME/.kube$ cp -i /etc/kubernetes/admin.conf $HOME/.kube原创 2022-06-14 04:07:40 · 6445 阅读 · 0 评论 -
k8s 删除流程
(3)API Server 检查 Finalizers 并结合是否需要进行 graceful 删除,来决定是否立即删除对象(若对象需要进行 graceful 删除,更新 metadata.DeletionGracePeriodSecond 和metadata.DeletionTimestamp 字段,不从存储中删除对象;比如namespace控制器无法删除完空间内所有的对象,特别是在使用 aggregated apiserver 时,第三方 apiserver 服务故障导致无法删除其对象。原创 2024-07-24 00:52:46 · 839 阅读 · 0 评论 -
k8s集群初始化失败
现象:连接拒绝、连接超时。一般是cri服务异常。原创 2024-06-07 00:01:21 · 283 阅读 · 0 评论 -
容器CBS-CSI 常见报错和处理
原因:WaitForFirstConsumer 挂载模式依赖调度器触发云硬盘创建,而指定了 nodeName 参数会导致 Pod 在调度时跳过调度器,从而无法通知插件进行云硬盘创建。原因:cbs 插件在创建云硬盘时,会将集群的云标签集成到云硬盘上。原因:用户配置的 cbs 盘大小不符合规范导致买盘失败,不同类型的 cbs 盘,支持大小区间不同,具体查看 云硬盘类型文档。原因:cbs 插件在创建云硬盘时,会将集群的云标签继承到云硬盘上。解决措施:修改相关集群云标签,避免将标签 value 配置为空。原创 2024-04-08 13:56:08 · 712 阅读 · 1 评论 -
strace 命令详解
这是因为这里的 exit 函数不是系统调用,而是 glibc 库提供的一个函数,exit 函数的调用最终会转化为 exit_group 系统调用,它会退出当前进程的所有线程。比如我们知道创建进程使用的是 fork 系统调用,但在 glibc 里面,fork 的调用实际上映射到了更底层的 clone 系统调用。实际上,通过分析,我们发现机器上别的服务有个监控脚本,它监控一个也叫做 run.sh 的进程,当发现 run.sh 进程数大于 2 时,就会把它杀死重启。两段代码实现的目的是一样的。原创 2023-04-22 15:41:23 · 677 阅读 · 1 评论 -
curl ip.sb查询公网ip
ubuntu@VM-0-15-ubuntu:~$ curl ip.sb115.159.x.yubuntu@VM-0-15-ubuntu:~$原创 2023-04-14 16:01:21 · 848 阅读 · 0 评论 -
获取当前Linux的外网地址 curl ifconfig.me
curl ifconfig.me原创 2023-04-14 15:59:53 · 635 阅读 · 0 评论 -
集群断电重启The connection to the server apiserver.k8s:6443 was refused - did you specify the right
5.如果发现Unit kubelet.service entered failed state.code=exited, status=255 说明这台节点有污点 ,将污点删除。可以采用临时关闭 swapoff -a 但是断电重启之后需要再次设置 也可以设置永久关闭。6.排除问题之后 systemctl start kubelet 重启完成。3.查看kubelet 服务 是否正常。4.如果一会又不正常了请看详细信息。1.断电之后发现集群没有启动起来。2各个节点之间防火墙 一定要检查。原创 2022-10-22 01:21:15 · 3619 阅读 · 0 评论 -
pid上限问题,linux进程pid达到最大值,linux进程数最大值修改方法
1、此时,使用根用户不断创建进程,最终创建了约32378,考虑到原有的进程数,比较接近pid_max这个值;这个值表示单个用户允许的最大进程数上限。3、RLIMIT_NPROC (ulimit -u 或者 getrlimit)3、修改pid_max为80000,换成普通用户,最终创建了67913个进程。这个值表示进程ID的上限。为了兼容旧版,默认为32768(即两个字节)。2、改pid_max为18000时,最终创建了17612个进程;原创 2022-10-05 13:13:47 · 3725 阅读 · 0 评论 -
【云原生kubernetes】coredns解析集群外部域名
在实际的生产中,容器化并不是从服务的最初开发阶段便被应用的,因此,只要不是雷同,服务运行时实际所需的域名一定不是xxxx.default.svc.cluster.local, 而一定是其他的格式,例如:proxy.mgmt.pix.yun.com。么, 在哪里可以设置容器的/etc/resolv.conf中的该选项呢?众所周知,在一个kubernetes集群中,各服务之间可以通过各自的FQDN互相访问,而集群中的kube-dns服务为此提供了域名解析的功能, 使用如下的命令可以看到。kube-dns简介。.原创 2022-08-14 14:09:22 · 622 阅读 · 0 评论 -
calico报错Init:0/3或Init:RunContainerError
先用kubectl get pods --all-namespaces -owide查看问题pod,然后用kubectl describe pod pod_name -n kube-system来查看日志,一般情况下,我们都是可以通过这个方式来获取到报错原因的【一波情况下哈,并非绝对】把imagePullPolicy: IfNotPresent删掉,因为这个部署如果本地有镜像以后,即使是离线环境也默认使用本地镜像的,不需要指定imagePullPolicy: IfNotPresent,指定后就报错了。...原创 2022-08-11 00:01:57 · 2920 阅读 · 0 评论 -
容器内存溢出排障思路
kmem account 是cgroup 的一个扩展,全称CONFIG_MEMCG_KMEM,属于机器默认配置,本身没啥问题,只是该特性在 3.10 的内核上存在漏洞有内存泄露问题,4.x的内核修复了这个问题。为了防止这种攻击,社区中提议通过linux内核限制 cgroup中的kmem 容量,从而限制恶意进程的行为,即kernel memory accounting机制。因为3.10 的内核已经明确提示 kmem 是实验性质,我们仍然使用该特性,所以这其实不算内核的问题,是 k8s 兼容问题。...原创 2022-08-10 22:03:04 · 987 阅读 · 0 评论 -
k8s如何强制删除pod&pv&pvc和ns&namespace方法
目录注意:以下操作方法十分危险,三思而行!!!如果名称空间、pod、pv、pvc全部处于“Terminating”状态时,此时的该名称空间下的所有控制器都已经被删除了,之所以出现pod、pvc、pv、ns无法删除,那是因为kubelet 阻塞,有其他的资源在使用该namespace,比如CRD等,尝试重启kubelet,再删除该namespace 也不好使。正确的删除方法:删除pod--> 删除pvc ---> 删除pv --> 删除名称空间。...原创 2022-08-05 19:54:16 · 2403 阅读 · 0 评论 -
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of
当kubeadm安装完k8s后,使用kubectl命令,报错。原创 2022-08-01 23:37:43 · 6397 阅读 · 0 评论 -
获取 GPG 密钥失败:[Errno 14] curl#37 - “Couldn‘t open file /etc/pki/rpm-gpg/
把gpgcheck=1改为gpgcheck=0即可,意思是在安装的时候不进行源的检查。这个就是安装的时候会检查key这个可以再repo文件中关闭即可。原创 2022-07-31 17:50:11 · 2168 阅读 · 0 评论 -
k3s的nodeport端口未监听
我正在使用k3d (docker中的k3s)做一些教程,我的yml看起来像这样:复制结果节点端口为31747:复制然而,wget不起作用:复制我错过了什么?我已经确保我的标签都写着,我的、和都是80;问题是,NodePort范围是否从主机映射到充当节点的码头容器。命令将向您展示,有关更多详细信息,您可以并查看下的属性。我没有k3d,但这里有一个来自kind的例子。复制复制如果不是,按照注释中的建议使用可能是最简单的方法。或者,开始研究Ingress。入口是在集群外部公开工作负载原创 2022-07-12 23:02:31 · 1631 阅读 · 0 评论 -
pod 排障常用命令
kubectlgetall-nkube-system-lk8s-app=kube-dns//根据label查找资源,这里查找kube-system域名下k8s-app标签为kube-dns的所有资源,例如pod、service、deployment等.注意不包括configmap。有的时候一个pod中有多个容器,只有针对整个pod的命令才有效,此时需要指定container,这里指定的是container-name(可以用kubectldescribepod查看所有的容器名称)......原创 2022-07-17 10:20:01 · 715 阅读 · 0 评论 -
节点状态异常思路
要解决和了解节点状态为何会发生异常需要先了解k8s体系组件的基本知识与原理Kubernetes 组件在k8s容器集群运行过程,时长遇到节点运行状态异常的问题和因为组件异常、系统内核死锁、资源不足等原因引起节点状态不可知。该问题可能的原因有:1.节点停机2.节点组件kubelet异常3.节点docker异常4.节点的systemd的版本过低触发pleg的bug (低版本的systemd (67版本之前),dbus的cookie溢出,导致docker、kubelet组件无法正常运行,包括runc 夯死原创 2022-07-08 14:09:08 · 1610 阅读 · 0 评论 -
DNS解析异常
排查思路原创 2022-07-08 13:14:32 · 1341 阅读 · 1 评论 -
RBAC授权模式操作
或者让主账号给子账号在CAM拥有AcquireClusterAdminRoleAction权限之后可以通过此方式获取集群KubernetesRBAC的tkeadmin角色。,联系集群管理员(一般集群创建者和主账号都是默认集群admin角色)通过登录容器控制台,点击对应集群,在授权管理处为子账号添加对应集群权限。1,目前新集群默认开启了RBAC授权模式,便于对子账号进行细粒度的访问权限控制。如下步骤集群>授权管理>RBAC策略生成器>下一步。CAM,新建策略>按策略生成器创建。......原创 2022-07-22 01:10:31 · 432 阅读 · 0 评论 -
初始化失败:已解决:error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR Port-6443]
[root@k8s-master01 ~]# kubeadm init --config=kubeadm-config.yaml --experimental-upload-certs | tee kubeadm-init.logFlag --experimental-upload-certs has been deprecated, use --upload-certs instead[init] Using Kubernetes version: v1.15.1[preflight] Runnin原创 2022-06-14 02:50:13 · 4561 阅读 · 0 评论 -
[ERROR SystemVerification]: failed to parse kernel config: unable to load kernel module: “configs“
[ERROR SystemVerification]: failed to parse kernel config: unable to load kernel module: “configs“,解决方法:安装kubernetes集群时,出现以上报错。解决方法:方法一、忽略该错误添加 --ignore-preflight-errors=SystemVerification选项来忽略该错误,暂时无法判断使用该选项,后续会不会出现其他问题。方法二、升级内核版本我安装kubernetes集群使用的是4.19.1原创 2022-06-14 02:47:28 · 4053 阅读 · 3 评论