0
点赞
收藏
分享

微信扫一扫

K8sPod资源基础管理操作


Pod是kubernets API中的核心资源类型,它可以定义在JSON或YAML格式的资源清单中,由资源管理命令进行陈述式或声明式管理。Pod是一组容器的集合,这些容器共享NetWORK、UTS及IPC名称空间,因此具有相同的域名、主机名和网络接口,并可通过IPC直接通信。为一个Pod对象中的各容器提供网络名称空间等共享机制的是底层基础容器pause。一个pod对象中的多个容器必须运行于同一工作节点之上。实践中应该将多个应用分别构建到多个而非单个Pod中。不过,有些场景要求必须于同一pod中同时运行多个容器。分布式系统设计通常包含以下几种模型。
1) Sidecar pattern 边车模型或跨斗模型:即为Pod的主应用容器提供协同的辅助应用容器,每个应用独立运行,最为典型的代表是将主应用容器中的日志使用agent收集至日志服务器中时,可以将agent运行为辅助应用容器,即sidecar。
2)Ambassador pattern 大使模型:即为远程服务创建一个本地代理,代理应用运行于容器中,主容器中的应用通过代理容器访问远程服务
3)Adapter pattern 适配器模型:此种模型一般用于将主应用容器中的内容进行标准化输出,例如,日志数据或指标数据的输出,这有助于调用者统一接收数据的接口。

陈述式对象配置管理方式

陈述式对象配置管理机制,是由用户通过配置文件指定要管理的目标资源对象,而后再由用户借助于命令直接指定K8S系统要执行的管理操作的管理方式,常用的命令由create、delete、replace、get和describe等。

创建Pod资源:kubectl create -f pod-example.yaml
查看Pod状态:kubectl get -f pod-example.yaml
kubectl get -f pod-example.yaml -o custom-columns=NAME:metadata.name,STATUS.status.phase
kubectl describe -f pod-example.yaml
更新Pod资源:kubectl get pods pod-example.yaml -o yaml > pod-example-update.yaml
sed -i ‘s@(image:).*@ikubeernetes/myapp:v2@’ pod-example-update.yaml
kubectl replace -f pod-example-update.yaml
删除Pod资源:kubectl delete -f pod-example.yaml

声明式对象配置管理方式

声明式对象配置操作在管理资源对象时将配置信息保存于目标对象的注解中,并通过比较活动对象的当前配置、前一次管理操作时保存于注解中的配置,以及当前命令提供的配置生成更新补丁从而完成活动对象的补丁式更新操作。此类管理操作的常用命令有apply和patch等。
创建更新Pod资源:kubectl apply -f pod-example.yaml
删除Pod资源:kubectl apply -f pod-example.yaml --prune 不推荐,应使用陈述式对象配置管理方式处理


举报

相关推荐

0 条评论