如何kill掉k8s pod的进程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何kill掉k8s pod的进程相关的知识,希望对你有一定的参考价值。

我先整体看Kubernetes些理念基本架构网络、资源管理、存储、服务发现、负载均衡、高用、rollingupgrade、安全、监控等面向家简单介绍Kubernetes些主要特性  包括些需要注意问题主要目帮助家快速理解Kubernetes主要功能今研究使用具候所参考帮助  1.Kubernetes些理念:  用户需要关需要少台机器需要关软件(服务)运行所需环境服务需要关api何服务拆服务何使用api整合  保证系统总按照用户指定状态运行  仅仅提给供容器服务同提供种软件系统升级式;保持HA前提升级系统用户想要功能难实现  些需要担需要担事情  更支持微服务理念划、细服务间边界比lablel、pod等概念引入  于Kubernetes架构参考官文档  致由些主要组件构包括Master节点kube-apiserver、kube-scheduler、kube-controller-manager、控制组件kubectl、状态存储etcd、Slave节点kubelet、kube-proxy及底层网络支持(用Flannel、OpenVSwitch、Weave等)  看微服务架构设计目前能支持单服务横向伸缩Kubernetes未版本解决  2.Kubernetes主要特性  网络、服务发现、负载均衡、资源管理、高用、存储、安全、监控等面向家简单介绍Kubernetes些主要特性->由于间限能简单些  另外于服务发现、高用监控些更详细介绍兴趣朋友通篇文章解  1)网络  Kubernetes网络式主要解决几问题:  a.紧耦合容器间通信通Podlocalhost访问解决  b.Pod间通信建立通信网比隧道、路由Flannel、OpenvSwitch、Weave  c.PodService及外部系统Service通信引入Service解决  Kubernetes网络给每Pod配IP址需要Pod间建立链接基本需要处理容器主机间端口映射  注意:Pod重建IP重新配所内网通信要依赖PodIP;通Service环境变量或者DNS解决  2)服务发现及负载均衡  kube-proxyDNSv1前Service含字段portalippublicIPs别指定服务虚拟ip服务口机ippublicIPs任意指定集群任意包含kube-proxy节点portalIp通NAT式跳转container内网址v1版本publicIPS约定废除标记deprecatedPublicIPs仅用作向兼容portalIp改ClusterIp,serviceport定义列表增加nodePort项即应node映射服务端口  DNS服务addon式需要安装skydnskube2dnskube2dns通读取KubernetesAPI获取服务clusterIPport信息同watch式检查service变及收集变信息并于ip信息提交给etcd存档skydns通etcd内DNS记录信息启53端口外提供服务概DNS域名记录servicename.namespace.tenx.domain,tenx.domain提前设置主域名  注意:kube-proxy集群规模较能访问性能问题考虑用其式替换比HAProxy直接导流Serviceendpints或者PodsKubernetes官修复问题  3)资源管理  3层资源限制式别Container、Pod、Namespace层Container层主要利用容器本身支持比DockerCPU、内存、磁盘、网络等支持;Pod面限制系统内创建Pod资源范围比或者CPU、memory需求;Namespace层用户级别资源限额包括CPU、内存限定Pod、rc、service数量  资源管理模型-》简单、通用、准确并扩展  目前资源配计算相简单没资源抢占类强功能通每节点资源总量、及已经使用各种资源加权计算某Pod优先非配哪些节点没加入节点实际用资源评估需要自schedulerplugin支持其实kubelet已经拿节点资源要进行收集计算即相信Kubernetes续版本支持  4)高用  主要指Master节点HA式官推荐利用etcd实现master选举Masterkube-apiserver保证至少master用实现highavailability外loadbalancer式提供入口种式用作ha仍未熟据解未更新升级ha功能  张图帮助家理解:  etcd集群背景存kube-apiserver并用pod-master保证仅主master用同kube-shedullerkube-controller-manager存且伴随着kube-apiserver同间能套运行  5)rollingupgrade  RC始设计让rollingupgrade变更容易通替换Pod更新service实现服务断间化基本思路创建复本1新rc并逐步减少rc复本、增加新rc复本rc数量0其删除  通kubectl提供指定更新镜像、替换pod间间隔rollback前执行upgrade操作  同Kuberntes支持版本同部署并通lable进行区service变情况调整支撑服务Pod测试、监控新Pod工作情况  6)存储  家都知道容器本身般数据进行持久化处理Kubernetes容器异退kubelet简单基于原镜像重启新容器另外我同Pod运行容器经需要些容器间进行共享些数据KuberenetesVolume主要解决面两基础问题  DockerVolume概念相简单且目前支持限KubernetesVolume则着清晰定义广泛支持其核理念:Volume目录并同Pod所容器访问目录端用介质面内容则由使用特定Volume类型决定  创建带VolumePod:  spec.volumes指定Pod需要volume信息spec.containers.volumeMounts指定哪些container需要用VolumeKubernetesVolume支持非广泛贡献者其添加同存储支持反映Kubernetes社区跃程度  emptyDir随Pod删除适用于临存储、灾难恢复、共享运行数据支持RAM-backedfilesystemhostPath类似于Docker本Volume用于访问些本资源(比本Docker)  gcePersistentDiskGCEdisk-GoogleCloudEngine平台用  awsElasticBlockStore类似于GCEdisk节点必须AWSEC2实例nfs-支持网络文件系统  rbd-RadosBlockDevice-Ceph  secret用通KubernetesAPI向Pod传递敏信息使用tmpfs(aRAM-backedfilesystem)  persistentVolumeClaim-抽象PV申请资源需关存储提供  glusterfs  iscsi  gitRepo  根据自需求选择合适存储类型反支持够总用款适合:)  7)安全  些主要原则:  基础设施模块应该通APIserver交换数据、修改系统状态且APIserver访问端存储(etcd)  用户同角色:Developers/ProjectAdmins/Administrators  允许Developers定义secrets象并pod启关联相关容器  secret例kubelet要pull私镜像Kubernetes支持式:  通dockerlogin.dockercfg文件进行全局授权  通每namespace创建用户secret象创建Pod指定imagePullSecrets属性(统设置serviceAcouunt)进行授权  认证(Authentication)  APIserver支持证书、token、基本信息三种认证式  授权(Authorization)  通apiserver安全端口authorization应用所http请求  AlwaysDeny、AlwaysAllow、ABAC三种模式其需求自实现Authorizer接口  8)监控  比较版本Kubernetes需要外接cadvisor主要功能node主机containermetrics抓取较新版本cadvior功能集kubelet组件kubelet与docker交互同外提供监控服务  Kubernetes集群范围内监控主要由kubelet、heapsterstoragebackend(influxdb)构建Heapster集群范围获取metrics事件数据pod式运行k8s平台单独运行standalone式  注意:heapster目前未1.0版本于规模集群监控比较便于较规模集群heapster目前cache式吃掉量内存要定获取整集群容器信息信息内存临存储问题再加heaspter要支持api获取临metricsheapsterpod式运行容易现OOM所目前建议关掉cache并standalone式独立k8s平台 参考技术A kubectl delete pods pod_name

linux如何杀掉线程

参考技术A 我们使用linux时遇到端口占用,在了解占用程序影响不大的情况下,会通过netstat命令找到占用端口的进程,直接kill掉
查找端口占用命令:
netstat -tnlp | grep 80
可以看到,进程id为20902的进程占用了80端口
我们可以选择使用命令 kill pid 杀掉进程
kill 20902

或者使用kill -9 pid 强杀进程
kill -9 20902

如果你需要杀掉所有筛选结果下的进程可以使用
ps -aux|grep name|awk 'print $2'|xargs kill -9
其中name是你要查询的服务名称,例如我要查nginx的所有服务可以使用
ps -aux|grep nginx
我们要筛选出第二项pid
ps -aux|grep name|awk 'print $2'

筛选出后要杀掉这些进程
ps -aux|grep name|awk 'print $2'|xargs kill -9

这样就批量杀掉筛选出的所有进程了

以上是关于如何kill掉k8s pod的进程的主要内容,如果未能解决你的问题,请参考以下文章

JVM故障问题排查心得「内存诊断系列」Docker容器经常被kill掉,k8s中该节点的pod也被驱赶,怎么分析?

如何kill掉进程

k8s之Pod健康检测

k8s pod 如何删除

linux如何杀掉线程

k8s 如何利用terminationGracePeriodSeconds 优雅地关闭你的服务?