在非容器环境上实现散装的 IPVS SVC
前言 内部有非 K8S 环境上需要类似 SVC 的负载实现,一开始是用 NGINX 做的,所有 SVC 域名都解析成一个 dummy IP ,然后 NGINX 根据 server_name 去 proxy 不同的 upstream 。 开始还是能用的,但是后面结果后面很多服务依赖 host 这个 header ,报错签名错误,而且毕竟这样是在用户态,效率不如内核态高。于是打算搞下之前的打算:把 I
K8S 中的 CRI、OCI、CRI shim、containerd
哈喽大家好,我是咸鱼。 好久没发文了,最近这段时间都在学 K8S。不知道大家是不是和咸鱼一样,刚开始学 K8S、Docker 的时候,往往被 CRI、OCI、CRI shim、containerd 这些名词搞得晕乎乎的,不清楚它们到底是干什么用的。所以今天,咸鱼打算借这篇文章来解释一下这些名词,帮助大家理清它们的关系。 我们以 K8S 创建容器的过程为例,来引申出各个概念。 K8S 如何创建容器?
kubernetes1.4新特性:支持两种新的卷插件Quobyte和AzureDisk
背景介绍 在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储。 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个Volumes属性可以关联到结构体Volume和结构体VolumeSource,而且这个Volumes属性是一个数组类型,就是说POD可以关联到多个不同类型的卷上面。 结构体Container
掌握Go语言:深入理解Go语言中的数组和切片,灵活处理数据的利器(16)
Go语言中的数组和切片是常用的集合类型,它们在处理数据时提供了不同的特性和灵活性。本文将深入探讨数组和切片的使用方法、特性、实例以及应用场景。 1. 数组和切片简介 在Go语言中,数组和切片都是集合类的类型,用于存储相同类型的元素。它们的主要区别在于数组的长度是固定的,而切片的长度是可变的。 1.1 数组 数组的长度在声明时就必须给定,并且在之后不会再改变。数组的长度是其类型的一部分,例如 [1]
是时候思考 Kubernetes 出向流量安全了
为何要进行 Egress 流量策略管控 2021 年 CNCF 调查显示,全球将 kubernetes 用在生产环境的用户占比已达 59.77%,欧洲用户更是达到了 68.98%。用户正越来越多的将生产业务迁移到 kubernetes 环境下。Gartner 2021 Hype Cycle for Cloud Security 也显示了容器与 Kubernetes 安全已处在”slope of E