云原生周报:Google 官方云原生架构的五大原则
这是云原生周报第 2 期,主要分享云原生社区最新开源项目,优秀博客、电子书和视频。
1. 开源项目推荐
Kube Forwarder : Kubernetes 端口转发的 GUI 客户端,支持多集群,断开后可自动重连(kubectl
可做不到这一点哦),可对多个 Service 同时进行端口转发。
Kube eagle : 这是一个 Prometheus Exporter,用来更精确地抓取 Kubernetes 集群中 Pod 资源的 requests
、limits
和实际使用量。
Kube-hunter : Kubernetes 集群渗透测试工具,从事安全工作的相关人员可以关注一下。
ko : 用来在 Kubernetes 中构建并部署 golang
应用的工具。它的使用方法非常简单,如果你想构建一个 golang 应用,并把它部署到 Kubernetes 集群中,只需要编写一个如下的 YAML 文件:
# helloworld.yaml apiVersion: apps/v1beta1 kind: Deployment metadata: name: hello-world spec: selector: matchLabels: foo: bar replicas: 1 template: metadata: labels: foo: bar spec: containers: - name: hello-world # 将 image 的值换成 golang 的项目路径 # 比如如果你的项目路径为 ~/gopath/src/github.com/mattmoor/examples # 那么 image 的值为 github.com/mattmoor/examples image: github.com/mattmoor/examples/http/cmd/helloworld ports: - containerPort: 8080
然后使用命令 ko apply -f helloworld.yaml
即可自动编译成二进制文件、构建镜像然后部署到集群中,一步到位!
Cluster version of VictoriaMetrics : VictoriaMetrics 是 Prometheus 支持的远程存储,而集群版 VictoriaMetrics 用来实现大规模 Prometheus 集群的高可用,并提供了全局视图和可靠的历史数据存储,与 Thanos 的功能类似,但比 Thanos 的架构更简单,值得一试!
Service Mesh Hub : solo.io 开源的 Service Mesh
仓库,提供了一个 Dashboard 用来发现和部署不同类型的 Service Mesh,也可以管理每个 Service Mesh 的扩展。
这是仓库里包含的所有扩展:
Kubernetes Standardized Glossary : 这是 Kubernetes 官方文档新出的标准术语表,对每种资源类型和组件都有标准化的解释。
netramesh : 这是一个轻量级的 Service Mesh 框架。你没有听错,这是一个全新的 Service Mesh 框架。据官方文档所述,它比 Istio
和 Linkerd2
的资源消耗更少,性能更高,每个 Sidecar 大约消耗 10-50Mb 的内存和 1ms 的延迟开销。这是它的架构图:
KubeOne : Golang 编写的 Kubernetes 高可用集群部署工具,底层使用的是 kubeadm
。
ingress-nginx kubectl plugin : NGINX Ingress Controller 的 kubectl
插件,可用来方便快速地调试 ingress。通过该插件,你可以直接查看某个 ingress 资源后端有哪些 endpoint,直接导出某个域名的证书和秘钥,也可以导出 Nginx 的配置文件,非常实用。
Singer : Printerest 开源的高性能可扩展日志收集 agent,可对接 Kafaka。
2. 博客推荐
Multi-Container Pods in Kubernetes : 在 Kubernetes 中,Pod 是最小的调度单元,Pod 中可以只运行一个容器,也可以运行多个容器。本文主要讨论了在什么场景下需要在一个 Pod 中运行多个容器,主要包括三种需求:共享存储、进程间通信、共享网络。
云原生架构的五大原则 : 这是一篇 Google Cloud 的官方博客,描述了云原生架构应该遵循的五个准则。
使用 nftables 实现 API Server 的高可用 : 这篇文章比较有意思,详细描述了如何用 nftables
来实现 API Server 的高可用,后面还提到了如何用 nftables 来实现 kube-proxy
的四层负载均衡功能。
podpreset批量添加时区配置 : 使用 Docker 镜像来部署应用时,大家都会遇到一个让人头疼的问题,那就是时区不一致。为了解决这个问题,也涌现出了各种各样的方法,例如改 Dockerfile,将宿主机的 /etc/localtime 挂载到容器中等。本文给出了一种一劳永逸的巧妙方法,大家可以尝试一下。
容器环境中的应用弹性能力 : 本文介绍了如何在容器环境中提高应用的弹性能力和可用性。
弹性能力设计模式:重试,回退,超时,断路器 : 本文主要讨论了松耦合、隔离和延迟控制是如何对系统的弹性能力产生积极的影响。其中重试模式可以通过多次尝试来恢复通信,回退模式可以在本地解决通信故障,断路器可以抵挡由于重试而导致的 DoS 攻击以及当持续出现通信错误时可以快速回退。
明智的微服务之路 : 过去几年中,越来越多的创业公司转向了微服务架构,DevOps 相关招聘需求暴增,容器文化盛行。这篇文章试图解释这一切背后的原因,先列出了微服务架构的痛点,增加了系统的各种复杂度,最后告诉我们即使微服务架构增加了各种复杂度,你仍然可以转向微服务架构的原因。
macvtap实践教程 : macvtap
是网络虚拟化常用的一种技术,基于传统的 MACVLAN。它可以用来简化虚拟化环境中的交换网络,代替传统的 Linux TAP 设备加 Bridge 设备组合。kata
的虚拟化网络就用了这个技术,通过本文的实践可以帮助你理解 kata 的网络原理。
解决 CoreDNS 缓存不一致而导致的域名解析问题 : 如果你在 CoreDNS 中启用了 cache
和 autopath
插件,并且 CoreDNS 版本低于 1.5.1,就会遇到缓存不一致的问题。本文作者是该 bug 的修复者,他会带领我们一步一步进行调查,最后找到问题所在。
3. 视频推荐
Envoy SDS:增强 Istio 的安全性 : Istio 1.1 之前,Istio 为工作负载提供的密钥和证书是由 Citadel 生成并使用加载 Secret 卷的方式分发给 Sidecar 的,这种方式有很多缺陷,比如证书轮换造成的性能损失和安全漏洞。在 Istio 1.1 中,可以使用 SDS 来解决这些问题,它的主要工作原理如下:
- 工作负载的 Sidecar 从 Citadel 代理中请求密钥和证书:Citadel 代理是一个 SDS 服务器,这一代理以 DaemonSet 的形式在每个节点上运行,在这一请求中,Envoy 把 Kubernetes service account 的 JWT 传递给 Citadel 代理。
- Citadel 代理生成密钥对,并向 Citadel 发送 CSR 请求: Citadel 校验 JWT,并给 Citadel 代理签发证书。
- Citadel 代理把密钥和证书返回给工作负载的 Sidecar。
本视频主要演示了 SDS 是如何高效地进行证书轮换,以及 Citadel 是如何独立于其他 Istio 组件工作的。
使用 Envoy,Cilium 和 BPF 进行透明混沌测试 : 混沌测试主要用来在分布式系统上做对照实验,引入混沌:服务器崩溃、硬盘异常、网络连接中断等,从而帮助建立对系统承受不可避免的故障的能力的信心。目前大部分的混沌测试都是手动完成的,本视频演示了如何将 Envoy 和 Cilium、BPF 结合使用,以完全透明的方式将服务不可用性、延迟和随机限速等混乱引入 Kubernetes 集群。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
每日一博 | 金融行业微服务架构解析
转载本文需注明出处:微信公众号EAWorld,违者必究。 引言: 对于微服务,每个人都有自己的理解,与互联网企业的大量落地相比,微服务在传统金融行业还没有普及,这首先是传统金融行业线上系统需求更新和版本迭代没有互联网公司那么频繁;其次是技术能力约束了新技术的落地;再者传统金融行业对系统可用性和稳定性的要求非常高。 如何理解微服务架构?微服务能够给金融行业带来什么?金融行业微服务架构如何选型?这些都需要我们对微服务架构进行深入的剖析。 目录: 一、什么是微服务 二、主流微服务框架 三、微服务架构关键技术 一、什么是微服务? 微服务架构定义 微服务的定义源于 2014 年 3 月 Martin Fowler 所写的一篇文章“Microservices”,微服务的四个特性定义抽象为“小、独、轻、松”。 微服务的感性认识 转型之前: 紧耦合组件 慢的部署周期,等待集成测试 转型之后: 松耦合组件 自动化部署,无需等待独立组件 微服务优势 可伸缩性:服务的承载能力在设计之初并不能完全符合后来业务发展的要求,随着业务量增大,服务要通过服务器集群方式进行扩展,各个微服务的扩展数量也是按需求扩展,承载...
- 下一篇
新商标表明华为鸿蒙系统在海外或叫做“Harmony OS”
本月早些时候在接受法国新闻周刊杂志《观点》(Le Point)采访的时候,余承东表示鸿蒙系统将会在今年年底之前在中国市场上推出,而全球市场推广可能会等到2020年的第一季度。2019年6月华为已经为这款即将到来的操作系统申请了多个商标,包括“HongMeng OS”、“HMOS”(鸿蒙的拼音首字母)和“Ark OS”。为此很多人猜测“Ark OS”会成为鸿蒙系统在国际市场上线之后的正式名称。 不过在2019年7月12日华为向欧盟知识产权局(EUIPO)申请了又一项新专利,这次的名字叫做“Harmony”(和谐)。该申请被归类为第9类,并附有说明:“移动操作系统;电脑操作系统;可下载的操作系统程序”。 该商标由华为委托德国慕尼黑的Forresters事务所提交,这家事务所此前已经负责为华为申请了多项商标名称,包括“Hongmeng”以及最近推出的华为“P Smart Z”。 在7月12日的《2018年可持续发展报告》报告会上,华为董事长梁华表示,鸿蒙系统是为物联网开发的,用于自动驾驶、远程医疗等低时延场景。华为手机还是把开放的安卓系统和生态作为首选,如果美国不允许华为使用安卓,华为是否会...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境