自Kubernetes(k8s)v1.22.0-alpha.3
以来的变更日志
功能
紧急升级注意事项
(真的,你必须在升级之前阅读此内容)
- Kubeadm:标志
--cri-socket
不再允许与标志--config
混合使用。请使用kubeadm配置,使用{Init|Join}Configuration.nodeRegistration.criSocket
为节点设置CRI socket。
种类变更
弃用
弃用kubectl中的
--record
标志。--record
标志将被 https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers 中的机制所取代,该机制用kubectl命令的细节来注释HTTP请求。E2e.test:删除了
--viper-config
标志。如果你以前用它通过文件向 e2e.test 传递标志,你将需要在命令行上直接传递它们,如e2e.test --e2e-output-dir
。通过vSphere树内插件新配置的PV将不再具有beta FailureDomain标签。vSphere volume插件将开始具有GA拓扑标签。
已经从kube-scheduler中删除了废弃的标志
--hard-pod-affinity-symmetric-weight
和--scheduler-name
。请使用ComponentConfig来配置这些参数。
API Change
由于golang中time.Format的实现逻辑,显示的时区是不一致的
Endpoint镜像控制器不再将kubectl创建的最后应用配置注释镜像到更新的Endpoint片上。
执行插件的作者可以通过新的interactiveMode kubeconfig字段覆盖标准输入的默认处理。
Kube-scheduler组件配置 v1beta2 API可用 三个调度器插件已废弃(NodeLabel、ServiceAffinity、NodePreferAvoidPods)。
网络策略终端端口已升级为测试版,并默认为启用。
功能
一个新的指标apiserver_flowcontrol_request_concurrency_in_use,显示API优先级和公平系统中当前执行的请求所占据的席位(并发量)。
为所有apiserveradmission*指标添加一个命名空间标签。
- 将所有
apiserver_admission_*_duration_seconds
指标的柱状图范围扩大到0-10s
。
- 将所有
在CRI上添加统一的map,以支持cgroup v2。请参考 https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified 。
基础镜像:更新至debian-base:buster-v1.7.1
为StatefulSets实现minReadySeconds。
Kubeadm:在 "kubeadm init" 的 "control-plane"阶段添加"-dry-run"标志。
Kubeadm:在v1beta3版本的InitConfiguration和JoinConfiguration的 "nodeRegistration"部分增加了"imagePullPolicy"字段。这允许用户在 "kubeadm init"和 "kubeadm join"中指定镜像拉取策略。这个字段的值必须是 "Always"、"IfNotPresent" 或 "Never"中的一个。默认行为仍然是"IfNotPresent"。
Kubeadm:更新CoreDNS至1.8.4。授予CoreDNS "list" 和 "watch" EndpointSlice对象的权限,以适应双堆栈支持。
Kubernetes现在是用Golang 1.16.5构建的。
Leader Migration现在支持通配符组件名称和默认值。
SetHostnameAsFQDN已经升级为GA,这意味着不能使用功能网关来禁用该功能。
在内存管理器功能网关启用且内存管理器策略是静态的情况下,pod资源API将提供内存管理器指标。
更新etcd版本至
3.5.0-beta.3
Bug和回退
- 在DBus重启后,让GracefulNodeShutdown再次发挥作用
- 将事件的写入权限汇总到编辑和管理员角色上
- 更改了Graceful Node Shutdown Pod的终止原因和信息。更改了Graceful Node Shutdown Pod的拒绝原因和信息。
- 修复endpoint片状镜像控制器上的一个错误,即端点NotReadyAddresses被镜像为准备好的地址到相应的EndpointSlice。
- 修复了当节点拥有没有请求的容器时,NodeResourcesMostAllocated和NodeResourcesBalancedAllocation插件的计分。这使得小型节点的利用率不足。
- 修复:清理过时的路由
- 修正了一个bug,即调度器扩展器在抢占时不被调用
- 修正了kubectl在某些旧版Windows上或在Windows 8上启用传统控制台模式时的问题,该问题导致kubectl exec崩溃
- 修正了在前一个pod超时卸载其卷后启动新pod的问题。
- 修复了一个bug,由于该错误,控制器没有填充添加到batch/v1 cronjob.status的lastSuccessfulTime字段。
- Kube-apiserver现在在记录请求时报告合成动词,更好地解释了用户的意图,并与指标中报告的内容相匹配。
- Kubeadm:从kubeadm在堆叠的etcd控制平面节点上部署的etcd静态pod中删除 "ephemeral_storage"请求。由于kubelet与cadvisor和LocalStorageCapacityIsolation功能门的问题,这个请求在一些设置上造成了零星的失败。更多细节请参见此问题:https://github.com/kubernetes/kubernetes/issues/99305
- 更新hostprocess测试以指定用户
- VSphere:如果数据存储在一个存储文件夹或数据存储集群内,修复附加磁盘过程中的回归。
其他(Cleanup 或 Flake)
- 允许CSI驱动程序只运行离线扩展测试
- Client-go: 将 "启动/停止反射器"信息的冗长程度再次降低到3。
- JSON日志现在支持在日志格式中拥有关于源代码位置的信息,源代码信息可在"caller"键下获得。
- 将staging/src/k8s.io/apiserver/pkg/registry logs迁移到结构化日志。
- 移除平衡连接的节点 volumes功能
- etcd客户端已更新至3.5.0;github.com/golang/protobuf、google.golang.org/protobuf和google.golang.org/grpc均已更新至当前版本。
- 更新Azure Go SDK至v55.0.0
- 更新Calico到v3.19.1
- 将google/gnostic和google/go-cmp的版本更新为0.5.5,并更新过渡性依赖的protobuf。
依赖关系
已经添加的
- github.com/antihax/optional: v1.0.0
- github.com/benbjohnson/clock: v1.0.3
- github.com/certifi/gocertifi: 2c3bb06
- github.com/cncf/udpa/go: 5459f2c
- github.com/cockroachdb/errors: v1.2.4
- github.com/cockroachdb/logtags: eb05cc2
- github.com/coredns/caddy: v1.1.0
- github.com/etcd-io/gofail: ad7f989
- github.com/getsentry/raven-go: v0.2.0
- github.com/go-kit/kit: v0.9.0
- github.com/josharian/intern: v1.0.0
- github.com/opentracing/opentracing-go: v1.1.0
- github.com/robfig/cron/v3: v3.0.1
- go.etcd.io/etcd/api/v3: v3.5.0
- go.etcd.io/etcd/client/pkg/v3: v3.5.0
- go.etcd.io/etcd/client/v2: v2.305.0
- go.etcd.io/etcd/client/v3: v3.5.0
- go.etcd.io/etcd/etcdutl/v3: v3.5.0
- go.etcd.io/etcd/pkg/v3: v3.5.0
- go.etcd.io/etcd/raft/v3: v3.5.0
- go.etcd.io/etcd/server/v3: v3.5.0
- go.etcd.io/etcd/tests/v3: v3.5.0
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.20.0
- go.opentelemetry.io/contrib: v0.20.0
- go.opentelemetry.io/otel/exporters/otlp: v0.20.0
- go.opentelemetry.io/otel/metric: v0.20.0
- go.opentelemetry.io/otel/oteltest: v0.20.0
- go.opentelemetry.io/otel/sdk/export/metric: v0.20.0
- go.opentelemetry.io/otel/sdk/metric: v0.20.0
- go.opentelemetry.io/otel/sdk: v0.20.0
- go.opentelemetry.io/otel/trace: v0.20.0
- go.opentelemetry.io/otel: v0.20.0
- go.opentelemetry.io/proto/otlp: v0.7.0
- go.uber.org/goleak: v1.1.10
已变更的
- github.com/Azure/azure-sdk-for-go: v53.1.0+incompatible → v55.0.0+incompatible
- github.com/Azure/go-ansiterm: d6e3b33 → d185dfc
- github.com/Azure/go-autorest/autorest/adal: v0.9.10 → v0.9.13
- github.com/Azure/go-autorest/autorest/to: v0.2.0 → v0.4.0
- github.com/Azure/go-autorest/autorest: v0.11.17 → v0.11.18
- github.com/Azure/go-autorest/logger: v0.2.0 → v0.2.1
- github.com/aws/aws-sdk-go: v1.35.24 → v1.38.49
- github.com/cockroachdb/datadriven: 80d97fb → bf6692d
- github.com/container-storage-interface/spec: v1.3.0 → v1.5.0
- github.com/coredns/corefile-migration: v1.0.11 → v1.0.12
- github.com/coreos/go-systemd/v22: v22.3.1 → v22.3.2
- github.com/envoyproxy/go-control-plane: 5f8ba28 → 668b12f
- github.com/form3tech-oss/jwt-go: v3.2.2+incompatible → v3.2.3+incompatible
- github.com/go-openapi/jsonpointer: v0.19.3 → v0.19.5
- github.com/go-openapi/jsonreference: v0.19.3 → v0.19.5
- github.com/go-openapi/swag: v0.19.5 → v0.19.14
- github.com/golang/groupcache: 8c9f03a → 41bb18b
- github.com/golang/mock: v1.4.3 → v1.4.4
- github.com/golang/protobuf: v1.4.3 → v1.5.2
- github.com/google/btree: v1.0.0 → v1.0.1
- github.com/google/go-cmp: v0.5.4 → v0.5.5
- github.com/googleapis/gnostic: v0.5.1 → v0.5.5
- github.com/grpc-ecosystem/go-grpc-middleware: f849b54 → v1.3.0
- github.com/grpc-ecosystem/grpc-gateway: v1.9.5 → v1.16.0
- github.com/jonboulle/clockwork: v0.1.0 → v0.2.2
- github.com/json-iterator/go: v1.1.10 → v1.1.11
- github.com/mailru/easyjson: v0.7.0 → v0.7.6
- github.com/mattn/go-isatty: v0.0.4 → v0.0.3
- github.com/mattn/go-runewidth: v0.0.7 → v0.0.9
- github.com/miekg/dns: v1.1.35 → v1.0.14
- github.com/moby/term: df9cb8a → 9d4ed18
- github.com/olekukonko/tablewriter: v0.0.4 → v0.0.5
- github.com/prometheus/client_golang: v1.7.1 → v1.11.0
- github.com/prometheus/procfs: v0.2.0 → v0.6.0
- github.com/rogpeppe/fastuuid: 6724a57 → v1.2.0
- github.com/soheilhy/cmux: v0.1.4 → v0.1.5
- github.com/spf13/cobra: v1.1.1 → v1.1.3
- github.com/spf13/jwalterweatherman: v1.1.0 → v1.0.0
- github.com/tmc/grpc-websocket-proxy: 0ad062e → e5319fd
- github.com/yuin/goldmark: v1.2.1 → v1.3.5
- go.etcd.io/bbolt: v1.3.5 → v1.3.6
- go.uber.org/atomic: v1.6.0 → v1.7.0
- go.uber.org/multierr: v1.5.0 → v1.6.0
- go.uber.org/zap: v1.16.0 → v1.17.0
- golang.org/x/lint: 738671d → 6edffad
- golang.org/x/mod: ce943fd → v0.4.2
- golang.org/x/net: 3d97a24 → a5a99cb
- golang.org/x/sync: 67f06af → 036812b
- golang.org/x/sys: d19ff85 → 59db8d7
- golang.org/x/tools: v0.1.0 → v0.1.2
- google.golang.org/genproto: 8816d57 → f16073e
- google.golang.org/grpc: v1.27.1 → v1.38.0
- google.golang.org/protobuf: v1.25.0 → v1.26.0
- gopkg.in/yaml.v3: eeeca48 → 496545a
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.19 → v0.0.20
已移除的
- github.com/bifurcation/mint: 93c51c6
- github.com/caddyserver/caddy: v1.0.3
- github.com/cenkalti/backoff: v2.1.1+incompatible
- github.com/cheekybits/genny: 9127e81
- github.com/go-acme/lego: v2.5.0+incompatible
- github.com/jimstudt/http-authentication: 3eca13d
- github.com/klauspost/cpuid: v1.2.0
- github.com/kylelemons/godebug: d65d576
- github.com/lucas-clemente/aes12: cd47fb3
- github.com/lucas-clemente/quic-clients: v0.1.0
- github.com/lucas-clemente/quic-go-certificates: d2f8652
- github.com/lucas-clemente/quic-go: v0.10.2
- github.com/marten-seemann/qtls: v0.2.3
- github.com/mholt/certmagic: 6a42ef9
- github.com/naoina/go-stringutil: v0.1.0
- github.com/naoina/toml: v0.1.1
- github.com/robfig/cron: v1.1.0
- go.etcd.io/etcd: dd1b699
- go.uber.org/tools: 2cfd321
- gopkg.in/cheggaaa/pb.v1: v1.0.25
- gopkg.in/mcuadros/go-syslog.v2: v2.2.1
- gopkg.in/resty.v1: v1.12.0
- rsc.io/quote/v3: v3.1.0
- rsc.io/sampler: v1.3.0-
英文原文来自:https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.22.md