如何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_namelinux如何杀掉线程
参考技术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的进程的主要内容,如果未能解决你的问题,请参考以下文章