草庐IT

k8s服务突然中断重启原因排查-eviction manager: must evict pod(s) to reclaim memory

1.故障背景20230512早上9点半左右,服务突然中断造成产品不可用。2.设想重启原因:1.时间端内有占用大内存操作,定时任务,造成内存溢出或者探针失败重启2.时间段内业务高峰,内存溢出或探针失败重启3.kafka大量失败造成应用重启。那么kafka失败原因排查3.排查过程3.1排查应用不可用探针失败造成重启首先查看pod状态:所有pod都有一次重启记录。检查pod状态:因为pod已经重启了。查看现在pod详情还是可以看到探针超时。检查探针设置:PodEvents中超时的是readiness探针。解释下探针:readinessprobes:就绪性探针,用于检测应用实例当前是否可以接收请求,如

k8s学习笔记-2(Pod基础知识)

原创文档编写不易,未经许可请勿转载。文档中有疑问的可以邮件联系我。邮箱:yinwanit@163.com概念k8s中不能直接对容器进行管理,k8s中最小得的理单元即Pod。Pod分为静态POD和动态POD,静态Pod不通过kubelet管理。同一个pod内共享同一个网络命名空间,IP地址等信息没有配置在具体功能性容器上。Pod在k8s中归属apiVersion版本为v1。在编写yaml文件中apiVersion应该设置为v1。kind才能设置成Pod。在k8s中由两种创建pod的方式,一种是通过kubectlrun命令;一种是编写yaml文件,使用kubectl apply-fxxx.yaml

html - 我使用哪个 Perl 模块将 Pod 转换为 HTML?

我需要将Pod转换为HTML。有许多Pod::HTML和Pod::Simple::*模块。我应该使用哪一个? 最佳答案 简短的回答是Pod::Simple::XHTML.它产生有用而简洁的HTML输出。您可以通过查看位于http://metacpan.org的html源代码来查看输出示例。.它也适用于Pod::Simple::HTMLBatch如果您要转换多个文件,您应该检查一下。请注意,Pod::Simple::HTMLBatch的默认值是Pod::Simple::HTML。但是Pod::Simple的维护者DavidWheele

html - 我使用哪个 Perl 模块将 Pod 转换为 HTML?

我需要将Pod转换为HTML。有许多Pod::HTML和Pod::Simple::*模块。我应该使用哪一个? 最佳答案 简短的回答是Pod::Simple::XHTML.它产生有用而简洁的HTML输出。您可以通过查看位于http://metacpan.org的html源代码来查看输出示例。.它也适用于Pod::Simple::HTMLBatch如果您要转换多个文件,您应该检查一下。请注意,Pod::Simple::HTMLBatch的默认值是Pod::Simple::HTML。但是Pod::Simple的维护者DavidWheele

k8s 维护node与驱逐pod

1.维护node节点设置节点状态为不可调度状态,执行以下命令后,节点状态会多出一个SchedulingDisabled的状态,即新建的pod不会往该节点上调度,本身存在node中的pod保持正常运行kubectlcordonk8s-node01kubectlgetnode2.驱逐pod在node节点设置为不可调度状态后,就可以开始驱逐本节点上的pod了kubectldraink8s-node01--ignore-daemonsets--delete-local-data--delete-local-data:在驱逐节点之前,删除该节点上的Pod的本地数据。本地数据包括Pod的日志、镜像和其他本

Cilium系列-12-启用 Pod 的 BBR 拥塞控制

系列文章Cilium系列文章前言将Kubernetes的CNI从其他组件切换为Cilium,已经可以有效地提升网络的性能.但是通过对Cilium不同模式的切换/功能的启用,可以进一步提升Cilium的网络性能.具体调优项包括不限于:启用本地路由(NativeRouting)完全替换KubeProxyIP地址伪装(Masquerading)切换为基于eBPF的模式KubernetesNodePort实现在DSR(DirectServerReturn)模式下运行绕过iptables连接跟踪(BypassiptablesConnectionTracking)主机路由(HostRouting)切换为基

最新Mac上如何安装pod

在Mac上安装CocoaPods需要使用Ruby,请按照以下步骤操作:安装rvm,这是RubyVersionManager的缩写,它是一个命令行工具,用于安装不同版本的Ruby。打开终端并输入以下命令:$curl-Lhttps://get.rvm.io|bash-sstablejishaofngdeiMac:~dongda$curl-Lhttps://get.rvm.io|bash-sstable%Total%Received%XferdAverageSpeedTimeTimeTimeCurrentDloadUploadTotalSpentLeftSpeed100194100194001260

Kubernetes Pod 获取真实 IP 地址

1.准备1.1链路介绍7层转发链路:Client-->Nginx-->K8sNginxIngress4层转发链路:Client-->公有云SLB(或F5、LVS、Haproxy等)-->K8sNginxIngress实际业务可能会串联更多层级的转发。例如WAF、CDN、APIGateway一般都是7层转发,LB、LVS一般是4层TCP转发。1.2准备Whoami探针whomai是一个go编写的调试探针工具,回显http头信息。apiVersion:apps/v1kind:Deploymentmetadata:name:whoaminamespace:defaultlabels:app:whoa

k8s 多容器pod进入指定容器

kubectlexec-itprometheus-prometheus-server-697cccff9c-qtrf7-cprometheus-serversh[root@k8s-master-01~]#kubectlexec-itprometheus-prometheus-server-697cccff9c-qtrf7-cprometheus-servershkubectlexec[POD][COMMAND]isDEPRECATEDandwillberemovedinafutureversion.Usekubectlexec[POD]--[COMMAND]instead./prometheu

Kubernetes系列-删除deployment和pod

通过deployment创建的pod直接执行delete是不会正常被删除的,因为deployment中设置了pod的数量,deployment会动态维护pod的数量,倘若pod数量少于约定数量,deployment会创建pod,直到pod数量达到约定数量才会停止。如若需要针对pod进行下线,有以下两种方式:调整deployment中replicas数量设置为0,deployment监测到replicas数量发生变化后,会自动调整pod数量,直到pod数为0,此方法仅下线pod,deployment仍然存在,调整replicas数量后pod会恢复。删除deployment,删除后pod会自动删除