应用编排与管理:Deployment(一)|学习笔记

简介: 快速学习应用编排与管理:Deployment(一)

开发者学堂课程【Kubernetes 入门 应用编排与管理:Deployment(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/51/detail/1012


应用编排与管理:Deployment(一)


 内容介绍:

一、需求来源

二、用例解读

三、操作演示

四、架构设计

 

一、需求来源

1、背景问题

我们可以直接管理集群中所有的 Pod 吗?

如果这样做,以下的问题有什么方式来解决?

l 如何保证集群内可用 Pod 的数量

l 如何为所有 Pod 更新镜像版本

l 更新的过程中,如何保证服务可用性

l 更新的过程中,发现问题如何快速回滚

image.png

2、Deployment:管理部署发布的控制器

Deployment 能帮助我们做什么事情?

l 定义一组 Pod 的期望数量, controller 会维持 Pod 数量与期望数量一致

l 配置 Pod 发布方式, controller 会按照给定策略更新 Pod,保证更新过程中不可用的 pod 数量在限定范围内

l 如果发布有问题,支持“一键"回滚

 

二、用例解读

1、Deployment 语法

新知识点:

l replicas:终态数量

l template: pod 模板

往期回顾:

l labels:标签

l selector:选择器

l pod image:镜像版本

apiVersion: apps/v1

kind: Deployment  Deployment元信息

metadata:

name: nginx-deployment

labels:

app: nginx

spec:

replicas:3 期望 Pod 数量

selector:

matchLabels : Pod 的选择器

app: nginx

template:   Pod 模板

metadata:

labels:

app: nginx

spec:

containers:

-name: nginx

image: nginx: 1.7.9

ports:

- containerPort: 80

2、查看 Deployment 状态

$ kubectl create -f nginx-deployment.yaml

$ kubectl get deployment

NAME  nginx-deployment

DESIRED 3

CURRENT  3

UP-TO-DATE  3

AVAILABLE  3

AGE 80m

l DESIRED:期望 pod 数量(replicas)

l CURRENT:当前实际的 pod 数量

l UP-TO-DATE:到达期望版本的 pod 数量

l AVAILABLE:运行中并可用的 pod 数量

l AGE: deployment 创建的时长

3、查看 Pod

$kubectl get pod

NAME

nginx-deployment-5c689d88bb-ck974

nginx-deployment-5c689d88bb-f88bm

nginx-deployment-5c689d88bb-xjqd9

Pod 名字格式:

${deployment-name}-${template-hash}-${random-suffix}

$kubectl get pod/ nginx-deployment-5c689d88bb-ck974 -o yamlapiVersion: v1

kind: Pod

metadata:

ownerReferences:

- apiVersion: apps/v1

blockOwnerDeletion: true

controller: true

kind: ReplicaSet

name: nginx-deployment-5c689d88bb

uid: 07980df9-51fe-11e9-b06e-264e0b6d8534

#...

Pod owner:

ReplicaSet,而非 Deployment

4、更新镜像

$ kubectl set image deployment.v1.apps/nginx-deployment nginx=nginx:1.9.1

l set image:设置镜像

l deployment.v1.apps/:资源类型,固定写法,也可写为 deployment 或者deployment.apps

l nginx-deployment:要更新的 Deployment 名字

l nginx=:要更新的容器名字

l nginx:1.9.1:新的镜像

apiversion: apps/v1

kind: Deployment

metadata:

name:nginx一(

labels:

app:nginx

tainers:

ie: nginx

image: nginx: 1.9.1ports: .

rPort: 80

5、快速回滚

$ kubectl rollout undo deployment/nginx-deployment

回滚到 Deployment 上一个版本

$ kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2

回滚到 Deployment 到某一个版本,需要先查询版本列表:

$ kubectl rollout history deployment.v1.apps/nginx-deployment

6、DeploymentStatus

三个考虑型状态 Processing、complete、Failed

Processing 指的是 Deployment 正在处于扩容的发布中

complete 运行失败后可以进入 Processing 或 Failed 中

Processing 运行失败后可以进入 complete 或 Failed 中

Failed 运行失败后可以进入 Processing 或 complete 中

image.png

相关文章
|
5月前
|
Kubernetes 监控 调度
Kubernetes Pod调度:从基础到高级实战技巧
Kubernetes Pod调度:从基础到高级实战技巧
1099 0
|
Kubernetes Cloud Native 安全
云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)(一)
云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)
1944 0
云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)(一)
|
1月前
|
Kubernetes 容器
Kubernetes附加组件Dashboard部署实战篇
关于如何在Kubernetes集群中部署和配置Dashboard组件的详细实战指南,涵盖了从创建证书、部署Dashboard、设置服务访问到登录认证的完整流程。
195 0
Kubernetes附加组件Dashboard部署实战篇
|
2月前
|
Kubernetes Cloud Native 开发者
OpenKruise:Kubernetes的超级插件,一键解锁容器运行时操作的超能力!
【8月更文挑战第8天】在云原生领域,Kubernetes虽已成为容器编排的标准,但仍有限制,比如批量操作不便和高级调度功能缺失。OpenKruise是一款增强工具,提供CloneSet、Advanced StatefulSet等功能,既保持Kubernetes API特性又增加了扩展性,使Pod管理更灵活。可通过Helm安装OpenKruise,并使用CloneSet轻松实现批量部署。这类增强工具让开发者能更高效地突破原生Kubernetes的限制,预计未来将更加受到欢迎。
58 8
|
1月前
|
Kubernetes 安全 网络性能优化
Kerbernetes的Pod资源管理进阶
文章详细介绍了Kubernetes中Pod的资源管理,包括健康检查、资源限制、安全配置、优先级和服务质量类别等方面的进阶知识。
38 0
|
5月前
|
JSON Kubernetes Cloud Native
云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)
云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)
487 0
|
存储 Kubernetes API
Kubernetes Deployment【1】管理与编排入门(2)
Kubernetes Deployment【1】管理与编排入门(2)
|
Kubernetes 应用服务中间件 nginx
k8s--kubernetes 组件、资源管理方式
k8s--kubernetes 组件、资源管理方式
|
Kubernetes 应用服务中间件 nginx
Kubernetes Deployment【1】管理与编排入门(1)
Kubernetes Deployment【1】管理与编排入门(1)
Kubernetes Deployment【1】管理与编排入门(1)
|
Kubernetes 开发者 Perl
应用编排与管理:Deployment(二)|学习笔记
快速学习应用编排与管理:Deployment(二)
114 0
应用编排与管理:Deployment(二)|学习笔记