默认值1.存活探测器必须是1.最小值是1; failureThreshold:当pod启动了并探测到失败
官网链接 https://kubernetes.io/zh/docs/concepts/workloads/pods/
理解pod
根本常识
pod是kubernetes最根基的执行单元(最小、最简单的单元),pod暗示在集群上运行的进程。
pod封装了应用措施容器(某些情况下多个容器),存储资源、独一网络IP、以及控制器该如何运行的选项。
运行单个容器的pod:一个pod运行一个容器是kubernetes最常见的。
运行多个容器的pod:pod可能封装多个紧密耦合且需要共享资源的共处容器构成的应用措施。
如果但愿横向扩展应用措施,则应该使用多个pod,在kubernetes中,称为副本。
pod是短暂的。
网络
每个pod分配一个独一的IP地点,pod的每个容器共享网络定名空间。包孕IP地点和端口。pod内的容器可以使用localhsot彼此通信。
存储
一个pod可以指定一组共享存储卷。pod中所有的容器都可以访谒共享卷,允许这些容器共享数据。卷数据可以长期化
pod的分类
Infrastructure Container 根本容器
在node节点:cat /opt/kubernetes/cfg/kubelet.kubeconfig 可以看到指定的容器,每创建一个pod城市创建一个,和pod一一对应。
在node节点:通过 docker ps 会看到name为*/pause-amd64:3.0的就是了。
卖力维护pod的网络空间。
该容器对用户无感知,由后台自动完成。
InitContainers 初始化容器
在pod启动时,在主容器启动前执行初始化事情。
参考简书 https://www.jianshu.com/p/2f3736deb16f
参考官网 https://kubernetes.io/zh/docs/concepts/workloads/pods/init-containers/
containers 业务容器
我们主要使用的容器
pod的意义
解决一个docker容器只运行一个措施的限制;pod是多进程模型,可以运行多个应用措施,每个措施由容器来打点。
某些亲密性应用场景是需要多个容器一起运行的;例如:频繁交互数据的两个应用,通过localhost彼此访谒可以供给性能,防备呈现跨节点、跨网络的通信。
pod实现机制
3
镜像拉取计谋
IfNotPresent 默认值,镜像在宿主机上不存在时才拉取
Always 每次创建pod都拉取镜像
Never pod永远不会主动拉取镜像
示例:使用Always方法拉取一个私有的镜像
官方链接 https://kubernetes.io/zh/docs/tasks/configure-pod-container/pull-image-private-registry/
生成secret有2种方法:
一、使用docker登录的凭证来生成
1.先登录镜像货仓 docker login -u *** -p *** https://registry.cn-shanghai.aliyuncs.com
2.检察docker登录的凭证 cat .docker/config.json
3.将凭证base64位编码 cat .docker/config.json |base64 -w 0
4.生成token告成,将token生存到yaml模板即可;
二、使用kubectl来生成(在集群中创建生存授权令牌的secret)
1.创建 kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
2. 检察 kubectl get secret regcred --output=yaml
创建一个使用secret的pod
我们取名叫 useridentity-deployment.yaml
执行 kubectl create -f useridentity-deployment.yaml
如果镜像拉取掉败,检察详细信息 kubectl describe pods useridentity
根基的创建pod和service的yaml示例
useridentity-deployment.yaml
700 bytes
pod资源限制
官方链接 https://kubernetes.io/zh/docs/concepts/configuration/manage-compute-resources-container/
当您界说pod的时候,可以选择未每个容器指定需要的CPU和内存巨细。当为容器指定了资源请求后,调理器就能更好的判断将容器调理到哪个节点上。
资源类型
cpu和内存都是资源类型,cpu单位是核心数,内存单位是字节
pod和容器的资源请求和限制
pod中的每个容器都可以指定以下一个或者多个值
spec.containers[].resources.limits.cpu
spec.containers[].resources.limits.memory
spec.containers[].resource.requests.cpu
spec.containers[].resource.requests.memory
cpu的含义
0.1cpu=100m;0.1的cpu在双核,多核机器中的意义是一样的。
内存的含义
内存的限制和请求以字节为单位。常见单位 Ei,Pi,Ti,Gi,Mi,Ki。
具有资源请求的pod如何调理
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30628.html