通过 Wasm 扩展 Envoy 1.17+

2021-01-12
阅读 6 分钟
3.6k
2021年1月12日,Envoy 1.17.0 正式 released!本次更新值得大家关注的功能:wasm filterxds 资源 ttlskywalking tracer本文主要小试Wasm filter。Wasm扩展概述Envoy Wasm扩展是一种Filter,可通过Wasm ABI 将Envoy内部 C++ API ”翻译“ 到 Wasm 运行时。 目前Envoy 支持以下4种Wasm 运行时:NameDescriptionenvoy.wasm.run...

使用Kubernetes和Istio构建大型集群的挑战和解决方案

2021-01-11
阅读 5 分钟
3.6k
为了更好地管理不断增长的服务和流量,Houzz基础架构工程团队最近将Web Server服务从Amazon Elastic Compute Cloud(Amazon EC2)迁移到Kubernetes集群。这次迁移使资源减少了33%,首页延迟有了30%的改善。

WebAssembly--云原生项目可扩展性的利器

2021-01-11
阅读 3 分钟
3.7k
尽管在诞生之初,WebAssembly(简称Wasm)目的是为浏览器带来高级编程的功能 -- 它提供了一条途径,以使得以各种语言编写的代码都可以以接近原生的速度在Web中运行。在这种情况下,以前无法以此方式运行的客户端软件都将可以运行在Web中。

通用WebAssembly运行时--Wasmer 1.0 GA

2021-01-06
阅读 4 分钟
3.8k
利用Wasm进行软件容器化,我们创建了通用二进制文件,无需修改即可在任何地方运行,包括Linux,macOS,Windows以及Web浏览器等操作系统。 Wasm默认情况下会自动沙盒化应用程序以安全执行,从而保护主机环境免受运行中软件中的恶意代码,错误和漏洞的侵害。 Wasm还提供了一个精益执行环境,使Wasmer容器可以在Docker容器...

解析Istio访问控制

2020-11-08
阅读 2 分钟
2.8k
Istio是一种具备流量管理,安全性,可观察性,可扩展的服务网格解决方案。那么Istio的授权模型是什么?其如何实现对网格中的工作负载进行访问控制的?

Istio流量管理--Ingress Gateway

2020-11-08
阅读 9 分钟
5k
传统上,Kubernetes使用Ingress控制器来处理从外部进入集群的流量。使用Istio时,情况不再如此。 Istio已用新的Gateway和VirtualServices资源替换了熟悉的Ingress资源。它们协同工作,将流量路由到网格中。在网格内部,不需要Gateway,因为服务可以通过集群本地服务名称相互访问。

如何将Node.js Docker镜像大小减小10倍

2020-10-12
阅读 3 分钟
6k
对应用程序进行Docker化非常简单,有效,但是优化Docker Image的大小是棘手的部分。 Docker易于使用,但是一旦应用程序开始扩展,镜像大小就会呈指数增长。通常,大多数情况下,应用程序的Node.js docker镜像大小超过1 GB。

人人都可以写弹性伸缩器--DigitalOcean开源CPA operator

2020-09-16
阅读 6 分钟
1.6k
Kubernetes提供了Horizo​​ntal Pod Autoscaler,它可以根据您提供的指标自动缩放资源(Deployment,ReplicationController,ReplicaSet,StatefulSet)中副本的数量。通常,所使用的度量标准是CPU /内存负载,对于大多数应用程序而言已足够。

Kubernetes网络插件(CNI)的基准测试

2020-09-10
阅读 5 分钟
4.4k
本文是对我之前的基准测试(2018年和2019年)的更新,该基准测试基于Kubernetes 1.19和Ubuntu 18.04,并于2020年8月更新了CNI版本。

Linux cgroups v2带来了无Root容器,卓越的内存管理

2020-09-01
阅读 2 分钟
3.7k
容器和容器管理工具有很多组件。尽管您不需要考虑很多就可以快速部署单个Docker容器,但是容器的规模越大,并且向其添加的服务越多,它就会变得越复杂。实际上,Kubernetes的部署很快就会变得非常复杂。他们也可能对资源要求很高。

一文入门Kubernetes

2020-07-26
阅读 3 分钟
2.6k
Kubernetes提供了支持复杂容器应用程序所需的一切。对于开发人员和运营人员来说,这是最便捷,最受欢迎的框架,几乎所有组织的DevOps团队都广泛使用它。

Pod 就地升级4--如何判断Pod就地升级完成

2020-07-11
阅读 4 分钟
2.2k
上一章我们讲了,kubelet如何通过计算容器的hash来判断是否需要升级容器。 本文主要讲如何判断Pod就地升级完成。 在ContainerStatus中不仅有hash filed。还记录了ImageID filed。 {代码...} 关于ImageID的更加详细的讲述,大家可以参考这个系列文章的第一篇。 我们任意查看一个Pod的具体信息: {代码...} 如上 imageID: ...

Pod 就地升级1--Docker Image IDs

2020-07-11
阅读 5 分钟
2k
Docker 镜像是用于创建容器的只读模板,并提供了基于多层文件和路径的有序联合文件系统,该文件系统可以与其他镜像和容器共享。共享镜像层是Docker平台的基本组成部分,并且通过实现写​​时复制(COW)机制来实现。在其生命周期内,如果容器需要从提供其文件系统的只读映像中更改文件,它将在进行更改之前将文件复制到其...

为什么你应该在docker 中使用gosu?

2020-07-01
阅读 5 分钟
4.8k
Docker容器中运行的进程,如果以root身份运行话会有安全隐患,该进程拥有容器内的全部权限,更可怕的是如果有数据卷映射到宿主机,那么通过该容器就能操作宿主机的文件夹了,一旦该容器的进程有漏洞被外部利用后果是很严重的。

Kubernetes中有状态应用的优雅缩容

2020-06-22
阅读 5 分钟
3.3k
将有状态的应用程序部署到Kubernetes是棘手的。 StatefulSet使它变得容易得多,但是它们仍然不能解决所有问题。最大的挑战之一是如何缩小StatefulSet而不将数据留在断开连接的PersistentVolume成为孤立对象上。在这篇博客中,我将描述该问题和两种可能的解决方案。

使用Open Policy Agent实现Kubernetes Pod安全策略

2020-06-10
阅读 3 分钟
3k
在此博客文章中,首先我将讨论Pod安全策略准入控制器。然后,我们将看到Open Policy Agent如何实现Pod安全策略。实际上,Open Policy Agent被视为Pod安全策略的潜在替代方案。

细数k8s支持的4种类型的container

2020-06-07
阅读 7 分钟
2.7k
截止目前k8s1.18,k8s已经支持标准容器,sidecar容器,init 容器,ephemeral 容器 4种类型的containers。本文我们详细介绍一下这4种容器的特性已经使用场景。

谈谈stop容器

2020-05-30
阅读 8 分钟
2.4k
容器内的主进程(PID为1的进程)将收到SIGTERM,并在宽限期之后收到SIGKILL。在容器中的应用程序,可以选择忽略和不处理SIGTERM信号,不过一旦达到超时时间,程序就会被系统强行kill掉,因为SIGKILL信号是直接发往系统内核的,应用程序没有机会去处理它。

POD的内存限制 和 OOM Killer

2020-05-21
阅读 7 分钟
4.9k
在过去的几天中,我的某些Pod持续panic,并且OS Syslog显示OOM Killer杀死了容器进程。我做了一些研究,以找出这些东西是如何工作的。

避免在Docker镜像下将NodeJS作为PID 1运行

2020-05-12
阅读 4 分钟
3.4k
在[链接],我们使用的思想是“每个Docker容器一个进程”。当然,我们也将这种思想应用于运行集成组件。因此,我们的每个集成组件实际上都是一个Docker容器内部的一个进程,并且每个Docker容器都在Mesosphere和Kubernetes上运行。

官方下一代Docker镜像构建神器 -- BuildKit

2020-04-29
阅读 3 分钟
5.1k
BuildKit是Docker官方社区推出的下一代镜像构建神器--可以更加快速,有效,安全地构建docker 镜像。Docker v18.06已经集成了该组件。BuildKit可用于多种导出格式(例如OCI或Docker)以及前端支持(Dockerfile),并提供高效缓存和运行并行构建操作等功能。BuildKit仅需要容器运行时就能执行,当前受支持的运行时包括cont...

Kubernetes网络模型

2020-04-26
阅读 11 分钟
2.1k
Kubernetes旨在在一组机器集群上运行分布式系统。分布式系统的本质使网络成为Kubernetes部署的核心和必要组成部分,并且了解Kubernetes网络模型将使您能够正确运行,监视和故障排除在Kubernetes上运行的应用程序。

拥抱K8S:将ZooKeeper迁移到Kubernetes

2020-04-15
阅读 3 分钟
5.8k
我们最近将数百个ZooKeeper实例从单独的服务器实例迁移到了Kubernetes,而期间没有停机。我们使用了强大的Kubernetes功能(例如端点)来简化流程,本文主要把迁移心得分享给大家,方便有同样需求的小伙伴们参考。有关一些重要的前提条件,比如网络,请参见最后。

使用AIOps优化Kubernetes集群的成本

2020-04-09
阅读 3 分钟
2.9k
Kubernetes是Google开源的改变游戏规则的产品之一,它使许多组织的工作流程更加高效。有了Kubernetes,可以根据应用程序需求弹性管理应用程序的资源需求。它提供了根据工作负载需求为应用程序分配所需的CPU,磁盘和RAM的灵活性。

服务网格平台探索性指南

2020-04-01
阅读 6 分钟
9.6k
开发人员需要确保跨服务的通信是安全的。他们还需要实施分布式跟踪,以告知每次调用需要多长时间。重试,断路器等分布式服务的一些最佳实践为服务带来了弹性。微服务通常是多语言的,并使用不同的库和SDK。编写通用的可重用软件来管理跨HTTP,gRPC和GraphQL等不同协议的服务内通信非常复杂,昂贵且耗时。

用于监视Kubernetes和Docker的六大开源工具

2020-03-11
阅读 4 分钟
2.3k
Kubernetes和Docker是现代DevOps中最常听到的两个流行词。 Docker是使您能够容器化和运行应用程序的工具,而Kubernetes为您提供了一个平台来编排或管理这些容器--因为使用Docker CLI手动管理成千上万个容器是一个现实的噩梦。

Kubeflow 1.0:适合所有人的云原生ML

2020-03-03
阅读 4 分钟
6.3k
我们荣幸地代表整个社区宣布我们的第一个主要版本Kubeflow 1.0。 Kubeflow于2017年12月在美国Kubecon开源,并且在过去两年中,Kubeflow项目的增长超出了我们的期望。现在有来自30多个参与组织的数百名贡献者。在1.0版本中,我们将逐步提供一组稳定的应用程序,这些应用程序是在Kubernetes上有效开发,构建,训练和部署模...

深入理解kubernetes容器指标

2020-03-02
阅读 4 分钟
4k
Google的cAdvisor项目最初是一个独立项目,用于从节点上收集运行的容器的资源和性能指标。在Kubernetes中,cAdvisor嵌入到kubelet中。kubelet控制着集群中每个节点上的所有容器。这就很方便了,因为不需要在每个节点中都运行另一个进程来收集容器指标。

构建Kubernetes有状态应用程序的不同方法

2020-02-25
阅读 3 分钟
2.8k
Kubernetes是计算历史上增长最快的基础设施项目之一。在短短的五年内,它已经达到了成为现代基础设施基础的成熟水平。从公共云中的托管容器即服务(CaaS)到数据中心中的企业平台即服务(PaaS)到边缘计算,Kubernetes变得无处不在。

如何在Kubernetes中将Envoy用作负载均衡器

2020-02-21
阅读 6 分钟
7.2k
在当今分布式的世界中,单体架构越来越多地被多个,更小,相互连接的服务(不管是好是坏)所取代,代理和负载平衡技术似乎正在复兴。除了老玩家以外,近年来还涌现出几种新的代理技术,它们以各种技术实现,并以不同的功能进行普及,例如易于集成到某些云提供商(“云原生”),高性能和低内存占用,或动态配置。