「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」。node
本周 KIND(Kubernetes In Docker) 正式发布了 v0.8 版本,这次最主要的是为你们带来了 持久化集群,当主机或者 dockerd 重启后,集群可自动恢复。nginx
v1.18.2
: kindest/node:v1.18.2@sha256:7b27a6d0f2517ff88ba444025beae41491b016bc6af573ba467b70c5e8e0d85f
;kind
,可经过环境变量 KIND_EXPERIMENTAL_DOCKER_NETWORK
修改);--network=kind
,以便让它和 KIND 建立的集群网络互通;这里须要特别说一下关于持久化集群的特性。在以前版本中,若是你的 dockerd 进行了重启操做,或者是重启了系统,那可能会致使集群 IP 从新分配,进而致使集群状态异常。git
在以前版本中,咱们建议全部的用户,不要依赖集群持久化。但鉴于有很多用户的反馈,因此我先实现了初版。github
具体作法其实也简单,原先的痛点在于重启后,容器 IP 的从新分配,因此所有以域名的方式进行替代,另外就是借助于 Docker 的 embedded DNS 来完成 LB 层对 master 的代理。docker
但这个实现,会产生一个 DNS 查询异常的问题,我在专栏 《Docker 核心知识必知必会》 网络篇中深刻介绍过其原理。以前我考虑过经过 --resolv-conf
参数,将主机的 resolver 提供给 kubelet 使用,但这种方式并不够优雅,并且排查问题的话,因为不与 kubelet 使用相同 resolv.conf
,也会带来一些麻烦;以后考虑将主机和 Node 中的 resolver 进行合并,但合并的话,也会带来一些隐患。安全
本次版本中的实现,实际上是对 Docker embedded DNS 作了不少 hack,主动对网络作了管理,以此来完成此需求。网络
kind delete clusters --all
可用于删除全部集群;featureGates
字段,来开启相关特性;NO_COLOR
的支持;podman
提供了支持;KIND_CLUSTER_NAME
环境变量来指定集群名称;以上就是这次 KIND v0.8 中值得注意的内容,欢迎你们下载使用!使用方式可参考《使用 Kind 在离线环境建立 K8S 集群》负载均衡
本周 NGINX Ingress Controller 1.7.0 发布了,包含了众多更新:框架
TransportServer
和 GlobalConfiguration
配置 TCP/UDP/TLS 的负载均衡,这样即可经过 NGINX Ingress Controller 在 Kubernetes 上交付非基于 HTTP 的应用程序;VirtualServer
和 VirtualServerRoute
资源中配置错误页;关于此版本的更详细内容,请参考其 ReleaseNoteui
resolvConf
的行为。kubeadm 将不会在 /var/lib/kubelet/kubeadm-flags.env
中设置 --resolv-conf
的值,而是使用 KubeletConfiguration
对其进行配置;autoscaling/v2beta1
已废弃,推荐使用 autoscaling/v2beta2
;Immutable
字段来标记其内容为不可变;series.state
字段;kured 是一个用于节点安全重启的 Daemonset 。它包含如下特性:
/var/run/reboot-required
;cordon
和 drain
,在节点重启完成后执行 uncordon
;这在系统须要按期维护时候,是很是有用的。同时也可本身手动进行触发,而不需每次重复操做。
欢迎订阅个人文章公众号【MoeLove】