ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

k8s--pod 介绍

2022-07-12 21:31:22  阅读:137  来源: 互联网

标签:容器 K8S kubectl -- pod k8s Pod delete


pod 概述

Pod 是 K8S 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型,也是在 K8S 上运行容器化应用的资源对象,其它的资源对象都是用来支撑或者扩展 Pod 对象功能的,比如控制器对象是用来管控 Pod 对象的,Service 或者 Ingress 资源对象是用来暴露 Pod 引用对象的,PersistentVolume 资源对象是用来为 Pod 提供存储等等,K8S 不会直接处理容器,而是 Pod,Pod 是由一个或多个 container 组成。

Pod 是 Kubernetes 的最重要概念,每一个 Pod 都有一个特殊的被称为 “根容器”的 Pause 容器。Pause 容器对应的镜像属于 Kubernetes 平台的一部分,除了 Pause 容器,每个 Pod 还包含一个或多个紧密相关的用户业务容器

Pod基本概念

  • 最小部署的单元
  • Pod 里面是由一个或多个容器组成【一组容器的集合】
  • 一个 pod 中的容器是共享网络命名空间
  • Pod 生命周期是短暂的
  • 每个 Pod 包含一个或多个紧密相关的用户业务容器

Pod存在的意义

  • 创建容器使用 docker,一个 docker 对应一个容器,一个容器运行一个应用进程
  • Pod 是多进程设计,运用多个应用程序,也就是一个 Pod 里面有多个容器,而一个容器里面运行一个应用程序

Pod 是在 K8S 集群中运行部署应用或服务的最小单元,它是可以支持多容器的。Pod 的设计理念是支持多个容器在一个 Pod 中共享网络地址和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。同时 Pod 对多容器的支持是 K8S 中最基础的设计理念。在生产环境中,通常是由不同的团队各自开发构建自己的容器镜像,在部署的时候组合成一个微服务对外提供服务。

Pod 是 K8S 集群中所有业务类型的基础,可以把 Pod 看作运行在 K8S 集群上的小机器人,不同类型的业务就需要不同类型的小机器人去执行。目前 K8S 的业务主要可以分为以下几种

  • 长期伺服型:long-running
  • 批处理型:batch
  • 节点后台支撑型:node-daemon
  • 有状态应用型:stateful application

Pod实现机制

主要有以下两大机制

  • 共享网络
  • 共享存储

共享网络

容器本身之间相互隔离的,一般是通过 namespace 和 group 进行隔离,那么Pod里面的容器如何实现通信?

  • 首先需要满足前提条件,也就是容器都在同一个namespace之间

关于Pod实现原理,首先会在Pod会创建一个根容器: pause容器,然后我们在创建业务容器 【nginx,redis 等】,在我们创建业务容器的时候,会把它添加到 info容器 中

而在 info容器 中会独立出 ip地址,mac地址,port 等信息,然后实现网络的共享

共享存储

Pod 持久化数据,专门存储到某个地方中

常用命令

# 查看所有的 pod 列表,-n 后面跟 namespace,查看指定的命名空间,-o wide 查看详细信息
kubectl get pod
kubectl get pod -n kube-system  # 查看 kube-system 命名空间下的 pod
kubectl get pod -o wide # 查看 pod 的详细信息,有 ip、node 节点等信息

kubectl get pod -o wide 的参数含义如下

  • name:自定义的名称,后面会加些数据
  • READY:当前 pod 里的容器,pause 容器不算在里面,/ 前面的表示运行了几个,后面的数字表示一共有几个
  • STATUS:当前的状态
  • AGE:pod 存在的时长
  • IP:pod 的 ip,这个只能在当前部署的机器上访问,外网是访问不了的 
  • NODE:当前 pod 在哪个 node 上运行

# 显示 Node 的详细信息
kubectl describe node dce-10-6-215-190 # node 后面的是 node名称

# 显示 Pod 的详细信息, 特别是查看 pod 无法创建的时候的日志
kubectl describe pod web # web 是你创建 pod 时起的名称

# 根据 yaml 创建资源, apply 可以重复执行,create 不行
kubectl create -f pod.yaml
kubectl apply -f pod.yaml
# 删除所有 Pod
kubectl delete pod --all

# 强制删除某个文件名命名节点 ,基于 pod.yaml 定义的名称删除 pod 
kubectl delete -f <文件名>

# 删除某个Pod命令节点 
kubectl delete pod <pod名>
# 删除某个Replication Controller命名节点 
kubectl delete rc <rc名>
kubectl delete deployment 名称

# 删除某个服务命名节点 
kubectl delete service <service名>

# 删除所有Pod节点 
kubectl delete pod --all

 

 

标签:容器,K8S,kubectl,--,pod,k8s,Pod,delete
来源: https://www.cnblogs.com/zouzou-busy/p/16116426.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有