k8s初探(5)-kubernetes Deployment(1)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
网络型负载均衡 NLB,每月750个小时 15LCU
简介: k8s初探(5)-kubernetes Deployment(1)

什么是deployment


我们已经初步了解了podreplicaset,我们可以思考这样一个问题,我怎么管理我的replicaset中的pod更新,首先来看下我们一般的更新部署计划,我们抽象出来,大概可以分为以下几步

image.png

我们假设线上已经有了一个拥有三副本的ReplicaSet,我们由于更新了镜像,所以我们得更新一下正在运行的pod,我们想想,我们应当如何更新呢?


假设我们已有架构如下

image.png


当我们需要更新时候,可以先将负载均衡取消掉,例如,我们想更新Pod B,我们可以将其负载均衡给拿掉

image.png


然后删除Pod B,根据replicaSet基本原理,删除Pod后,由于阈值个数不足,所以kubernetes得创建新的,可以理解为

image.png

然后再将负载均衡建立到Pod B上,并且将Pod A的负载均衡给拿掉,这样再更新Pod A就不会影响正在执行的用户了。


image.png


这几个操作步骤,若是让我们手动输入,多多少少有点难为我们,好在,kubernetes提供了我们一个新的资源deployment,正好就解决上面问题的。正如k8s官网所言,将replicaset交由deployment管理,你就安安心心的吧。


其概念可以理解为如下图

image.png



deployment 操作


介绍了那么多,我们先来看一下deployment提供的描述文档,根据后续查就可以了

image.png


为了更好的模拟deployment,我们尝试写一个2个web服务

web程序1

image.png


我们将其打包成镜像 juejinpdudoweb:v1

web程序2

image.png

我们将其打包成镜像 juejinpdudoweb:v2

查看镜像

image.png



创建deployment


创建deployment


image.png


使用apply创建之后,我们可以deploymentrs以及pod的具体信息

image.png


尝试请求pod:9090端口


image.png



更新deployment


更新有2种方式,第一种是执行kubectl edit修改,第二种便是执行kubectl set镜像修改

例如,我们想将该deployment镜像更新下,我们可以使用kubectl set进行更新即可

image.png


通过查询rs可得,deployment更新了一个版本的rs


image.png

查看pod

image.png


再次请求访问

image.png


回退deployment


如上所述,rs更新后,并没有删除掉,所以,我们还可以通过deployment进行回退

查看版本

image.png

我们查看第一个版本


image.png


确定无误,我们可以回退到第一个版本

image.png

我们通过比对rs可以得出结论,已经回退成功了

image.png


查看pod,再次访问网页

image.png

image.png



总结


对于无状态服务而言,我们使用replicaset进行绑定并且对外服务,可以有效解决流量分配 和 故障修复等,不过随之而来的问题便是我们如何更新replicaset管理下的pod,我们手动更新,麻烦且kubernetes负载均衡难以操作,好在kubernetes提供了deployment供我们调用且管理replicaset,作为运维而言,我们仅需管理deployment即可,无需关注和直接操作replicasetdeployment对于版本而言,方便我们更新/回退/查看版本 等。



相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
28天前
|
容器 Perl Kubernetes
深入 Kubernetes 网络:实战K8s网络故障排查与诊断策略
本文介绍了Kubernetes网络的基础知识和故障排查经验,重点讨论了私有化环境中Kubernetes网络的挑战。首先,文章阐述了Kubernetes网络模型的三大核心要素:Pod网络、Service网络和CNI,并强调了其在容器通信和服务发现中的作用。接着,通过三个具体的故障案例,展示了网络冲突、主节点DNS配置更改导致的服务中断以及容器网络抖动问题的解决过程,强调了网络规划、配置管理和人员培训的重要性。最后,提到了KubeSkoop exporter工具在监控和定位网络抖动问题中的应用。通过这些案例,读者可以深入了解Kubernetes网络的复杂性,并学习到实用的故障排查方法。
146284 18
|
11天前
|
Kubernetes 安全 Cloud Native
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
云上攻防-云原生篇&Kubernetes&K8s安全&API&Kubelet未授权访问&容器执行
|
12天前
|
运维 Kubernetes Cloud Native
云原生时代的技术革命:Kubernetes与容器编排
【6月更文挑战第17天】在数字化转型的浪潮中,云原生技术正成为推动企业IT架构现代化的核心力量。本文将深入探讨Kubernetes作为云原生生态中的佼佼者,如何引领容器编排的技术革命,并分析其在现代应用部署、管理和扩展中的关键作用。通过实例和案例分析,我们将揭示Kubernetes如何助力企业实现更高效、灵活和可靠的云原生应用管理。
|
24天前
|
运维 Kubernetes Java
Java一分钟之Kubernetes(K8s):容器编排深入浅出
【6月更文挑战第6天】Kubernetes是容器编排的主流工具,简化分布式系统运维。本文介绍了K8s核心概念:节点、Pod、服务、部署和副本集。讨论了资源不足、依赖服务未就绪等常见问题及其解决策略,并提供创建Deployment的代码示例。学习K8s能提升部署效率和运维灵活性。
126 5
|
3天前
|
Prometheus 监控 Kubernetes
一篇文章讲明白Kubernetes(k8s)部署Promehteus监控
一篇文章讲明白Kubernetes(k8s)部署Promehteus监控
|
29天前
|
Kubernetes 微服务 容器
Aspire项目发布到远程k8s集群
Aspire项目发布到远程k8s集群
380 2
Aspire项目发布到远程k8s集群
|
17天前
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
205 3
|
2天前
|
Kubernetes 网络协议 Docker
k8s 开船记-故障公告:自建 k8s 集群在阿里云上大翻船
k8s 开船记-故障公告:自建 k8s 集群在阿里云上大翻船
|
2天前
|
Kubernetes Ubuntu jenkins
超详细实操教程!在现有K8S集群上安装JenkinsX,极速提升CI/CD体验!
超详细实操教程!在现有K8S集群上安装JenkinsX,极速提升CI/CD体验!
|
3天前
|
Kubernetes 应用服务中间件 nginx
K8s高可用集群二进制部署-V1.20
2.4 部署Etcd集群 以下在节点1上操作,为简化操作,待会将节点1生成的所有文件拷贝到节点2和节点3. 1. 创建工作目录并解压二进制包 mkdir /opt/etcd/{bin,cfg,ssl} -p tar zxvf etcd-v3.4.9-linux-amd64.tar.gz mv etcd-v3.4.9-linux-amd64/{etcd,etcdctl} /opt/etcd/bin/