K8S 生态周报| Docker v20.10.5 发布,修复 Bug 及提升稳定性

本文主要是介绍K8S 生态周报| Docker v20.10.5 发布,修复 Bug 及提升稳定性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

「K8S 生态周报」内容主要包含我所接触到的 K8S 生态相关的每周值得推荐的一些信息。欢迎订阅知乎专栏「k8s生态」[1]

Docker v20.10.5 发布

这里我同时介绍下 Docker v20.10.4 和 v20.10.5 中值得注意的变更:

  • cli#2959 修复了一个在 docker login 时,可能触发的 panic 。这个问题可能会发生在使用 Debian 系统全新安装 Docker v20.10.[0~3] 版本,并且通过 apt 安装了 docker-compose 的场景下。解决办法,要么升级到最新版本,要么就需要手动创建 ~/.docker/config.json 文件。对于绝大多数的用户应该都不会受到此问题影响;

  • #42049 修复了一个仅在 v20.10 版本下,同步 pull 失败的情况。这个问题只有在 v20.10 版本,且启用了 BuildKit ,并且在构建镜像时候存在并发 pull 的情况下才会触发,算是触发概率极低的情况了;

  • cli#2987 修复了 docker start -a 可能 hang 住的问题。说实话,要不是查这个问题,我已经基本忘记了 docker start 有个 -a 的选项了。我通常会直接用 docker run 启动当前要用的容器,或者 docker start 后,再 docker exec , attach 相关的命令和参数基本都没有再用了。

更多关于 Docker v20.10 的相关内容,请查看其 ReleaseNote[2]

CoreDNS v1.8.3 发布

在之前的文章 K8S 生态周报| Helm v3.4 发布 中我介绍了 CoreDNS v1.8.0 版本相关的特性及变更,感兴趣的小伙伴可以复习一下。本次我来介绍下自 CoreDNS v1.8.1 到 v1.8.3 之间有哪些值得关注的变更。

  • 新增了一个名为 local 的 plugin,用于响应 local 的请求。即:所有 localhost.<domain> 的请求都会解析为 127.0.0.1 例如:

➜  ~ dig +short @127.0.0.1 -p 9987 localhost.moelove.info 
127.0.0.1

如果 Corefile 中启用了 debuglog plugin 的话,会看到类似的输出:

[DEBUG] plugin/local: Intercepting localhost query for "localhost.moelove.info." A, from 127.0.0.1
[INFO] 127.0.0.1:37324 - 17796 "A IN localhost.moelove.info. udp 63 false 4096" NOERROR qr,rd 78 0.000327638s

主要是为了解析 localhost 后跟任意的 domain name 的请求。更具体的背景请参考 issue #4260。

  • 修正了 file plugin 中对于链式 CNAME 查询时的返回值。根据 RFC 6604[3] 中的说明,当遵循链式查询时,返回值应该与最后一次的查询结果相同。也就是说,当出现 "A CNAME B" 但是 B 不存在的情况时,应当返回 NXDOMAIN 而不是 NOERROR

我用下面的配置进行说明,首先写一个 zone 文件,并命名为 test.moelove.info.txt :

$ORIGIN moelove.info.
@                      3600 SOA   ns1.foo.com. (zone-admin.foo.com.        ; address of responsible party2016072701                 ; serial number3600                       ; refresh period600                        ; retry period604800                     ; expire time1800                     ) ; minimum ttl86400 NS    ns1.foo.com.86400 NS    ns2.foo.com.3600 MX    10 mail.moelove.info.60 A     10.10.10.103600 TXT   "v=moe includemoelove.info ~all"
mail                  14400 A     11.11.11.11
www                   43200 CNAME moelove.info.
b.c                   43200 CNAME c.c.moelove.info.
c.c                   43200 CNAME d.c.moelove.info.

可以看到,这里将 b.c CNAME 到 c.cc.c CNAME 到 d.c ,但是 d.c 并不存在。

CoreDNS 用下面的内容作为配置:

moelove.info {file test.moelove.info.txtlogdebug
}

分别使用 CoreDNS v1.7.1 和 v1.8.3 进行测试:

v1.7.1

➜  ~ ./coredns-v1.7 -conf Corefile -dns.port 9987

使用 dig 进行测试:

➜  ~ dig  @127.0.0.1 -p 9987  b.c.moelove.info; <<>> DiG 9.11.27-RedHat-9.11.27-1.fc32 <<>> @127.0.0.1 -p 9987 b.c.moelove.info
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14077
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available

可以看到返回中 status: NOERROR

v1.8.3

➜  ~ ./coredns-v1.8 -conf Corefile -dns.port 9988

使用 dig 进行测试:

➜  ~ dig  @127.0.0.1 -p 9988  b.c.moelove.info                      ; <<>> DiG 9.11.27-RedHat-9.11.27-1.fc32 <<>> @127.0.0.1 -p 9988 b.c.moelove.info
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 832
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 1
;; WARNING: recursion requested but not available

可以看到返回中是 status: NXDOMAIN

这个修正对于我们判断 DNS 记录是否正确/工作是否正常,有很大的帮助。

更多关于 CoreDNS v1.8+ 版本的特性变更,请参考其 ReleaseNote[4]

上游进展

  • #99561 正式移除了 Bazel 构建系统!这是一个非常大的变更,涉及到的内容很广,但没什么太需要介绍的,这一天终于来啦,轻松了很多!

  • #99158 支持为 Pod 设置 Sysctls 的特性现在已经 GA, 这是一个从 K8S v1.4 版本开始的功能,到 v1.11 的时候进入 Beta,如今正式 GA,并将在 v1.21 中公布,且会默认启用此特性;

  • #97099 用户可以通过 kubectl.kubernetes.io/default-container 声明 kubectl exec 时的默认容器了,这个功能类似于 kubectl.kubernetes.io/default-logs-container 的声明,我们可以将主体容器作为默认容器,这样 exec 或者 logs 的时候,就不需要再去指定容器名称了,非常实用!当然,kubectl cp 也会遵循此行为。


欢迎订阅我的文章公众号【MoeLove】

TheMoeLove

参考资料

[1]

k8s生态: https://zhuanlan.zhihu.com/container

[2]

Docker ReleaseNote: https://github.com/moby/moby/releases

[3]

RFC 6604: https://tools.ietf.org/html/rfc6604#p-3

[4]

CoreDNS ReleaseNote: https://coredns.io/2021/02/24/coredns-1.8.3-release/

这篇关于K8S 生态周报| Docker v20.10.5 发布,修复 Bug 及提升稳定性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817250

相关文章

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

java学习,进阶,提升

http://how2j.cn/k/hutool/hutool-brief/1930.html?p=73689

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们