使用Kubectl部署应用

640?wx_fmt=gif

目录  

使用Kubectl部署应用 

  • Kubectl部署流程 

  • 部署一个简单的Demo网站 


使用Kubectl部署应用

一旦运行了Kubernetes集群,就可以在其上部署容器化应用程序。因此在开始之前,我们需要先确保集群已经准备就绪,无论是使用Minikube还是kubeadm创建的集群。

接下来,我们讲述使用Deployment(部署)对象来部署一个简单网站。

Kubectl部署流程

使用Kubectl的部署流程如下所示:

640?wx_fmt=png

接下来我们根据这个流程部署一个简单的Demo网站。

部署一个简单的Demo网站

这里,我们可以通过创建Kubernetes Deployment对象来运行应用程序。那么我们需要编写一个YAML文件来定义Deployment对象。

1.编写Deployment对象的配置文件

在开始之前,我们需要对Deployment对象的配置有初步的了解。官方介绍文档如下所示:

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.15/#deployment-v1-apps

根据官方标准,我们定义了一个简单的Deployment配置:

apiVersion: apps/v1 #API对象版本,可通过“kubectl api-versions”命令查看

kind: Deployment #资源类型,区分大小写,可通过“kubectl api-resources”命令查看,这里使用Deployment对象

metadata: #标准的元数据

 name: demo-deployment  #当前Deployment对象名称,同一个命名空间下必须唯一

spec: #部署规范(目标),Deployment控制器会根据此模板调整当前Pod到最终的期望状态

 replicas: 5  # Pod数量,这里指运行5个Pod	selector: #选择器,其定义了Deployment控制器如何找到要管理的Pod	matchLabels:  #匹配标签	app: demo   #待匹配的标签键值对	template:   # Pod模板定义	metadata: #标准的元数据	labels: #Pod标签	app: demo #定义Pod标签,由键值对组成	spec: #Pod规范	containers: #容器列表,Pod中至少有一个容器	- name: demo  #容器名称	image: microsoft/dotnet-samples:aspnetapp #镜像地址	ports:  #端口列表	- containerPort: 80 #设置容器端口

如上面定义所示,我们定义了一个简单的部署示例,它将使用创建一个ReplicaSet对象以利用复制控制器创建5个Pod来运行“dotnet-samples”。

2.使用“kubectl create”执行资源创建

YAML文件准备好了,接下来我们来执行创建:

kubectl create -f deployment-demo.yaml

640

结合配置,这里有几个重点说明一下:

  • 如上面配置所示,部署名称为“demo-deployment”。

  • 此部署对象将创建5个复制的Pod,由replicas字段决定。如上图所示该部署创建了5个Pod。

  • selector字段定义了Deployment控制器如何找到要管理的Pod,所以标签的键值对一定不能出错。

  • template字段则定义了Pod模板,其子字段labels定义了Pod 的标签,spec字段则定义了容器。

执行创建部署之后,我们可以通过命令“kubectl get Deployment demo-deployment”来检查部署对象是否已经创建,部署是否已经完成:

640

如上图所示,上述字段分别代表:

  • READY代表是否已就绪,左侧数字表示当前已运行的副本数,右侧表示所需的副本数。

  • UP-TO-DATE表示已更新已实现预期状态的副本数。

  • AVAILABLE则表示用户可以使用的应用程序副本数。

  • AGE表示应用已运行的时间。

通用的,我们可以运行以下命令来查看副本集(ReplicaSet)对象:

kubectl get ReplicaSets -lapp=demo

640

通过上图可知,我们创建Deployment对象的过程实际上就是生成对应的副本集对象(Replica Set)并完成Pod副本的创建过程。

值得注意的是,副本集的名称格式为[部署名称]-[随机字符串]。随机字符串是随机生成的,并使用pod-template-hash作为种子。如何查看pod-template-hash呢?使用如下命令即可:

kubectl get pods -lapp=demo --show-labels

640

如上图所示,5个Pod已经部署完成。

往期内容

Docker+ Kubernetes已成为云计算的主流(二十六)

容器化之后如何节省云端成本?(二十七)

了解Kubernetes主体架构(二十八)

使用Minikube部署本地Kubernetes集群(二十九)

使用kubectl管理k8s集群(三十)

使用Kubeadm创建k8s集群之部署规划(三十一)

使用Kubeadm创建k8s集群之节点部署(三十二)

集群故障处理之处理思路以及健康状态检查(三十三)

集群故障处理之处理思路以及听诊三板斧(三十四)

使用WebDeploy部署远程IIS网站

640?wx_fmt=jpeg


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SP22343 NORMA2 - Norma(分治优化复杂度)

SP22343 NORMA2 - Norma 一看就像是一个序列分治的题目,求解序列上区间长度乘区间最大值最小值的和,然后考虑如何处理,分治之后每次就可以将右边部分分成三部分,然后对于这三部分可以批量求和,这样就起到优化复杂度的…

Docker系列之.NET Core入门(三)

在Docker生态系统中除了上一节所讲解的基本概念,还有其他专业术语,本文我们将一笔带过,同时会开始陆续进入到在.NET Core中使用Docker。专业术语Docker Engine(Docker引擎):客户端 - 服务器应用程序。Docke…

P3911 最小公倍数之和 (atcoder C - LCMs)(反演)

P3911 最小公倍数之和 推式子 ∑i1n∑j1nlcm(ai,aj)下面的nmax(ai),ci为i在原数组中出现的次数∑i1n∑j1nijgcd(ij)cicj∑d1n1d∑i1n∑j1nijcicj(gcd(i,j)d)∑d1nd∑i1nd∑j1ndijcidcjd∑k∣gcd(i,j)μ(k)∑d1nd∑k1ndμ(k)k2∑i1nkd∑j1nkdijcikdcjkd∑t1nt(∑i1n…

P5502 [JSOI2015]最大公约数(gcd性质/min性质/分治)

P5502 [JSOI2015]最大公约数 对于求解(r-l1)*gcd(l,r)的最大值,首先我们有一个性质,就是一个前缀的gcd本质不同个数只有log个,所以我们可以利用这个性质,然后每次分治处理,每一层的复杂度可以做到O(n)因为枚举前缀后缀…

2019南昌网络赛G. tsy‘s number(反演 + 积性函数O(n)预处理)

tsy’s number 推式子 ∑i1n∑j1n∑k1nϕ(i)ϕ(j2)ϕ(k3)ϕ(i)ϕ(j)ϕ(k)ϕ(gcd(i,j,k))我们假定jp1k1p2k2p3p3……pnkn,有ϕ(j)p1k1−1(p1−1)p2k2−1(p2−1)p3k3−1(p3−1)……pnkn−1(pn−1),ϕ(j2)p12k1−1(p1−1)p22k2−1(p2−1)p32k3−1(p3−1)……

#2989. 数列(cdq分治/曼哈顿距离)

#2989. 数列 给定一个长度为n的正整数数列a[i]。 定义2个位置的graze值为两者位置差与数值差的和,即graze(x,y)|x-y||a[x]-a[y]|。 2种操作(k都是正整数): 1.Modify x k:将第x个数的值修改为k。 2.Query x k&#xff…

通过Blazor使用C#开发SPA单页面应用程序(4) - Ant Design

通过Blazor使用C#开发SPA单页面应用程序(1)通过Blazor使用C#开发SPA单页面应用程序(2)通过Blazor使用C#开发SPA单页面应用程序(3)前面学习了Blazor的特点、环境搭建及基础知识,现在我们尝试的做个实际的组件。Ant Design是蚂蚁金服是基于Ant Design设计体系的 UI 组…

POJ 1741 Tree(点分治)

POJ 1741 Tree 思路 男人八题中的一题,写完这题算是18\frac{1}{8}81​个男人了! 这题是树上距离的计数问题,能够通过巧妙地排序加双指针来解决, 统计距离应该大家都会地,我就来说明一下如何计数吧。 假设我们已经求…

P1975 [国家集训队]排队(三维偏序)

P1975 [国家集训队]排队 查询逆序对数目,交换两个数的位置 首先逆序对是一个经典的二维偏序问题,然后现在问题变为静态,我们可以使用三维偏序来处理多出来的限制。或者也可以使用带修主席树处理。

Mercurial黄昏,Bitbucket宣布全面转向Git

源代码托管平台 Bitbucket 宣布将逐步放弃对版本控制系统 Mercurial 的支持。Bitbucket 推出于 2008 年,当时集中式版本控制是比较普遍的,Mercurial 是其中的典型代表,但是当前 Git 才是主流,它已经成为了大部分开源项目的首选版本…

HDU 4812 D Tree (点分治) (2013ACM/ICPC亚洲区南京站现场赛)

HDU 4812 D Tree 思路 点对距离相等并且要求输出字典序最小的点对,距离相等不就是点分治裸题了嘛, 照着这个思路出发我们只要记录下所有点对是满足要求的,然后再去找字典序最小的点对就行了, 接下来就是考虑如何求最小点对了&…

P2754 [CTSC1999]家园 / 星际转移问题(网络流)

P2754 [CTSC1999]家园 / 星际转移问题 经典问题,利用分层图来跑网络流。

使用 Azure DevTest Lab 搭建云端开发测试环境

点击上方蓝字关注“汪宇杰博客”导语程序员和测试工程师经常需要自己搭环境用于开发和测试目的,这些机器可能只会使用很短一段时间。通常我们会在本机使用 Hyper-V、VMWare 之类的虚拟机产品,或者使用企业IT管理员分配的虚拟机去完成这项工作。然而安装配…

dotNET Core WebAPI 统一处理(返回值、参数验证、异常)

现在 Web 开发比较流行前后端分离现在 Web 开发比较流行前后端分离,我们的产品也是一样,前端使用Vue,后端使用 dotNet Core WebAPI ,在写 API 的过程中有很多地方需要统一处理文档参数验证返回值异常处理本文就说说 API 的统一处理…

HDU 4059 The Boss on Mars (容斥)(2011 Asia Dalian Regional Contest)

The Boss on Mars 思路 显然我们可以求得∑i1ni46n515n410n3−n30\sum_{i 1} ^{n} i ^ 4 \frac{6n^5 15n^4 10n ^3 - n}{30}∑i1n​i4306n515n410n3−n​,接下来就是考虑把其中不与nnn互质的数给踢出去了,显然我们可以考虑容斥。 假设np1a1p2a2p3…

P2764 最小路径覆盖问题(网络流)

P2764 最小路径覆盖问题 最小链覆盖问题,关键在于怎么转化为网络流问题,我们可以发现网络流的常见套路就是将一个点拆成出点和入点来处理,对于一条链恰好满足出点和入点匹配的性质,所以可以拆点然后对应连边,这样跑最…

.net测试篇之单元测试/集成测试神器Autofixture

autofixture简介有了单元测试框架加上Moq(后面我们会用单独章节来介绍moq),可以说测试问题基上都能搞定了.然而有了AutoFixture对单元测试来说可以说是如虎添翼,AutoFixture并且它能与moq,rhinomock等框架结合,对单元测试带来的便捷性,可维护性和扩展性更是难以言表,只有用用了…

杜教筛入门详解

杜教筛入门 前置知识 迪利克雷卷积(*): 先介绍三个重要的函数: 元函数ϵ(n)[n1]\epsilon(n) [n 1]ϵ(n)[n1] 原函数可以看成是迪利克雷卷积里的单位元,即(ϵ∗f)(n)f(n)(\epsilon * f)(n) f(n)(ϵ∗f)(n)f(n)&am…

P2765 魔术球问题(网络流)

P2765 魔术球问题 给出n根柱子&#xff0c;求解可以将最多多少编号的球放在上面&#xff0c;并且满足相邻的编号和为完全平方数。 n<50 这个数据范围我们可以选择网络流&#xff0c;然后将对应点连边&#xff0c;然后每次枚举编号&#xff0c;将其加入残量网络&#xff0c…