kubernetes学习笔记(五)pod的基本操作

Pod是什么?

在Kubernetes中,最小的管理元素不是一个个独立的容器,而是Pod,Pod是最小的,管理,创建,计划的最小单元.

一个Pod(就像一群鲸鱼,或者一个豌豆夹)相当于一个共享context的配置组,在同一个context下,应用可能还会有独立的cgroup隔离机制,一个Pod是一个容器环境下的“逻辑主机”,它可能包含一个或者多个紧密相连的应用,这些应用可能是在同一个物理主机或虚拟机上。

如何创建pod?

方法1:使用命令行的方式创建pod(不推荐)
例:

kubectl run xx --image=nginx --generator=run-pod/v1
# 创建一个pod,名字叫xx,使用nginx这个镜像
# 如果不加 --generator=run-pod/v1,则创建的是deployment

方法2:使用yaml文件的方式创建pod(推荐)


yaml文件获得方式:

  1. 到官方文档中去复制

  2. 自己生成
    例:

kubectl run xx --image=nginx --fgenerator=pod/v1 --dry-run -o yaml > xx.yaml
# --dry-run 模拟创建
# -o yaml 以yaml的格式导出
  1. 手动写

使用yaml文件创建pod
例:

kubectl create -f pod1.yaml
kubectl apply -f pod1.yaml   # 建议使用这种方式创建pod,如果后期修改了yaml文件,仍然可以apply)

镜像下载策略 imagePullPolicy默认值是Always
Always 每次都下载最新的镜像
Never 只使用本地镜像,从不下载
IfNotPresent 本地没有,才下载

查看pod

kubectl get pods

删除pod

kubectl delete pod xx

kubectl delete -f xx.yaml

pod的基本操作

执行容器命令
kubectl exec pod名 命令
例:

kubectl exec web1 ls /

从本机复制文件到容器
kubectl cp file pod名:/dir
例:

kubectl cp aa.txt web1:/opt/

进入容器
kubectl exec -it pod名 bash
例:

kubectl exec -it web1 bash

查看pod描述信息
kubectl describe pod pod名
例:

kubectl describe pod web1

查看日志
kubectl logs -f pod名

kubectl logs -f pod web1

如果pod里有多个容器使用-c指定容器
例:

kubectl exec -it web bash -c web1

kubectl exec -it web bash -c web2

一个pod里是可以有多个容器的,同一个pod里的多个容器,不要出现端口冲突的问题。

pod里的多个容器时不可分割的,必须要运行在同一个node上。

你可能感兴趣的:(Kubernetes)