Linux企业应用——kubernates(二)之Pod管理
一、Pod简介
Pod是可以创建和管理Kubernetes计算的最小可部署单元,一个Pod代表着集群中运行的一个进程,每个pod都有一个唯一的ip。
一个pod类似一个豌豆荚,包含一个或多个容器(通常是docker),多个容器间共享IPC、Network和UTC namespace。
• container实际上是一个单进程模型,pod可以类比为进程组概念
• pod在k8s中必须是原子调度单位
• Pod 要解决的问题核心就在于如何让一个 Pod里的多个容器之间最高效的共享某些资源 和数据。
• 通过infra container的方式共享同一个network namespace
• 镜像k8s.gcr.io/pause由汇编语言编写、永远处于“暂停”状态,大小100~200KB • 直接使用localhost通信
• pod内的所有容器共享一份网络资源,共享一个ip,一个pod一份。
• 整个pod的生命周期跟infra容器一致,而与其它容器无关
• 所有同属于一个 Pod 的容器,他们共享所有的 volume
二、命令行实现Pod管理
创建pod,删除pod
创建pod后,执行删除命令会直接删除
[root@k8s1 ~]# kubectl run demo --image=nginx
pod/demo created
[root@k8s1 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
demo 1/1 Running 0 2s
[root@k8s1 ~]# kubectl delete pod demo
pod "demo" deleted
[root@k8s1 ~]# kubectl get pod
No resources found in default namespace.
1.副本创建与副本拉取
创建deployment控制器,这种方式可以使用–replicas参数指定创建副本的个数,集群会自动创建Pod。
删除pod中的某个容器副本后,RS副本控制器自动检测到容器副本数量不足,会重新拉起一个容器副本
[root@k8s1 ~]# kubectl create deployment demo --image=nginx
deployment.apps/demo created
[root@k8s1 ~]# kubectl get pod
NAME READY STATUS RESTARTS AG