「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」。node
Prometheus 是最先由 SoundCloud 开源的监控告警解决方案。并已经成长为继 Kubernetes 以后,第二个从 CNCF 毕业的项目。伴随着云原生理念的普及和 Kubernetes 等技术的发展, Prometheus 在监控领域也有了长足的发展。git
其主要组件包括 Prometheus,Alertmanager,Node Exporter,Blackbox Exporter 和 Pushgateway 等。github
Promethues 采起 Pull 的模式,所采集的 metrics 须要由对应的 Exporter 暴露出来。咱们最经常使用的用于收集系统 metrics 的组件即是 Node Exporter 了。docker
本周,Node Exporter 终于迎来了 v1.0.0 版本,标志着它更加稳定,更加通用。json
我在本周专门写了一篇文章来介绍它这个版本中我最关注的特性: 为 Prometheus Node Exporter 加上认证, 咱们可让监控变得更加安全。安全
固然这个版本中也包含了众多变动和 bugfix, 这里暂且跳过,有兴趣的小伙伴可直接参阅其 ReleaseNote服务器
Docker 在本周发布了 v19.03.10 版本,距离上个版本 v19.03.9 仅过了两周的时间,若是在使用 Docker v19.03.x 版本的小伙伴,我我的仍是建议你更新到此版本。网络
此版本中最主要的一个修复是网络相关的,具体而言是与内置 DNS (embedded DNS) 有关的问题,在特定场景下,若是你建立了自定义网络,当解析外部域名时,可能会出现解析失败的状况。less
这个问题的根因最先是今年 3 月份我在参与 Docker 开发时遇到的,当内置 DNS 服务器域名解析失败时,可能会触发 panic 致使 Docker daemon 异常退出。随后 Sam Whited 在 moby/libnetwork
中快速的对其进行了修正。工具
- if err != nil && !resp.Truncated {
+ if err != nil && (resp != nil && !resp.Truncated) {
复制代码
修改的内容看起来很简单,在异常处理时,增长了 resp != nil
的条件,这确实修正了我当时遇到的状况。
但这个修正却会忽略返回错误但无响应的状况,好比 DNS 服务器异常之类的状况。但因为后续 Docker 中的逻辑处理中,须要依赖于此处的错误处理,因此会错误的认为 DNS 服务器已链接成功,只是没有响应罢了。这也就带来了问题。
因此此次的修正,也仍是在这个位置:
- if err != nil && (resp != nil && !resp.Truncated) {
+ if err != nil && (resp == nil || !resp.Truncated) {
复制代码
处理了两种状况:
通过此次的修正,那就基本覆盖了目前能考虑到的全部状况了。但愿你们能尽早升级版本。
在以前的 「K8S 生态周报」中已经介绍过 trivy 工具了,是一款很方便的镜像安全扫描工具。 本周它发布了 v0.8 的版本,带来了几个值得关注的变动。
trivy image $IMAGE_NAME
,同时废弃了以前的 trivy $IMAGE_NAME
的格式;--format=json
用于以 JSON 形式输出结果,更便于与其余系统进行集成;TRIVY_REGISTRY_TOKEN
环境变量,可设置 registry token 便于直接拉取镜像进行扫描;可直接访问 Release 页面 下载使用新版本。
kubectl create secret docker-registry --from-file
不可用的问题;--seccomp-profile-root
选项移动到了配置文件中;欢迎订阅个人文章公众号【MoeLove】