「K8S 生态周报」内容次要蕴含我所接触到的 K8S 生态相干的每周值得举荐的一些信息。欢送订阅知乎专栏「k8s 生态」。
KIND v0.11.0 正式公布
KIND (Kubernetes In Docker) 关注我的小伙伴想必曾经都很相熟了,这是我始终都在参加也用的十分多的一个我的项目,它能够很不便的应用 Docker 容器作为 Kubernetes 的 Node,疾速的启动一个 / 或多个测试集群。自上个版本公布以来曾经过了 4 个月,咱们一起来看看这个版本中有哪些值得注意的变更吧!
破坏性变更
- 在这个版本中默认的 k8s 版本为 v1.21.1;
- 移除掉了应用
bazel
构建镜像的形式,kind build node-image
的--type
参数已废除; kind build node-image
的--kube-root
参数已废除,将会依照规范模式寻找 k8s 的代码目录的地位;
新个性
kind build node-image
新增了一个--arch
的参数,可反对构建多架构的镜像了;- KIND 以后公布的预构建镜像,曾经都是 multi-arch 的了,可运行在 amd64 和 arm64 架构上;
- 以后 KIND 曾经能够运行在 rootless 模式下的 Docker 和 rootless 模式下的 Podman 中了,具体指南请参考 KIND 运行在 rootless 模式 ;
- KIND 默认的 CNI kindnetd 曾经反对了双栈网络, 并在 v1.21 版本的 k8s 中默认启用 ;
你能够通过以下任意形式装置最新版的 KIND:
GO111MODULE="on" go get sigs.k8s.io/kind@v0.11.0
;wget -O kind https://kind.sigs.k8s.io/dl/v0.11.0/kind-linux-amd64
;- clone KIND 的代码仓库后,执行
make build
;
更多对于 KIND 的应用及阐明请参考官网文档:https://kind.sigs.k8s.io/ 欢送下载应用。
apisix-ingress-controller v0.6.0 公布
Apache APISIX Ingress controller 是 Apache APISIX 的管制面组件,能够将其自定义资源(CR)及 Kubernetes 中原生的 Ingress 资源公布至 APISIX 中,进而利用 APISIX 作为入口网关治理南北向的流量。咱们一起来看看本次公布的 v0.6.0 版本中带来了哪些值得注意的变更吧:
- #115 反对了 TCP 代理;
- #242 为曾经被 ingress controller 推送的资源减少了 label;
- 为
ApisixUpstream
和ApisixTls
减少了 jsonschema 校验; - #394 记录了资源解决时的 Kubernetes events;
- #395 反对上报资源的 status;
- #402 为 cluster 级别的插件减少 global_rules 配置;
Cilium v1.10.0 正式公布
Cilium 我在之前的文章中曾经介绍过很屡次了,它基于 eBPF 技术,能够为 Kubernetes 中应用程序服务间网络和 API 连贯提供通明代理和爱护。想疾速理解 Cilium 能够参考我之前写的《Cilium 疾速上手》想疾速理解 eBPF 也能够看看我在 PyCon China 2020 上做的分享。
Cilium v1.10 版本是一个比拟大的个性版本,在这个版本中带来了泛滥值得关注的个性,咱们一起来看看吧!
Egress IP Gateway
在简直所有网络组件都在做入口网关的时候,Cilium 发现当把云原生利用和传统利用集成时,传统利用大多通过 IP 白名单的形式进行受权, 加上 Pod IP 的动态性,对 IP 地址的治理就成为了一个痛点。
当初 Cilium 新版本中,通过新的 Kubernetes CRD,能够在数据包来到 Kubernetes 集群时将动态 IP 与流量相关联,这使得内部防火墙会应用此统一的动态 IP 去辨认 Pod 流量。
其实就是 Cilium 帮忙做了 NAT,应用起来也很简略:
apiVersion: cilium.io/v2alpha1
kind: CiliumEgressNATPolicy
metadata:
name: egress-sample
spec:
egress:
- podSelector:
matchLabels:
# The following label selects default namespace
io.kubernetes.pod.namespace: default
destinationCIDRs:
- 192.168.33.13/32
egressSourceIP: "192.168.33.100"
上述的配置就是说:应用 egressSourceIP
中配置的 IP 来解决来自于 default 命名空间中 Pod 的进口流量了。
BGP 集成的反对
很多小伙伴放弃 Cilium 的一大起因可能是因为 BGP 的反对,但从这个版本开始就不必放心了!
Cilium 通过集成 MetalLB 来进行的,以此来达到 BGP L3 协定反对,这样 Cilium 能够为 LoadBalancer 类型的服务调配 IP,并通过 BGP 将其通告的路由器,这样内部的流量就能够失常的拜访到服务了。
配置 BGP 反对的形式也很简略:
apiVersion: v1
kind: ConfigMap
metadata:
name: bgp-config
namespace: kube-system
data:
config.yaml: |
peers:
- peer-address: 10.0.0.1
peer-asn: 64512
my-asn: 64512
address-pools:
- name: default
protocol: bgp
addresses:
- 192.0.2.0/24
次要就是 peers
用于和网络中现有的 BGP 路由器互联,address-pools
则是 Cilium 为 LoadBalancer 调配的 IP 池。
基于 XDP 的独立负载平衡
Cilium 基于 eBPF 的负载均衡器最近减少了对 Maglev 一致性哈希的反对,以及 eXpress(XDP) 层上转发立体的减速,这些个性使得它也能够作为独立的 4 层负载平衡存在。
Cilium XDP L4LB 具备残缺的 IPv4/IPv6 双栈反对,能够独立于 Kubernetes 集群独立部署,作为一个可编程的 L4 LB 存在。
其余
另外就是减少了对 Wireguard 的反对,进行 Pod 间流量的加密;减少了一个新的 Cilium CLI,用于治理 Cilium 集群;以及 比以往更加优异的性能!
更多对于 Cilium 我的项目的变更,请参考其 ReleaseNote
上游停顿
- runc 公布了 v1.0-rc95 版本,大略是 v1.0 前的最初一个版本了;
- CNCF 网络小组定义了一套 Service Mesh Performance 的标准,通过此标准来达成一个对立的规范,用来掂量 Service Mesh 的性能状况;
- CNCF 网络小组定义了一套 Service Mesh Performance 的标准,通过此标准来达成一个对立的规范,用来掂量 Service Mesh 的性能状况;
欢送订阅我的文章公众号【MoeLove】