栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

kubernetes系列三之pod

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kubernetes系列三之pod

目录

Pod基本概念

简介

Pod的两种模式

pod的内部结构

Pod生命周期

​编辑使用Pod

创建一个pod

Pod管理常用命令 

运行第二个pod 


Pod基本概念

简介

Pod是Kubernetes管理的最小基础单元。
一个Pod中封装了:
一个或多个紧耦合的应用容器
存储资源
独立的IP
容器运行的选项

Pod的两种模式

只包含一个应用容器的pod
“一个pod一个容器”的模式是在Kubernetes中主流的使用场景。
在这种场景中,pod可以被看做是一个“包装纸”包着的容器。Kubernetes不能直接管理容器,而是需要通过管理pod来管理容器
包含多个应用的pod
仅当两种容器紧耦合,且需要共享相同的资源时使用这一种模式。
这些在一个pod内的容器形成一个统一的服务单元。例如一个容器从共享卷提供文件,而另一个容器刷新或更新资源。Pod将这些容器和存储资源作为单个可管理的实体包装在一起。

pod的内部结构

一个pod中会分配一个pause容器,这也被称为根容器。
Pause容器的状态代表整个pod的状态
Pod中多个容器共享pause容器的ip和存储,容器间可以通过localhost互访。

Pod生命周期

Pod一旦被创建,会被master调度到某个具体的node上进行绑定。Pod会呈现出不同的状态。


使用Pod

创建一个pod
#创建一个yaml文件
kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
    - name: mypod
      image: busybox
      args:
      - /bin/sh
      - -c
      - sleep 30000
#使用create命令由该文件创建pod
kubectl create -f mypod.yaml
#使用get命令查看
root@k8s-master]# kubectl get pod
NAME    READY   STATUS    RESTARTS   AGE
mypod   1/1     Running   0          39m

Pod管理常用命令 
#查看pod命令时,通过添加“-o=wide”参数获取更多信息
[root@k8s-master]# kubectl get pod -o=wide
NAME    READY   STATUS    RESTARTS   AGE   IP             NODE        NOMINATED NODE   READINESS GATES
mypod   1/1     Running   0          40m   192.169.2.42   k8s-node2              
#使用describe命令,可以看到pod的完整信息
kubectl describe pod mypod
#删除Pod,使用delete命令
kubectl delete pod mypod
#进入mypod的命令行
kubectl exec -it mypod /bin/sh
#在pod中可能存在多个容器,加入“--container 容器名“参数指定进入容器。
kubectl exec -it mypod --container mypod /bin/sh
#在之前使用命令查看pod状态时,可以检索到Pod所在的位置。
[root@k8s-master]# kubectl get pod -o=wide
NAME    READY  STATUS   RESTARTS  AGE   IP             NODE       NOMINATED NODE   READINESS GATES
mypod   1/1    Running  0         40m   192.169.2.42   k8s-node2             
#这意味着这个pod被绑定到k8s-node2这台主机上运行,我们可以登录这台主机,通过docker命令查看创建了哪些容器。
docker ps
CONTAINER ID   IMAGE     COMMAND                 CREATED       STATUS        NAMES
3ad16a2860dc   busybox   "/bin/sh -c 'sleep 3…"  2 hours ago   Up 2 hours    k8s_mypod_mypod_default……
29d082178153   k8s.gcr.io/pause:3.1   "/pause"   2 hours ago   Up 2 hours    k8s_POD_mypod_default……
Busybox 这个容器是我们在创建pod时通过yaml文件定义的容器。
Pause是kubernetes默认会为pod拉起的容器

运行第二个pod 

使用如下的helloworld.yaml文件创建第二个pod

#Yaml
kind: Pod
apiVersion: v1
metadata:
  name: helloworld
spec:
  restartPolicy: Never
  containers:
    - name: helloworld
      image: hello-world
#
kubectl get pods
NAME        READY   STATUS       RESTARTS   AGE
helloworld  0/1     Completed    0         4s
mypod       1/1     Running      0         160m

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/881523.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号