Kubernetes概念之deployment

一整天一整天的坐在办公室,真的很~~~,懵圈中....,求解救。

本文通过《Kubernetes权威指南》的概念部分学习总结

Deployment作用

Deployment与RC的作用其实是一样的,都是为了管理Pod的副本数

Deployment的使用场景

1)创建一个Deployment对象来生成对应的Replica Set并完成Pod副本的创建过程。

2)检查Deployment的状态来看部署动作是否完成(Pod副本的数量是否达到了预期的值)

3)更新Deployment以创建新的Pod

4)如果当前Deployment不稳定,则回滚到一个早先的Deployment版本

5)挂起或者恢复一个Deployment

例子

创建一个deployment,管理一个运行tomcat的pod

1、创建deployment.yaml文件

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: frontend
spec:
  replicas: 1
  selector:
    matchLabels:
      tier: frontend
    matchExpressions:
      - {key: tier, operator: In, values: [frontend]}

  template:
    metadata:
      labels:
        app: app-demo
        tier: frontend
    spec:
      containers:
      - name: tomcat-demo
        image: tomcat
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080 

2、创建deployment

[[email protected] ~]# kubectl create -f tomcat-deployment.yaml
deployment.extensions/frontend created

3、查看deployment信息

[[email protected] ~]# kubectl get deployment
NAME       DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
frontend   1         1         1            1           23s

输出结果的含义:

DESIRED:Pod副本数量的期望值,即deployment里定义的Replica

CURRENT:当前Replica的值,这个值会不断的增加,直到达到DESIRED为止,表明整个部署过程完成

UP-TO-DATE:最新版本的Pod的副本数量,用于指示在滚动升级过程中,有多少个Pod副本已经成功升级

AVAILABEL:当前集群中可用的Pod副本数量,即集群中当前存活的Pod数量

4、查看Pods信息

[[email protected] ~]# kubectl get pods
NAME                        READY     STATUS    RESTARTS   AGE
frontend-6cfdb4d686-j8jj7   1/1       Running   0          9m

5、查看deployment的详细信息

[[email protected] ~]# kubectl describe deployment
Name:                   frontend
Namespace:              default
CreationTimestamp:      Fri, 20 Sep 2019 06:40:40 +0000
Labels:                 app=app-demo
                        tier=frontend
Annotations:            deployment.kubernetes.io/revision=1
Selector:               tier=frontend,tier in (frontend)
Replicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  1 max unavailable, 1 max surge
Pod Template:
  Labels:  app=app-demo
           tier=frontend
  Containers:
   tomcat-demo:
    Image:        tomcat
    Port:         8080/TCP
    Host Port:    0/TCP
    Environment:  <none>
    Mounts:       <none>
  Volumes:        <none>
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      True    MinimumReplicasAvailable
  Progressing    True    NewReplicaSetAvailable
OldReplicaSets:  <none>
NewReplicaSet:   frontend-6cfdb4d686 (1/1 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  9m    deployment-controller  Scaled up replica set frontend-6cfdb4d686 to 1

原文地址:https://www.cnblogs.com/lemon-le/p/11557809.html

时间: 2024-10-10 19:00:13

Kubernetes概念之deployment的相关文章

Kubernetes Controller 之 Deployment 介绍

一.Deployment 我们接着前面的文章说,如果不清楚的请查看之前的博文:http://blog.51cto.com/wzlinux/2322616 前面我们已经了解到,Kubernetes 通过各种 Controller 来管理 Pod 的生命周期.为了满足不同业务场景,Kubernetes 开发了 Deployment.ReplicaSet.DaemonSet.StatefuleSet.Job 等多种 Controller.我们首先学习最常用的 Deployment. 1.运行 Depl

Kubernetes 控制器之 Deployment 介绍(六)

一.Deployment.ReplicaSet.Pod之间的关系 我们接着前面的文章说,如果不清楚的请查看之前的博文:http://blog.51cto.com/wzlinux/2322616 前面我们已经了解到,Kubernetes 通过各种 Controller 来管理 Pod 的生命周期.为了满足不同业务场景,Kubernetes 开发了 Deployment.ReplicaSet.DaemonSet.StatefuleSet.Job 等多种 Controller.我们首先学习最常用的 D

Kubernetes概念-2.0Controller:执行运行POD的任务

Controller:执行运行POD的任务 控制器,Kubernetes一般情况人们不会直接创建 Pod,而是通过创建Controller来管理 Pod 的.Controller 中定义了 Pod 的部署特性,比如有几个副本,在什么样的 Node 上运行等.为了满足不同的业务场景,Kubernetes 提供了多种 Controller,包括 Deployment.ReplicaSet.DaemonSet.StatefuleSet.Job 等,我们逐一讨论.一般创建POD,都是直接创建Deploy

Kubernetes概念之mater、node

很久没写博客了,终于把重心找回来了,不过没有以前有斗志.有理想.有目标了.慢慢来.你若问我我最近几年的规划是什么,还真不知道.突然发现摧毁一个人真的很简单.k8s也是一遍一遍的从入门到放弃,还是要好好弄弄了. 本文通过<Kubernetes权威指南>的概念部分学习总结 Kubernetes集群管理的两个角色Master.Node 1.Master Master:Kubernetes里的Master指的是集群控制节点,每个Kubernetes集群里需要有一个Master节点来负责整个集群的管理和

Kubernetes基础篇:主要特性、基本概念与总体架构

Kubernetes基础篇:主要特性.基本概念与总体架构 本文试图将Kubernetes的基础相关知识描述清楚,让一个从来没有Kubernetes实践的开发人员,能够非常容易地理解Kubernetes是什么,能够做哪些事情,以及使用它能带来的好处是什么. Kubernetes是什么 Kubernetes是一个开源的容器编排引擎,它支持自动化部署.大规模可伸缩.应用容器化管理.我们在完成一个应用程序的开发时,需要冗余部署该应用的多个实例,同时需要支持对应用的请求进行负载均衡,在Kubernetes

kubernetes资源对象与基本概念解析

Objects 以下列举的内容都是 kubernetes 中的 Object,这些对象都可以在 yaml 文件中作为一种 API 类型来配置. Pod Node Namespace Service Volume PersistentVolume Deployment Secret StatefulSet DaemonSet ServiceAccount ReplicationController ReplicaSet Job CronJob SecurityContext ResourceQuo

三小时学会Kubernetes:容器编排详细指南

三小时学会Kubernetes:容器编排详细指南 如果谁都可以在三个小时内学会Kubernetes,银行为何要为这么简单的东西付一大笔钱? 如果你心存疑虑,我建议你不妨跟着我试一试!在完成本文的学习后,你就能在Kubernetes集群上运行基于微服务的应用程序.我之所以能保证这一点,是因为我就是这么向客户介绍Kubernetes的. 这份指南与其他文章有何不同之处? 相当多!大多数指南是从Kubernetes概念和kubectl命令这类简单的东西开始的.它们假定读者熟悉应用程序开发.微服务和Do

Kubernetes集群中Service的滚动更新

Kubernetes集群中Service的滚动更新 二月 9, 2017 0 条评论 在移动互联网时代,消费者的消费行为已经"全天候化",为此,商家的业务系统也要保持7×24小时不间断地提供服务以满足消费者的需求.很难想像如今还会有以"中断业务"为前提的服务系统更新升级.如果微信官方发布公告说:每周六晚23:00~次日凌晨2:00进行例行系统升级,不能提供服务,作为用户的你会怎么想.怎么做呢?因此,各个平台在最初设计时就要考虑到服务的更新升级问题,部署在Kubern

kubernetes简单介绍和实战

kubernetes简单介绍和实战 在本文中,我们从技术细节上对kubernetes进行简单运用介绍,利用一些yaml脚本层面上实例告诉大家kubernetes基本概念.Kubernetes以及它呈现出的编程范式值得你去使用和整合到自己的技术栈中. kubernetes简单介绍 kubernetes起源 Kubernetes最初认为是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg或Omega的开源版本.准确来说的话,kubernetes更是一个全新的平台,一个全新的平台