Kubernetes之三 k8s中的pod
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kubernetes之三 k8s中的pod相关的知识,希望对你有一定的参考价值。
参考技术A 在k8s中,Pod是一个容器集合,相当于一组docker,同一pod内所有容器使用IPC相互通信,因为它们共享了IPC,UTS,Network。下面这张图详述了各个容器间的关系
一 Pod中的各个对象:
kind: 定义资源类型, 例如 deployment,service 等
apiVersion: 定义调用的 API 版本, 所支持的版本可以通过 kubectl API-resources 查看
metadata: 资源提供源数据信息, 如名称, 隶属的名称空间和标签等
spec: 用于定义用户期望的状态, 不同的资源类型
Status: 记录活动对象的当前状态信息, 由 k8s 系统自行维护, 对用户来说为只读字段
二 如何创建pod
kubectl create:
(1)kubectl create命令,是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求yaml文件中的配置必须是完整的
(2)kubectl create命令,用同一个yaml 文件执行替换replace命令,将会不成功,fail掉。
kubectl apply:
kubectl apply命令,根据配置文件里面列出来的内容,升级现有的。所以yaml文件的内容可以只写需要升级的属性
# 相关资源的命令查询:
kubectl explain pods(.spec.tolerations....)
# 导出 pod 对应的 YAML 模版:
kubectl get pod web YAML --export> web.YAML
三镜像拉取方式imagePullPolicy
k8s的配置文件中经常看到有imagePullPolicy属性,这个属性是描述镜像的拉取策略
Always 总是拉取镜像
IfNotPresent 本地有则使用本地镜像,不拉取
Never 只使用本地镜像,从不拉取,即使本地没有
如果省略imagePullPolicy 镜像tag为 :latest 策略为always ,否则 策略为 IfNotPresent
四 pod中的网络代理方式
Service方式: 申明 NodePort 类型, 可以通过任意节点访问,可以实现负载均衡功能
hostPort方式: hostPort是直接将容器的端口与所调度的节点上的端口路由,这样用户就可以通过宿主机的IP加上来访问Pod了
hostNetwork方式: 共享宿主机的网络名称空间
五 创建pod
以下面的yaml创建pod,命令为kubectl create -f firstpod.yaml ,在创建之前,需要pull镜像busybox
apiVersion: v1
kind: Pod
metadata:
name: first-pod
spec:
containers:
- name: bash-container
image: docker.io/busybox
kubectl explain pods.status 可查看pod的resource
以上是关于Kubernetes之三 k8s中的pod的主要内容,如果未能解决你的问题,请参考以下文章
如何滚动重启pod而不改变kubernetes(k8s)中的部署yaml?