当前位置: 首页 > 知识库问答 >
问题:

无法理解部署状态中的availableReplicas、readyReplicas、unavailableReplicas

哈襦宗
2023-03-14

我正在从服务器上使用Kubernetes API创建部署。部署吊舱有两个容器--一个是主容器,另一个是sidecar容器,它检查吊舱的健康状况,并在服务器变得健康时调用服务器。

我正在使用这个endpoint来获取部署。它具有deployment status属性,其结构如下所述。

我无法理解字段availableReplicasreadyReplicasReplicasunavailableReplicasupdatedReplicas

共有1个答案

太叔坚
2023-03-14

处于部署状态的不同类型的副本可以描述如下:

>

  • replicas-描述此部署应该有多少个pod。它是从规范中复制的。这是异步发生的,因此在非常短的时间间隔内,您可以读取spec.replicas不等于status.replicas的部署。

    availableReplicas-表示至少在一段时间内有多少豆荚准备就绪(minreadyseconds)。这可以防止状态抖动。

    ReadyReplicas-部署可以通过所有副本访问的豆荚数。

    让我们使用一个正式的部署示例,该部署创建了一个副本集,以启动三个nginx pod:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.14.2
            ports:
            - containerPort: 80
    

    部署创建了三个复制的Pods,由.spec.replicas字段指示。

    kubectl apply -f https://k8s.io/examples/controllers/nginx-deployment.yaml
    
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    nginx-deployment   0/3     0            0           1s
    

    >

  • name-列出命名空间中部署的名称。

    ready-显示有多少应用程序副本可供用户使用。它遵循就绪/所需的模式。

    up-to-date-显示已更新以达到所需状态的副本数。

    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    nginx-deployment   3/3     3            3           18s
    
    NAME                          DESIRED   CURRENT   READY   AGE
    nginx-deployment-75675f5897   3         3         3       18s
    

    ReplicaSet输出显示以下字段:

    >

  • name-列出命名空间中副本集的名称。

    Designed-显示在创建部署时定义的应用程序所需副本数。这是想要的状态。

  •  类似资料:
    • 问题内容: 这是我第一次尝试使用ui-router。 这是我的app.js 如您所见,我有两种状态。我正在尝试这样注册状态: 但是我越来越 无法从状态“解析”“注册” 例外。这里有什么问题? 问题答案: 这种错误通常表示(JS)代码的某些部分未加载。里面的状态不见了。 有一个可行的例子 我不是离子技术方面的专家,因此此示例应表明它可以正常工作,但我使用了更多技巧(用于制表符的父级) 这是一个调整后

    • 我试图从Weblogic脚本工具获得部署状态。我所说的部署是指Weblogic服务器管理控制台中显示的部署列表-域结构-部署 我发现: 我可以获取“某些”应用程序部署的状态(我在config.xml中找到了这些应用程序的名称),但这些不是来自Weblogic server管理控制台。有人能告诉我在哪里可以得到这份清单,以及它的当前状态吗?

    • 我听说“RESTful API应该是无状态的,所有状态信息都应该保留在客户端”。 但是当我从web页面发出AJAX调用时,我注意到会话ID cookie总是被发送到服务器。有了那个会话ID,我就可以在服务器上获取会话对象,这样我就可以“获取/设置会话中的一些状态信息”。 这是否打破了RESTful API的“无状态代码”? (我提出问题的背景如下。) 我试图通过调用RESTful API来验证用户

    • 我听说“RESTful API应该是无状态的。所有状态信息都应该保存在客户端”。 但当我从网页发出AJAX调用时,我注意到会话ID cookie总是被发送到服务器。使用该会话ID,我可以在服务器上获取会话对象,因此我可以“获取/设置会话中的一些状态信息”。 这是否打破了RESTful API的“无状态代码”? (我的问题背景如下。) 我试图通过调用RESTful API来验证用户名和密码来实现登录

    • 问题内容: 我的教授指示我在页面上进行自我介绍,就好像我是一个对象一样,我必须解决三件事: 1)对象状态,2)行为和3)身份。 但是,我仍然很困惑如何去做这样的事情。(我已经阅读了必须解决的三个属性,但是我不知道如何将其应用于一个人)。 例如,有人告诉我狗的状态,名称和颜色等。以及行为,例如走路,吠叫或摇尾巴。 所以我会做类似的事情: 还是我在这里得到一个完全错误的想法? 问题答案: 对象的特征是

    • 问题内容: 我尝试安装 用于将Jenkins连接到Subversion存储库的。 在安装过程中,我的詹金斯(Jenkins)需要花费很长时间才能重新启动,因此我尝试使用。 它显示以下错误 请帮忙。 谢谢! 问题答案: 似乎在下载过程中出现了问题,因此插件文件已损坏。关闭Jenkins,删除,重新启动jenkins并重新尝试安装插件。 或者,手动下载文件并替换为文件系统上的一个,应该可以从此处获得