到底要不要把数据库运行在 Kubernetes 中 : 如今越来越多的应用都跑在 Kubernetes 上,Kubernetes 已经成为云时代的 Linux 操作系统。尽管如此,数据库的部署方式并没有因为 Kubernetes 的浪潮而受到太多影响,因为要想容器化,就要考虑数据库能否自动重启、横向扩展,能否适应容器隔离技术的限制。本文将会通过合理的逻辑推理告诉你到底要不要把数据库运行在 Kubernetes。
Kubernetes 中的 Java 应用性能优化 : 在 Kubernetes 中部署应用并没有想象中那么简单,如果配置不恰当,就会遇到频繁的 oom kills 和 重启,尤其是 Java 应用需要特别关注。本文以一个 Spring Boot 微服务应用为例,分析应用启动消耗的 CPU 和内存资源,然后告诉我们如何调整资源的 requests 和 limits 来提高应用的启动速度,并防止因为 OOM 机制被 kill 掉。
K8S 避坑指南 - Deployment 更新 POD 内容器无法收到 SIGTERM 信号 : 正常情况下,在 Deployment 滚动更新时,当 pod 被 terminate 的时候,应用进程应该能够正确处理 SIGTERM 信号。如果应用不能正确处理 SIGTERM 信号,一般都是因为应用进程不是容器内的 1 号进程,需要调整容器的启动命令来解决问题。
为容器提供更好的隔离:沙箱容器技术概览 : Docker、LXC 以及 RKT 等传统容器都是共享主机操作系统核心的,因此不能称之为真正的沙箱。这些技术的资源利用率很高,但是受攻击面积和潜在的攻击影响都很大,在多租户的云环境中,不同客户的容器会被同样的进行编排,这种威胁就尤其明显。主机操作系统在为每个容器创建虚拟的用户空间时,不同容器之间的隔离是很薄弱的,这是造成上述问题的根本原因。基于这样的现状,真正的沙箱式容器,成为很多研发工作的焦点。多数方案都对容器之间的边界进行了重新架构,以增强隔离。本文覆盖了四个项目,分别来自于 IBM、Google、Amazon 以及 OpenStack,几个方案的目标是一致的:为容器提供更强的隔离。如果你想抓住即将到来的转型机会,不妨关注一下这些新项目。
解决在 Kubernetes 中删除 namespace 一直处于 terminating 状态的问题 : 作者在生产环境中删除某个 namespace 时一直处于 terminating 状态,最后发现是因为在 namespace 中通过 调用了 pre-delete hooks,所以一直卡在那边。具体的解决办法请查阅文章。
papers-notebook : 这是一篇论文阅读笔记,其中的论文一部分来自于在上海交通大学软件学院的研究生课上需要阅读的论文,这部分会比较偏安全和虚拟化。还有一部分论文是作者感兴趣,想去了解的,这部分可能比较偏虚拟化和分布式。论文笔记希望能够记录自己在读论文的时候的想法,其中包括但不限于论文的大致 idea,实现方式,以及自己对论文的评价等等。
从CNI到OVN : 本文主要介绍了 ovn ovs 怎么与 kubernetes 擦出火花。全文主要分为两个部分,第一部分先简单介绍 CNI 的工作原理,然后开始安装 OVS 和 OVN,并测试跨主机容器的连通性。第二部分主要介绍 Openflow 和 OVN 的工作原理和相关实践。
gRPC 服务发现与服务治理技术选型 : gRPC 服务发现与服务治理,目前常见解决方案有以下两种:
Nginx + consul + consul-template
Envoy
本文粗略讲解了两种方案的优缺点,最后总结相对于 nginx,更倾向于 envoy。首先 envoy 就是为微服务而生的负载匀衡工具,grpc 健康检查是微服务中重要的一环。但是 nginx 拥有活跃的社区,说不定不久将来也会有支持 grpc 健康检查的插件。
在 Golang 中操作 Istio 和其他 CRD : 本文以 Istio 为例,演示如何使用 Golang 来对 Kubernetes 中的 CRD 资源进行增删改查。
服务监听 pod id 在 istio 中路由异常分析 : 在 Istio 服务网格中,绝大部分场景下用户服务进程监听的 ip 是 0.0.0.0,这种服务可以透明加入 istio 服务网格,但是如果用户进程监听的本机具体 ip(pod ip),这种服务就无法直接加入当前 isito 服务网格,因为在 Envoy 的 inbound cluster 配置中,socket_address 被写死了,值为 127.0.0.1。本文描述了如何尝试修复这个问题。
使用 Kyverno 定义 Kubernetes 策略 : Kubernetes 的日常使用过程中,在对象提交给集群之前,我们会有很多机会,很多方法对资源的 Yaml 定义进行检查和处理。很多读者应该也会知道,资源提交之后,还有机会使用 Admission Controller 对资源动动手脚,这其中其实有很多可以提炼出来的标准动作,可以用统一的控制器来进行处理,Kyverno 就是这样一个工具。有了 Kyverno 的帮助,YAML 程序员可以根据条件对资源进行筛选。
3. 视频推荐只有大气磅礴的 BGM,才配得上史诗级的《权力的游戏》。So,只有大气磅礴的 BGM,才配得上云原生时代的操作系统。
视频观看地址:https://www.yangcs.net/posts/cloud-native-weekly-3/
4. 电子书推荐