k8spod

这篇具有很好参考价值的文章主要介绍了k8spod。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pod基本概念 (几种容器)

pod 是k8s最小的创建和运行单元

一个pod包含几个容器,1个根容器/父容器/基础容器,一个或者多个应用容器/业务容器,pause容器

pod里面容器共享 network UTS IPC命令空间

k8s 创建的Pod 分为两种:

自主式/静态pod:不被控制器管理的pod,没有自愈能力,一旦pod挂掉,不会被重新拉起。而且副本数量也不会因为达不到期望值而创建新的pod。

控制器管理的pod:被控制器管理的pod,有自愈能力,一旦pod挂掉,会被重新拉起。而且副本数量会因为达不到期望值而创建新的pod。

三种容器

pause容器 两大功能

给pod中的所有应用容器提供网络 (共享IP)和存储(共享存储)资源共享,作为PID-1的进程 (intit进程),管理整个pod中容器组生命周期。

初始化容器 (init容器)

阻塞或者延迟应用容器的启动,可以为应用容器事先提供好运行环境和工具,多个init容器时串行启动的,每个init容器都必须在下一个init容器启动前完成启动和退出。

应用容器 (main 容器)

在所有init容器成功启动和退出后应用容器才会启动 并行启动的,提供应用程序的业务。

pod 存在的意义

在一组容器作为一个单元的情况下,难以对整体的容器简单地进行判断及有效地进行行动。比如,一个容器死亡了 那么引入与业务无关的Pause容器作为Pod的基础容器,以它的状态代表着整个容器组的状态,这样就可以解决该问题。

Pod里的多个应用容器共享Pause容器的IP,共享Pause容器挂载的Volume,这样简化了应用容器之间的通信问题,也解决了容器之间的文件共享问题。

镜像拉取的策略

pod镜像拉取策略(imagePullPolicy)三种

1、IfNotPresent: 优先使用本地已存在的仓库,如本地没有,则从仓库镜像拉取。

2、Always:总是从仓库拉取镜像,无论本地是否已存在镜像。

3、Never:总是不从仓库拉取镜像,仅使用本地镜像。

pod 容器重启策略(restartPolicy) 三种 container在同一层

1、Always:容器退出总是重启容器,不管返回状态码如何,默认的Pod容器重启策略。

2、Never:容器退出时从不重启容器,不管返回状态码如何

3、OnFailure:仅在容器异常退出时(状态码非0时),会重启容器。

命令

应用容器

创建yaml文件

k8spod,kubernetes,容器,云原生

 执行后查看pod状态

kubectl describe pod myapp-pod -n qq

kubectl logs myapp-pod -c init-myservice -n qq

k8spod,kubernetes,容器,云原生

k8spod,kubernetes,容器,云原生

显示缺失文件

添加service文件
apiVersion: v1
kind: Service
metadata:
  name: myservice
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376

apiVersion: v1
kind: Service
metadata:
  name: mydb
spec:
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9377
(加命名空间)

k8spod,kubernetes,容器,云原生

k8spod,kubernetes,容器,云原生

查看pod状态

k8spod,kubernetes,容器,云原生

 镜像拉取

创建yaml文件

k8spod,kubernetes,容器,云原生

 查看pod状态k8spod,kubernetes,容器,云原生

发现 Pod 中的容器在生命周期结束后,由于 Pod 的重启策略为 Always,容器再次重启了,并且又重新开始拉取镜像。

k8spod,kubernetes,容器,云原生

 修改yaml 文件

k8spod,kubernetes,容器,云原生

 查看pod状态k8spod,kubernetes,容器,云原生

k8spod,kubernetes,容器,云原生

资源限制(cpu 内存)

spec.containers[].resources.requests.cpu //定义创建容器时预分配的CPU资源

spec.containers[].resources.requests ,memory //定义创建容器时预分配的CPU资源

spec.containers[].resources.limits.cpu //定义创建容器时预分配的内存资源

spec.containers[].resources.limits .memory //定义 cpu 的资源上限//定义内存的资源上限

k8spod,kubernetes,容器,云原生

k8spod,kubernetes,容器,云原生

kubectl describe nodes node01     查看资源占用

k8spod,kubernetes,容器,云原生

探针 (健康检查),存活,就绪,启动

存活探针:判断容器是否运行正常,如果探测失败则杀掉容器 (不是pod),容器会根据容器策略决定时否重启。

就绪探针:判断pod是能够进入ready状态,做好就收请求的准备,如果探测失败就会进入notready状态并且service资源的endpoints中剔除,service将不会把访问请求转发给这个pod。

启动探针:判断容器是否会成功,在探测成功转变为success之前,其他探针都会处于失效状态。

三种探测方式

exec:通过command设置执行在容器内执行的linux 命令来探测,如果返回码为0,则为探测成功。

httpget:通过http get 请求范文指定的容器端口和url路径,如果返回状态为>=200且< 400,则认为探测成功。

tcpsocket:通过指定的端口发送TCP 连接,如果端口无误 且三次握手成功 (tcp连接成功),则认为探测成功文章来源地址https://www.toymoban.com/news/detail-739609.html

到了这里,关于k8spod的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 云原生Kubernetes:K8S集群实现容器运行时迁移(docker → containerd) 与 版本升级(v1.23.14 → v1.24.1)

    目录 一、理论 1.K8S集群升级 2.环境 3.升级策略 4.master1节点迁移容器运行时(docker → containerd)  5.master2节点迁移容器运行时(docker → containerd)  6.node1节点容器运行时迁移(docker → containerd)  7.升级集群计划(v1.23.14 → v1.24.1) 8.升级master1节点版本(v1.24.1) 9.升级master2节点版本

    2024年02月03日
    浏览(66)
  • 云上攻防-云原生篇&;Kubernetes&;K8s安全&;API&;Kubelet未授权访问&;容器执行

    curl -XPOST -k “https://192.168.139.132:10250/run///” -d “cmd=id” 执行的命令是test03容器里的命令,需要进行容器逃逸。 1、攻击8080端口:API Server(Master)未授权访问 旧版本的k8s的API Server默认会开启两个端口:8080和6443。 6443是安全端口,安全端口使用TLS加密;但是8080端口无需认证,

    2024年04月22日
    浏览(73)
  • 【云原生】Kubernetes临时容器

    特性状态: Kubernetes v1.25 [stable] 本页面概述了临时容器:一种特殊的容器,该容器在现有 Pod 中临时运行,以便完成用户发起的操作,例如故障排查。 你会使用临时容器来检查服务,而不是用它来构建应用程序 Pod 是 Kubernetes 应用程序的基本构建块。 由于 Pod 是一次性且可替

    2024年02月15日
    浏览(38)
  • 【云原生】Kubernetes容器编排工具

    目录 1. K8S介绍 1.1 k8s的由来 下载地址 1.2 docker编排与k8s编排相比 1.3 传统后端部署与k8s 的对比 传统部署 k8s部署  ​2. k8s的集群架构与组件 (1) Kube-apiserver (2)Kube-controller-manager  (3)Kube-scheduler   2.2 k8s的配置存储中心 2.3  k8s的Node 组件   (1)Kubelet   (2)Kube-Proxy 

    2024年02月10日
    浏览(38)
  • 【云原生】容器编排工具Kubernetes

    目录 一、 K8S介绍 官网地址: 1.1docker编排与k8s编排相比 1.2特性 1.3功能 二、K8S重要组件 2.1核心组件 (1)Kube-apiserver (2)Kube-controller-manager (3)Kube-scheduler (4)Node ①kubelet ②kube-proxy ③docker (5)etcd 2.2Kubernetes工作原理 三、Pod 3.1 Pod控制器 (1)Deployment (2)ReplicaSet (3)

    2024年02月09日
    浏览(45)
  • 云原生、容器化、Kubernetes、微服务

    作者:禅与计算机程序设计艺术 云原生(Cloud Native)是一个开放且社区驱动的项目,它定义了一组架构原则、最佳实践和工具集,这些原则、实践和工具围绕业务需求和工程实践而设计,可用于开发人员在构建和运行分布式系统时更加顺畅地交付可靠的软件。云原生可以帮助

    2024年02月07日
    浏览(43)
  • 【云原生】kubernetes中容器的资源限制

    目录 1 metrics-server 2 指定内存请求和限制 3 指定 CPU 请求和限制 资源限制 在k8s中对于容器资源限制主要分为以下两类: 内存资源限制: 内存 请求 (request)和内存 限制 (limit)分配给一个容器。 我们保障容器拥有它请求数量的内存,但不允许使用超过限制数量的内存。 官网参

    2024年02月14日
    浏览(47)
  • 云原生Kubernetes:CRI 容器运行时接口

    目录 一、理论 1.​CRI 2.容器运行时层级 3.容器运行时比较 二、总结 (1)概念       Kubernetes Node (kubelet) 的主要功能就是启动和停止容器的组件,我们 称之为容器运行时( Container Runtime) ,其中最知名的就是 Docker 。为了 更具扩展性, Kubernetes 1.5 版本开始就加入了容器运行

    2024年02月09日
    浏览(42)
  • 容器和云原生(三):kubernetes搭建与使用

            目录 单机K8S docker containerd image依赖 kubeadm初始化 验证 crictl工具 K8S核心组件 上文安装单机docker是很简单docker,但是生产环境需要多个主机,主机上启动多个docker容器,相同容器会绑定形成1个服务service,微服务场景中多个service会互相调用,那么就需要保证多个servi

    2024年02月11日
    浏览(31)
  • 【云原生|Kubernetes】08-Pod中的Init容器

    Init 容器是一种特殊容器,在 Pod内的应用容器启动之前运行。Init 容器可以包括一些应用镜像中不存在的实用工具和安装脚本。 你可以在 Pod 的spec中与用来描述应用容器的 containers 数组平行的位置指定 Init 容器。 Init 容器的状态在 status.initContainerStatuses 字段中以容器状态数组

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包