首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

何在 Kubernetes 无状态应用进行分批发布

Kubernetes 针对各种工作负载,提供了多种控制器,其中 Deployment 为官方推荐,被用于管理无状态应用的 API 对象。...Deployment 提供了 RollingUpdate 滚动升级策略,升级过程根据 Pod 状态,采用自动状态机的方式,通过下面两个配置,新老 Pod 交替升级,控制升级速率。...Kubernetes 生态中常见变更策略 基于 Deployment 的基础功能,结合 Service / Ingress / Istio 等流量控制组件,常见如下几种策略。...所以滚动升级的分批暂停功能,核心业务发布来说,是质量保障必不可少的一环。那有没有什么方法,即可使用 Deployment 的滚动升级机制,又可以在发布过程,结合金丝雀发布,分阶段暂停发布流程呢?...•\t灰度发布,结合流量控制规则,进行线上灰度验证。 •\t结合更多监控指标,与线上服务情况,确定指标基线,作为发布卡点,让分批发布更自动化。

1.5K30

(译)Kubernetes 持久卷进行扩容

Kubernetes v1.11 ,持久卷扩容能力升级为 Beta 阶段。这个功能让用户可以轻松的通过编辑 PVC 对象的方式修改现有卷的容量。...没有这一功能之前,要对卷容量进行修改,需要要和存储后端进行手工交互,或者 PV 以及 PVC 进行删除重建操作。持久卷不支持缩容操作。...(防止在底层存储不支持扩容的情况下 PVC 进行扩容)。...在 Kubernetes v1.11 ,这两个项目都会被缺省激活。 虽然功能已经被激活,但是集群管理员还是需要进行操作,让用户能够自己的卷进行扩容。...文件系统扩展过程遇到任何错误,都会在 Pod 以 Event 的形式表现出来。 在线文件系统扩展 Kubernetes v1.11 还引入了一个 Alpha 功能,叫做在线文件系统扩展。

2.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

何在Kubernetes集群利用GPU进行AI训练

Author: xidianwangtao@gmail.com 注意事项 截止Kubernetes 1.8版本: GPU的支持还只是实验阶段,仍停留在Alpha特性,意味着还不建议在生产环境中使用...Pods不能共用同一块GPU,即使同一个Pod内不同的Containers之间也不能共用同一块GPU。这是Kubernetes目前GPU支持最难以接受的一点。...如何在Pod中使用GPU 不同于cpu和memory,你必须强制显式申明你打算使用的GPU number,通过在container的resources.limits设置alpha.kubernetes.io...熟悉KubernetesLimitRanger和Resource QoS的同学应该就发现了,这种GPU resources的设置是属于QoS为Guaranteed,也就是说: 你可以只显式设置limits...GPU训练 参考如何落地TensorFlow on Kubernetes将TensorFlow跑在Kubernetes集群,并且能创建Distributed TensorFlow集群启动训练。

2.6K70

何在 Tableau 进行高亮颜色操作?

比如一个数据表可能会有十几到几十列之多,为了更好的看清某些重要的列,我们可以对表进行如下操作—— 进行高亮颜色操作 原始表包含多个列,如果我只想看一下利润这一列有什么规律,眼睛会在上下扫视的过程很快迷失...利润这一列进行颜色高亮 把一列修改成指定颜色这个操作在 Excel 只需要两步:①选择一列 ②修改字体颜色 ,仅 2秒钟就能完成。...第2次尝试:选中要高亮的列并点击右键,选择 Format 后尝试进行颜色填充,寄希望于使用类似 Excel 的方式完成。...不过这部分跟 Excel 的操作完全不一样,我尝试每一个能改颜色的地方都进行了操作,没有一个能实现目标。 ?...自问自答:因为交叉表是以行和列的形式展示的,其中SUM(利润)相当于基于客户名称(行的维度)其利润进行求和,故SUM(利润)加颜色相当于通过颜色显示不同行数字所在的区间。

5.6K20

何在 Core Data NSManagedObject 进行深拷贝

何在 Core Data NSManagedObject 进行深拷贝 请访问我的博客 www.fatbobman.com[1] 以获得更好的阅读体验 。... NSMangedObject 进行深拷贝的含义是为一个 NSManagedObject(托管对象)创建一个可控的副本,副本包含该托管对象所有关系层级涉及的所有数据。...本文中将探讨在 Core Data NSManagedObject 进行深拷贝的技术难点、解决思路,并介绍我写的工具——MOCloner[3]。...Item 自定义 MOCloner 采用在 Xcode 的 Data Model Editor User Info 添加键值的方式深拷贝过程进行定制。...为了方便某些不适合在 userinfo 设置的情况(比如从关系链中间进行深拷贝),也可以将需要排除的关系名称添加到 excludedRelationshipNames 参数基础演示 2)。

1.5K20

何在Gitlab流水线部署进行控制?

具有Kubernetes集群的项目可以从迁移到持续部署(CD)模型受益,在该模型,分支或合并请求一旦合并,就会自动部署到生产中,并且无需人工干预。...然后,可以在手动作业定义受保护的环境以进行部署,从而限制可以运行它的人员。...在这种情况下,以上示例CI配置管道的UI视图将如下所示: 如上面的YAML示例和上图所示,使用受保护的环境和阻止属性定义的手动作业是处理合规性需求以及确保对生产部署进行适当控制的有效工具。...这样,您可以将GitOps用作现代基础架构(Kubernetes,Serverless和其他云原生技术)的操作模型。 版本控制和持续集成是持续可靠地部署软件的基本工具。...使用GitOps,基础架构的任何更改都会与应用程序的更改一起提交到git存储库。 这使开发人员和运维人员可以使用熟悉的开发模式和分支策略。合并请求提供了协作和建议更改的场所。

1.8K41

何在单元测试写数据库进行测试?

首先问一个问题,在接口测试,验证被测接口的返回值是否符合预期是不是就够了呢? 场景 转账是银行等金融系统中常见的一个场景。在在最近的一个针对转账服务的单元测试,笔者就遇到了上述问题。...从上述介绍,我们得以了解到,这里的转账服务接口只是完成了申请的接收工作。转账申请需要后续被人工审核后才能完成实际的转账。...assertThat(captured).isEqualToComparingOnlyGivenFields(expected,"flowNo","status"); } } 在之前的测试用例类,...如何两笔申请进行单元测试,Mock又如何写?这个就留给读者自行练习了。 如果不是写库,而是通过MQ对外发布?又如何进行测试呢?...小结 本案例演示了如何使用Mockito提供的Capture特性来验证方法的传参,同时也展示了如何使用AssertJ进行对象的多个属性的断言。

3.6K10

你所不了解的 coreDNS

本文的将不深入探讨 CoreDNS,而是解释 DNS 如何在 Kubernetes 集群工作,CoreDNS 包含什么以及 Corefile 如何使用插件。     ...在讨论 CoreDNS 之前,我们先来看一下 Kubernetes 是如何在集群实现 DNS 交互的。假设有一个 Pod,即 Service A 想要与另一个 Pod Service B 进行通信。...相反,它通过将 Pod 的 IP 地址的点替换为破折号来创建新的主机名,主机名 “10-10-10-1(其格式为:)”。...服务,因此,在此我将讨论自建的 Kubernetes 集群,我们可以通过任何 K8s 节点执行 ssh 来检查 Kubelet 服务的 clusterDns 条目。...综上所述,我们阐述了 DNS 是如何在 Kubernetes 中发挥重要作用的。CoreDNS 通过利用 Kubernetes 插件与 Kubernetes 进行协作。

1.1K50

你所不了解的 coreDNS

本文的将不深入探讨 coreDNS,而是解释 DNS 如何在 Kubernetes 工作,coreDNS 包含什么以及 Corefile 如何使用插件。...在讨论 coreDNS 之前,我们先来看一下 Kubernetes 是如何在集群实现 DNS 交互的。假设有一个 Pod,即 Service A 想要与另一个 Pod Service B 进行通信。...相反,它通过将 Pod 的 IP 地址的点替换为破折号来创建新的主机名,主机名 “10-10-10-1(其格式为:)”。...服务,因此,在此我将讨论自建的 Kubernetes 集群,我们可以通过任何 K8s 节点执行 ssh 来检查 Kubelet 服务的 clusterDns 条目。...综上所述,我们阐述了 DNS 是如何在 Kubernetes 中发挥重要作用的。coreDNS 通过利用 Kubernetes 插件与 Kubernetes 进行协作。

1.4K40

Kubernetes 调度器是如何工作的

Kubernetes 也分为控制平面和工作节点: 控制平面: 也称为主控,负责集群做出全局决策,以及检测和响应集群事件。...它始终和主控联系,以获取工作负载运行所需的信息,并与集群外部进行通讯和连接。...在更高层面下,Kubernetes 调度器的工作方式是这样的: 每个需要被调度的吊舱都需要加入到队列 新的吊舱被创建后,它们也会加入到队列 调度器持续地从队列取出吊舱并进行调度 调度器源码(scheduler.go...return } go wait.Until(sched.scheduleOne, 0, sched.config.StopEverything) 负责吊舱进行排队的代码...负责吊舱进行排队的功能是: // queue for pods that need scheduling podQueue *cache.FIFO 负责吊舱进行排队的代码始于 scheduler.go

47620

前沿研究 | 容器逃逸即集群管理员?你的集群真的安全吗?

,如何在集群内进行权限提升呢?...四、背景知识 4.1 DaemonSets 当希望Pod在集群的每个节点上运行时,需要创建DaemonSet对象,Kubernetes的kube-proxy进程,负责节点的网络代理,需要运行在每个节点上...获取凭证:有权获取或下发凭证,list secrets 命令执行:有权在Pod或Node上执行命令,pods/exec 管理Pod:有权转移Pod或更新节点,update nodes,delete...,用于和Kubernetes进行认证,能够获取到系统账户的权限。...本文介绍了在集群内利用危险的RBAC配置进行权限提升的思路,以此说明权限配置不当容器逃逸后的进一步影响,希望企业的集群管理员与云厂商在管理集群环境的角色与权限时,能够合理分配,防范权限滥用攻击,共同建设安全的集群环境

1.1K20

活久见,Pod日志也能做探针?

最近遇到一个有趣的场景,当业务方有一个只运行异步任务的容器,这意味着它逻辑简单,即从上游服务获取内容进行数据处理,但应用本身不提供任何方式判断当前服务状态。...当服务运行出现阻塞时,我们该如何在Kubernetes来实现探针管理呢?...首先,要解决的是如何在容器内捕获自己的控制台日志 当一个K8S集群部署完成后,在default命名空间内有一个叫kubernetes的默认service。...那我们调取容器自身控制台的日志,就可以用如下接口: https://kubernetes.default.svc/api/v1/namespaces/$NAMESPACE/pods/$HOSTNAME/...Role name: log-capture subjects: - kind: ServiceAccount name: log-capture 再将该SA引进至Workerload下,

52830

【云原生|K8s系列第3篇】:实战Kubectl创建Deployment部署应用

Kubectl 使用 Kubernetes API 与集群进行交互。将学习创建在 Kubernetes 集群上运行应用程序的 Deployment 所需的最常见的 Kubectl 命令。...这将对指定的资源(节点、容器)执行指定的操作(创建、描述)。我们也可以在命令之后使用——help来获得关于可能参数的额外信息(kubectl get nodes——help)。...这个实例运行在节点上的Docker容器。 4、查看部署的程序 Kubernetes内部运行的Pods是在一个私有的、孤立的网络上运行的。...默认情况下,它们同一个kubernetes集群内的其他pods和服务是可见的,但在该网络之外是不可见的。当使用Kubectl时,通过一个API端点与应用程序进行交互。...后文:总结 通过本篇文章,我们已经大致了解到了如何在实战Kubectl创建Deployment部署应用。

10210

Kubernetes的服务网格(第1部分):获取关键的服务指标

马上我们就会在本文中将向您展示如何在Kubernetes上使用linkerd作为服务网格,以及如何在不更改应用程序代码的情况下收集并报告度量服务质量所需的关键指标(top-level service matrics...注意:这是关于linkerd和基于云服务的应用的系列文章的第一篇,这一系列的文章清单如下: 获取关键的服务指标(本文) PODS(Portable On Demand Storage, 便携式按需存储...)很棒,怎么多用都不为过 所有的内容进行加密 通过流量转移实现持续部署 Dogfood环境,入口(ingress)和边界路由(edge routing) 渐进式微服务 让分布式跟踪变得容易 用Linkerd...简而言之,服务网格是管理应用通信的中间层(除了不同应用间的通信,也可以同一应用的不同部分之间的通信,微服务)。...在本系列的文章,我们将陆续介绍如何利用这些功能。 同时,有关在Kubernetes运行linkerd的更多详细信息,可以参考Kubernetes入门指南或在linkerd slack进行交流!

3.1K80

说说Kubernetes的访问控制实现方式

APIServer 和集群组件通信使用 TLS 双向认证,顾名思义,客户端和服务器端都需要验证对方的身份,相比单向认证,双向认证客户端除了需要从服务器端下载服务器的公钥证书进行验证外,还需要把客户端的公钥证书上传到服务器端给服务器端进行验证...RBAC 以上主要介绍 TLS 认证,认证之后我们如何在认证基础上针对资源授权管理呢?这里就要介绍到 RBAC 机制。RBAC,字面意思就是基于角色的权限访问控制。...Kubernetes 的 RBAC 主要涉及到上面提到的 ClusterRole/ClusterRoleBinding/Role/RoleBinding 的资源,其中 ClusterRole/ClusterRolebinding...Role 是用户拥有权限的抽象,RoleBinding 将角色绑定到用户(User)、组(Group)或者服务账户(Service Account)。...写操作 节点和节点状态(通过 NodeRestriction 准入控制插件限制 kubelet 修改自身的节点) podspods 状态(通过 NodeRestriction 准入控制插件限制 kubelet

68020
领券