Pod的基本介绍

Pod的基本介绍

pod的特征:

  • Pod类似虚拟机,容器相当于虚拟机中的进程,一个Pod可以运行多个容器,只需声明多个image即可实现。
  • 容器不仅仅是拥有实际功能的主容器,还有类似init初始化的容器。初始化容器就是配置好主容器的配置。
  • (网络)Pod是有IP地址的,加入pod不是共享物理机ip,由网络插件(calico、flannel、weave)划分的ip,每个pod都被分配唯一的IP地址。
  • (存储)创建Pod的试试可以指定挂载的存储卷,POD中的所有容器都可以访问共享卷volume,允许这些容器共享卷数据,Pod只要挂载持久化数据卷,pod重启之后数据还是会存在的。

pod和容器的区别

  1. pod是由一组紧耦合的容器组成的容器组,目前最流行的就是docker、containerd、podman容器,pod就可以作为1或者多个容器的载体。
  2. pod中的所用容器会被一致调度、统计点部署,并且在一个“共享环境”中运行,这里就的"共享环境包括一下几点":
    1. 所有容器共享一个IP地址和端口空间,意味着容器之间可以通过localhost高效访问,不能有端口冲突。
    2. 允许容器之间共享存储卷,通过文件系统交互信息。
  3. 有些容器需要紧密联系,需要一起工作。pod提供了比容器更高层次的抽象,pod中所有的容器使用同一个网络的namespace,即相同的IP地址和Port空间。他们可以直接用localhost通信,同样的,这些容器可以共享存储,当K8sVolume到pod上,本质上是将volume挂载到pod中的每个容器里。

pod的实际应用:

  1. 代码的自动发行和更新
  2. 收集业务日志

Pod工作方式

pod的创建:yaml文件创建 ;kubectl run 命令行创建

1.自主式pod

# 编写yaml文件

# 导入镜像
# k8s 1.25版本以后,使用containerd的指令集
ctr -n=k8s.io images import tomcat.tar.gz
# k8s 1.25版本以前,使用docker的指令集
docker load -i tomcat.tar.gz

# 应用
kubectl apply -f pod-tomcat.yaml

# 检查
kubectl get pods -o wide
kubectl get pods -l app=tomcat

# 删除
kubectl delete pods xxx

2.控制器管理pod

常见的管理pod的控制器: Replicaset、Deployment、Job、CronJob、Daemonset、Statefulset。

控制器管理的pod可以确保pod始终维持在指定的副本数运行。

3.命令行创建pod

kubectl run tomcat --image=xxx/xxx:v1 --image-pull-policy='IfNotPresent' --port=8080
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值