以下介绍如何使用kubernetes的deployment对象运行应用程序。

目标

- 创建nginx deployment。

- 使用kubectl列出有关部署的信息。

- 更新部署

创建和探索nginx部署

可以通过创建kubernetes部署对象来运行应用程序,还可以在yaml文件中描述部署。例如,这个yaml文件描述了运行nginx:1.7.9 docker映像的部署:

application/deployment.yaml
apiVersion: apps/v1 # for versions before 1.9. use apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: # tells deployment to run pods matching the template
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.
ports:
- containerPort:

注意:

selector字段定义Deployment如何查找要管理的pod。
在本例中,只需选择Pod模板中定义的标签(app:nginx)。然而,只要Pod模板本身满足规则,就可能有更复杂的选择规则。

1. 基于YAML文件创建deployment

kubectl apply -f application/deployment.yaml

2. 显示有关部署的信息:

kubectl describe deployment nginx-deployment

输出类似于:

user@computer:~/website$ kubectl describe deployment nginx-deployment
Name: nginx-deployment
Namespace: default
CreationTimestamp: Tue, Aug :: -
Labels: app=nginx
Annotations: deployment.kubernetes.io/revision=
Selector: app=nginx
Replicas: desired | updated | total | available | unavailable
StrategyType: RollingUpdate
MinReadySeconds:
RollingUpdateStrategy: max unavailable, max surge
Pod Template:
Labels: app=nginx
Containers:
nginx:
Image: nginx:1.7.
Port: /TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment- (/ replicas created)
No events.

3. 列出demployment创建的Pods:

kubectl get pods -l app=nginx

输出类似于:

NAME                                READY     STATUS    RESTARTS   AGE
nginx-deployment--7o5ns / Running 16h
nginx-deployment--r18az / Running 16h

4. 显示Pod信息:

kubectl describe pod <pod-name>

<pod-name>是具体Pod的名称

更新Deployment

你可以通过应用新的yaml文件来更新部署。以下YAML文件将nginx更新到nginx 1.8

application/deployment-update.yaml

apiVersion: apps/v1 # for versions before 1.9. use apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas:
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.8 # Update the version of nginx from 1.7. to 1.8
ports:
- containerPort:

1.  应用新的yaml文件:

 kubectl apply -f application/deployment-update.yaml

2. 查看使用新名称创建的Pods并删除Pods:

 kubectl get pods -l app=nginx

通过增加副本计数来扩展应用程序

你可以通过应用新的yaml文件来增加部署中的Pod数量。此YAML文件将replicas设置为4,指定部署应具有四个pod:

application/deployment-scale.yaml

apiVersion: apps/v1 # for versions before 1.9. use apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: # Update the replicas from to
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.8
ports:
- containerPort:

1.  应用新的yaml文件:

kubectl apply -f application/deployment-scale.yaml

2. 验证部署是否有四个Pod:

kubectl get pods -l app=nginx

输出类似于:

NAME                               READY     STATUS    RESTARTS   AGE
nginx-deployment--4zdqq / Running 25s
nginx-deployment--6zgi1 / Running 25s
nginx-deployment--fxcez / Running 2m
nginx-deployment--rwovn / Running 2m

删除Deployment

通过Deployment的名称删除Deployment

kubectl delete deployment nginx-deployment

运行应用-使用Deployment运行无状态应用程序的更多相关文章

  1. ServiceFabric极简文档-5.0 Service Fabric有状态与无状态

    Service Fabric 应用程序方案 2017/08/14 作者 Edward Chen Jack Zeng Azure Service Fabric提供了一个可靠而灵活的平台,可用于编写和运行 ...

  2. Kubernetes Deployment(部署无状态应用)

    Kubernetes Deployment(部署无状态应用) Pod与controllers的关系 • controllers:在集群上管理和运行容器的对象 • 通过label-selector相关联 ...

  3. Kubernetes 有状态与无状态介绍

    Kubernetes 有状态与无状态介绍 无状态:deployment - 认为所有pod都是一样的,不具备与其他实例有不同的关系. - 没有顺序的要求. - 不用考虑再哪个Node运行. - 随意扩 ...

  4. K8s无状态控制器原理介绍

    Pod控制器: ReplicationController:早期K8s只有这一个控制器,但后来发现让这一个来完成所有任务,太复杂.因此被废弃. ReplicaSet: 它用于帮助用户创建指定数量的Po ...

  5. kubernetes的无状态服务和有状态服务介绍

    无状态服务 1)是指该服务运行的实例不会在本地存储需要持久化的数据,并且多个实例对于同一个请求响应的结果是完全一致的 2)多个实例可以共享相同的持久化数据.例如: nginx实例和tomcat实例 3 ...

  6. C#-WebForm-WebForm开发基础、如何给控件注册事件?——事件委托写法、http无状态性、三层结构

    (小知识 - xml:可扩展的标记语言 html:超文本标记语言) 一.创建WebForm:新建→网站 此时文件夹中只有一个 config 文件,打开后 二.在项目下右键添加新项 在设计页面中打开 从 ...

  7. 对于REST中无状态(stateless)的一点认识

    今天早上在Yahoo的邮件列表里看到一篇颇有意思的讨论,标题为RESTful vs. unRESTful: Session IDs and Authentication(51CTO编者注:意为REST ...

  8. EJB开发第一个无状态会话bean、开发EJBclient

    开发第一个无状态会话bean EJB中的三中bean: 会话Bean(Session Bean) 负责与client交互,是编写业务逻辑的地方.在会话bean中能够通过JDBC直接操作数据库.但大多数 ...

  9. JBoss+Ant实现EJB无状态会话bean实例

    EJB分为session bean.entity bean.message-driven bean,session bean又分为无状态会话bean和有状态会话bean. session bean负责 ...

随机推荐

  1. PHP、asp、aspx、JSP一句话

    PHP.asp.aspx.JSP一句话 原文地址:https://www.cnblogs.com/JoEcO01/p/11556413.html  1.asp一句话木马: <%eval requ ...

  2. 图论 - Bellman-Ford算法

    Bellman-Ford Dijkstra算法虽好,但是不能解决带有负边权的图. 而利用Bellman-Ford可以完美的解决最短路和负边权的问题 朴素Bellman-Ford算法 w[i] 权值 u ...

  3. 项目Beta冲刺--1/7

    项目Beta冲刺--1/7 作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Beta冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及 ...

  4. 自学git

    网址:https://github.com/join/plan 注册:gzhcsu 注册邮箱:QQ邮箱.

  5. Arthas - 开源的java诊断工具,非常有用

    常用命令 help 查看帮助 help COMMAND 查看指定命令的详细帮助 COMMAND -h 查看指定命令的详细帮助 double tab 查看支持的所有命令 dashboard 查看线程JV ...

  6. 解决ie6下png背景不能透明bug

    /*第一种方法:通过滤镜 使用css解决的办法. 注意滤镜下的1像素透明gif的覆盖图片的路径是相对页面写的*/ /*注意:这个方法不适合处理img标签引入的png图片,代码太冗余了*/ .banne ...

  7. LeetCode 886. Possible Bipartition

    原题链接在这里:https://leetcode.com/problems/possible-bipartition/ 题目: Given a set of N people (numbered 1, ...

  8. MongoDB shell 2 副本集方法

    rs.initiate()   rs.addArb()   rs.help()   rs.printReplicationInfo() 查看到副本集操作日志 rs.remove() 减少副本集节点 r ...

  9. Python中的异步任务队列 arq

    引言 最近在用 sanic 写东西,所有涉及到IO阻塞的代码都需要用 aio 的模块,好在近年来 asyncio 生态圈发展的还算不错,该有的都有 ~ 近期业务中 登录/注册 业务涉及的很复杂(涉及到 ...

  10. GoCN每日新闻(2019-10-31)

    GoCN每日新闻(2019-10-31) GoCN每日新闻(2019-10-31) 1. Go语言继承的其他语言的优秀之处 https://spf13.com/presentation/the-leg ...