k8s~pod单副本的平滑部署

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

如果你的服务器资源紧张,pod可能只能是单副本了,这时在进行平滑的滚动部署时,应该如何配置呢?总不能在部署期间503吧,这是不能接受的!

maxUnavailable来配置不可用数量

我们可以在spec.strategy.strategy.rollingUpdate中,将不可用数maxUnavailable改成0即可实现平滑部署,配置如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: keycloak-deployment
  namespace: kc
spec:
  replicas: 1
  #滚动升级策略
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0 #当副本为1时,我们采用这个配置,即不允许有多余的pod

如果是多个副本,你也可以通过rollingUpdate中的maxSurge来控制可用节点数,maxUnavailable来控制不可用数,如下面的配置,在副本为3个时,可用数至少为1个,不可用也是0个,相当于1个1个的副本去启动,整个deployment对外始终是3个可用的pod。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: keycloak-deployment
  namespace: kc
spec:
  replicas: 3
  #滚动升级策略
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0

部署过程如图,1个副本时,在发布期间,也始终有1个是可用的
k8s~pod单副本的平滑部署

k8s如何探测pod启动了

readinessProbe 是 Kubernetes 中用来检查容器是否准备好接收流量的机制。通过配置 readinessProbe,Kubernetes 可以确保只有在容器完全就绪并能够处理请求时才会将流量引导到该容器。以下是关于 readinessProbe 的总结:

  1. 作用readinessProbe 用于确定容器是否已经准备好接收流量。如果容器的 readinessProbe 失败,Kubernetes 将不会将流量路由到该容器。

  2. 配置方式readinessProbe 可以通过 HTTP、TCP 或执行命令的方式进行配置。你可以指定一个 HTTP 请求路径、端口号或自定义命令,并设置相应的超时时间和周期。

  3. 成功条件readinessProbe 根据配置的方式来判断容器的就绪状态。例如,对于 HTTP 探测,返回状态码在200-399之间表示成功;对于 TCP 探测,连接成功即为成功;对于执行命令探测,返回值为0表示成功。

  4. 失败处理:当 readinessProbe 失败时,Kubernetes 不会将流量路由到该容器。容器可能会被标记为 Unready 状态,并从 Service 的负载均衡中剔除。

  5. 重试策略:如果 readinessProbe 失败,Kubernetes 将按照配置的间隔时间进行重试。只有当连续多次探测失败后,容器才会被认定为不可用。

  6. 应用场景:适用于需要一段时间来启动服务或加载数据的应用程序,以确保在容器完全就绪之前不接收流量。

  7. 常见配置:示例配置如下,包括 HTTP 探测、TCP 探测和执行命令探测:

    readinessProbe:
      httpGet:
        path: /healthz
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 10
    

通过合理配置 readinessProbe,可以提高容器的稳定性和可靠性,确保应用程序在容器就绪后再接收流量,避免因为服务未完全启动而导致的请求失败。希望这个总结对你有所帮助。如果还有其他问题,请随时告诉我。文章来源地址https://www.toymoban.com/news/detail-847935.html

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

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

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

相关文章

  • 持续集成部署-k8s-资源调度:HPA - Pod 基于负载指标自动水平扩容缩容

    首先我们找一个 Deployment 配置文件: nginx-deploy.yaml

    2024年02月07日
    浏览(41)
  • 持续集成部署-k8s-服务发现-Service:Service、Endpoint、Pod之间的关系与原理

    在 Kubernetes 中, Service 是一种抽象的逻辑概念,用于将一组具有相同功能的 Pod 组合成一个逻辑服务。 Service 提供了一种稳定的 IP 地址和 DNS 域名,供客户端访问这个逻辑服务。同时, Service 还提供了负载均衡、会话保持等功能,可以很方便地实现服务发现与调用。 在 Kuber

    2024年02月06日
    浏览(40)
  • Kubernetes(K8S)拉取本地镜像部署Pod 实现类似函数/微服务功能(可设置参数并实时调用)

             以两数相加求和为例,在kubernetes集群 拉取本地的镜像 ,实现如下效果:         1.实现两数相加求和         2.可以通过curl 实时调用 , 参数 以GET方式提供,并得到结果。(类似 调用函数 )         需要准备如下的文件。文件名与对应的功能如下所示

    2024年01月20日
    浏览(35)
  • ubuntu单服务器部署k8s

    初学k8s,看到网上的教程非常杂乱,并且环境什么的都没说清楚,对于初学者很不友好,导致安装的过程总是出错,并且不能安装到符合自己要求的版本或者相应的环境,所以此文对环境做了详细的说明,前前后后安装了两三天几十遍,把所有的问题都解决了,本人亲测安装

    2024年04月15日
    浏览(28)
  • 搭建NFS服务器,部署k8s集群,并在k8s中使用NFS作为持久化储存

    🐇明明跟你说过:个人主页 🏅个人专栏:《Kubernetes航线图:从船长到K8s掌舵者》 🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、k8s概述 2、NFS简介 二、NFS服务器搭建 1、准备NFS 服务器 2、搭建NFS服务 三、安装k8s集群 1、环境准备 2、禁用防火墙和SELinux 3、设置时间同步

    2024年04月13日
    浏览(29)
  • 服务器-Kubernetes (K8S)单机部署实战 -- 001

         本篇博文是 centos 7 系统安装 kubernetes 单机 master 节点操作。 一: 查看 服务器 配置信息       1. 执行命令查看服务器cpu信息。安装 kubernetes 服务,cpu核心数必须大于2,内存大于2G。       2.  修改服务器设置信息,避免安装出现问题。         a.  临时关闭swap,防止

    2024年02月19日
    浏览(45)
  • 使用PasteSpider把你的代码升级到服务器的Docker/Podman上,K8S太庞大,PasteSpider极易上手!

    如果你的服务器的内存小于16GB,那么K8S就和你无缘了,但是你可以使用PasteSpider来实现发布你的项目到服务器上! PasteSpider是一个运维工具,使用NET编写的,部署于服务器的Docker/Podman上,他可以帮助你把你的项目发布到服务器上,支持源码模式,支持发布模式,支持一键发布

    2024年02月08日
    浏览(33)
  • (十)服务器K8S集群部署SpringBoot项目实战

    可以在 https://start.spring.io/网站准备一个项目,这里作为k8s的学习所以springboot项目中准备一个简单的访问接口即可。 1.更新系统软件包: 2.安装 OpenJDK 11: 3.验证 Java 安装: 4.配置环境变量 5.使环境变量生效 1.可以在 https://dlcdn.apache.org/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin

    2024年02月12日
    浏览(35)
  • k8s、pod

    k8s中的port【端口:30000-32767】 port :为Service 在 cluster IP 上暴露的端口 targetPort:对应容器映射在 pod 端口上 nodePort:可以通过k8s 集群外部使用 node IP + node port 访问Service containerPort:容器内部使用的端口 k8s 集群内部流程: 客户端→clusterIP:port→通过 tagerport→pod IP:container

    2024年02月06日
    浏览(26)
  • 如果把k8s比作一个餐厅,应该怎样通俗的解释 k8s的核心组件和运行原理

    可以通过以下方式理解Kubernetes的二级选项: Master节点: API Server(API服务器):API Server就像是餐厅的前台接待员,接收顾客的点餐请求,并将请求传达给相应的餐桌(Pod)。 etcd(键值存储):etcd就像是餐厅的菜单和订单记录本,它存储着餐厅的菜单信息、订单状态以及顾

    2024年02月11日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包