“「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]。 ”
大家好,我是张晋涛。
本周我花费了比较多的时间在 mTLS (mutual TLS) 上。主要解决两方面的问题:
- 客户端与 APISIX 通过 mTLS 进行交互;
- 将 APISIX 放入开启 mTLS 的 Istio 环境;
具体细节这里不再展开,简单聊聊这中间一些有趣的事情。
不知道大家在进行自签证书的时候是如何来做的, 我个人是习惯于直接使用 openssl
直接进行手动签发。(搞 Kubernetes 的传统手艺)
但在我处理上述第一个问题时,发现未能按预期生效,这让我对自己产生了怀疑,难道是自己太久不自签证书手艺丢了?毕竟现在包括 Kubernetes 集群证书到期也都是直接 renew 就可以,自签证书频度很低了。
本着求真务实(盲目自信)的心态,快速的用 Go 写了个小工具,把自己的这些证书丢进去验证了下, 果然,传统手艺没有丢,在自己的工具中使用这些证书是可以正常的进行 mTLS 通信的。所以我给 APISIX 提交了一个issue
如果下周这个问题解决了,我会写篇文章给大家分享下 mTLS 相关的内容,敬请期待(flag )
kube-vip 发布了 v0.5.0 版本
kube-vip 这个项目可能有些小伙伴不是很熟悉,我来简单介绍下。这个项目为 Kubernetes 集群控制面高可用部署提供了虚 IP 和负载均衡。同时也为 LoadBalancer
类型的 Service 提供了支持。并且这些能力不依赖于任何外部的软硬件。
这对于大多数自行部署 Kubernetes 集群的公司/团队来说都是很常见的需求,并且这个项目跟 kubeadm 搭配使用还是很方便的。
本次发布的 v0.5.0 目前还是一个 pre-release 的状态。其中带来了非常重要的特性:
- Wireguard 模式,Wireguard 我在这里就不再介绍了,强烈推荐大家去了解下它;
- 路由表模式,这允许进行配置一些额外的路由技术,比如 ECMP 等。这将极大的满足企业的一些具体的网络需求;
- 支持了 Load Balancer Class;
- 新增一种 local 的 External Policy 模式;
整体而言,这个版本还是非常值得期待的。这个项目未来将会增加更多的网络模式以及提供更加丰富的功能。
Cilium v1.12 正式发布
可以说 Cilium v1.12 版本是最近几个版本中影响最大的一个版本,包含了很多新的特性和变更,我们一起来看看:
在之前我曾经介绍过 Cilium 的 Service Mesh,也曾介绍如何使用 Cilium Ingress ,但那时候这些功能尚未完全稳定。
- 现在的 v1.12 中携带了完整的 Ingress controller 实现,以便于提供 L7 的负载均衡能力,并且跟 cilium 的 NetworkPolicy 及可观测性等功能可以完美集成。
- Service Mesh 功能,提供多控制面,Envoy CRD 等实现,并且利用其 eBPF 能力的加持,提供了无 sidecar 模式的 服务网格能力。这也是一个非常显著的特性,并且与现在主流使用的 sidecar 模型的服务网格方案有了极大的不同。
- Cilium 的出口网关 EgressGateway 也正式达到了 stable 级别,并且提供了 CiliumEgressGatewayPolicy 的 CRD 让用户可以更加方便的控制集群出口流量。
- Pod 的 BBR 拥塞控制能力,如果没有记错,Cilium 应该是第一个支持此特性的 CNI,这可以方便实现更大的吞吐和低延迟。
- Cilium 现在可以安装一条路由,在 Pod 删除时会发送 ICMP unreachable host 通知,以避免其他的 Pod 访问到正在删除的 Pod, 这个功能我感觉是非常不错的。目前这是一个可选行为,但后续应该会成为一个默认行为。
更多关于 Cilium v1.12 版本的新特性可参考其 ReleaseNote
Nutanix Objects 违反了 MinIO 的开源协议
MinIO 我之前有稍微介绍过,不过可能有些小伙伴之前未接触过,我这里同样简单的介绍下。MinIO 是一个高性能的云原生对象存储产品,可作为 Kubernetes 中分布式存储的一个技术选型。我个人还是比较喜欢这个项目的,目前尚未遇到什么太大的坑,有兴趣的小伙伴可以去了解下。
MinIO 使用 AGPL v3 进行开源许可,其创始团队坚信最优秀的软件一定是通过社区协作制作的, 因此人们可以随意的进行创新和改进。
这里提到的 Nutanix Objects 则是一款基于 MinIO 构建的商业化产品,但类似于很多商业公司 侵权行为一样,Nutanix Objects 并未披露过其是基于 MinIO 进行构建的,以及也并未将任何对 MinIO 的修改进行公开。
这导致了近期 MinIO 宣布会根据开源许可证的条款,撤销对 Nutanix 的一切许可。
可能有小伙伴会好奇,为什么我会写到这个事情。其实商业公司对开源项目的侵权事件有很多, 这里提到对 MinIO 的侵权事件只是众多事件中的一例。只不过我对 MinIO 这个项目还是比较看好的,所以就多关注了一些。
另一方面,我也挺想看到这类 AGPL 协议侵权的事件会如何解决,毕竟它和我们常用到的 Apache v2 之类的协议 还是有很大不同的。
具体的信息可以从 MinIO 官方博客看到。
最近没有关注到其他特别值得聊的内容了,我们下期再见!
参考资料
[1]k8s生态: https://zhuanlan.zhihu.com/container