一、Pod
Pod是一个逻辑概念
它是Kubernetes资源调度的单元,一般会把一组功能强相关的容器逻辑上称之为一个pod,Pod就是所说的实例。
作为一个逻辑概念,pod本身没有资源,pod中的容器具有资源,创建pod,可以通过定义pod模块。 Pod是一组紧密关联的容器集合,它们共享PID、IPC、Network和UTS namespace,是Kubernetes调度的基本单位。
Pod的设计理念是支持多个容器在一个Pod中共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务.
缺点: 不支持高并发, 高可用, 当Pod当机后无法自动恢复。
二、Pod的状态(生命周期)
容器尚未启动成功,它包括从pod被创建到调度、然后到拉镜像开始部署这个过程
2.Running容器启动成功
3.Succeeded容器退出,返回码是0,并且容器不会再被重新启动
4.Failed容器异常退出 Unknown 状态未知,获取不到容器的状态,当出现异常时会有这种状态,例如pod所在的机器故障,或者pod所在的机器上Kubernetes的组件异常。
三、操作 1. 创建
vi pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: demo
spec:
containers:
- image: httpd
name: httpd
imagePullPolicy: Always
kubectl create -f pod.yaml
2. 查看
kubectl get pods
kubectl describe pods
3. 删除
kubectl delete pod demo
四、yaml文件详解
{
"kind": "Pod",(资源类型)
"apiVersion": "v1", (资源版本)
"metadata": {
"name": "app-tomcat", (名字,唯一)
"namespace": "default", (命名空间默认default)
"labels": {
"name": "app-tomcat" (label做为标识,可以跟RC,Service关联对应)
}
},
"spec": {
"containers": [
{
"name": "app-tomcat", (自定义镜像名称)
"image": "tomcat", (要拉取的镜像)
"command": [ (运行容器时,要运行的命令)
"/bin/bash",
"/opt/apache-tomcat-7.0.57/bin/catalina.sh",
"run"
],
"env": [ (环境变量K,V)
{
"name": "url_addr",
"value": "http://192.168.54.66:8080/paas/jsp/index.jsp"
}
],
"resources": { (对容器资源限制)
"limits": {
"cpu": "1",
"memory": "1073741824"
},
"requests": {
"cpu": "100m",
"memory": "104857600"
}
},
"imagePullPolicy": "Always" (获取镜像策略Always,Never,IfNotPresent)
}
],
"restartPolicy": "Always", (pod重启策略,Always,OnFailure,Never)
"dnsPolicy": "ClusterFirst",
"nodeSelector": { (选择将该pod调度到包含这些label的Node上)
"group": "node1"
}
}
}
https://blog.csdn.net/bbwangj/article/details/81812675