Kubernetes中pod的相关操作

pod基本概念

  • pod是kubernetes里的最小调度单位,所以我们直接创建的是pod,而不是容器,pod里包含容器,所以创建pod也需要镜像。
  • Kubernetes中,Pod包含一个或多个相关的容器,是容器的一种延申扩展,一个Pod也是一个隔离体,而Pod内部包含的一组Docker容器又是共享的(包括PID、Network、IPC、UTS等)
    • 网络命名空间(NET namespace)。容器间共享网络命名空间,并使用同一个IP地址,通过localhost互相通信。不同Pod之间可以通过IP地址访问。
    • 同一个Pod内的应用容器能看到对方容器进程(PID),同一个Pod内的容器能使用System V IPC或POSIX消息队列进行通信,同一个Pod内的应用容器共享主机名(UTS)等。
    • 存储卷(volume)。Pod内的所有容器间共享存储卷,Volume还用于Pod中数据持久化,以防止容器重启导致数据丢失。

pod生命周期

  • pod被分配到一个node上之后,直到被删除前都不会离开这个node。一旦某个pod失败,Kubernetes会将其清理,然后Replication Controller会在在他机器或本机重建pod。重建后,pod的ID会发生变化,这是一个新pod。
  • pod的生命周期简述为:首先pod被创建,紧接着pod被调度到node上进行部署运行。一旦被分配到node上就不会离开这个node,直到被删除,即生命周期结束。
  • pod的生命周期被定义为以下几个相位
    • Pending:pod已经被创建,但一个或多个容器还未被创建,这包括pod调度阶段以及镜像的下载过程。
    • Running:pod已被调度到node,所有容器已经创建,并且至少有一个容器在运行或正在重启。
    • Succeeded:pod中所有容器正常退出。
    • Failed:pod中所有容器退出,至少有一个容器是一次退出的。
    • Pod状体没有获得。这种情况发生在和Node通信失败的情况下。

pod基本操作

  • 查看pod
# 查看有多少pod
kubectl get pod
# 查看kube-system命名空间里的pod
kubectl get pod -n kube-system
# 查看所有命名空间里的pod
kubectl get pod --all-namespaces
# 或
kubectl get pod -A

在这里插入图片描述
在这里插入图片描述

  • 创建pod(可带诸多参数,运行kubectl run –h查看更多即可)
kubectl run 名字 --image=镜像 --labels=标签=--env="变量名=值" --port=端口号 --image-pull-policy=镜像下载策略
kubectl run pod1 --image=nginx
kubectl run pod2 --image=nginx --port=80

在这里插入图片描述
在这里插入图片描述

  • 集群内每一个pod都会获得一个地址(pod地址是相对临时的,service地址才是相对稳定的)。查看pod运行在哪个节点上
kubectl get pod -o wide

在这里插入图片描述

  • 删除pod,增加参–force可加快删除速度
kubectl delete pod pod1

在这里插入图片描述

  • 在pod里执行命令
kubectl exec [POD] -- [COMMAND]
kubectl exec pod2 -- ls /usr/share/nginx/html

在这里插入图片描述

  • 物理机和pod互拷文件
kubectl cp /path1/file1 pod:/path2/
kubectl cp pod:/path2/file2 /path1/file2
kubectl cp pod:/path2/ /path1/

在这里插入图片描述

  • 进入pod里并获取bash,如果一个pod有多个容器默认进入的是第一个容器,想进入指定容器用-c指定容器名
kubectl exec -it 名字 -- 命令
kubectl exec -it pod2 -- bash

exit

在这里插入图片描述
可见文件互传成功!

  • 查看pod里的输出,如果一个pod有多个容器,需要使用-c指定查看哪个容器的输出
kubectl logs pod2

在这里插入图片描述

镜像下载策略

  • Always:每次都下载镜像(默认值)。
  • Never:只使用本地镜像,如本地不存在镜像则报错。
  • IfNotPresent:只有当本地没有的时候才下载镜像。
kubectl run pod1 --image=nginx --image-pull-policy=IfNotPresent
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值