Kubernetes 1.25 中的变更日志我从中了解了 SIG 集群生命周期计划。
变化比平时少,心情也平静了一些。
主要主题
- 无。
紧急升级说明
- 无。
按种类更改
弃用
-
kubeadm:
ConfigMap如果“kubeadm-config”中的ClusterConfiguration.imageRepository包含旧的“k8s.gcr.io”,则在“升级应用/差异/节点”期间将其替换为新的默认“registry.k8s io”。但是,更新仅在“升级适用”的情况下反映。(#110343,@neolit123) -
kubeadm:特定于 kubeadm 的功能门
UnversionedKubeletConfigMap现在是 GA 并且默认启用。与 kubelet 相关的ConfigMap和RBAC规则已从旧的*kubelet-config-x.yy(其中x.yy是控制平面版本)命名约定重命名为更简单的*kubelet-config。如果您之前将UnversionedKubeletConfigMap设置为false并使用旧的命名格式,则必须在升级到v1.25之前手动将kube-system/kubelet-config-x.yy复制为kube-system/kubelet-config。不是。(#110327,@neolit123) -
kubeadm:
node-role.kubernetes.io/master:NoSchedule不再将污点应用于新集群的控制平面。它还在“kubeadm upgrade apply”期间从控制平面中删除现有的污点。(#110095,@neolit123)
API 变更
- 无。
特征
-
kubeadm:添加了对其他身份验证策略“client-go authentication plugin
exec,tokenFile,authProvider”的支持,当kubeadm join时使用discovery/kubeconfig。(#110553,@tallaxes)-
在
kubeadm join,我觉得kubeadm init提供的token是经常使用的,看来可以代替之前使用的token。
当然,如果您创建一个帐户,并预先将必要的权限传递给join,而无需每次都支付令牌,那么操作会更容易。
-
在
-
kubeadm:
kube-proxy,coredns插件阶段在kubeadm init phase addon--print-manifest支持标志。使用此标志,kubeadm将不会应用指定的插件,而是将应用的 API 对象打印到终端。(#109995,@wangyysde) -
kubeadm:您现在可以修补
v1beta1.KubeletConfiguration中包含的 kubelet 配置文件。这个新的补丁目标被称为kubeletconfiguration(例如补丁文件是kubeletconfiguration+json.json)。KubeletConfiguration作为主--config的一部分传递给init,作为集群的KubeletConfiguration全局持久化,但是这个补丁导致特定节点可以应用KubeletConfiguration。(#110405,@neolit123) -
kubeadm:启动探针现在使用
/health?serializable=false而在 etcd 静态 pod 中的liveness probe使用/health?serializable=true&exclude=NOSPACENOSPACE 排除允许管理员在 etcd 中一次解决一个成员的空间问题。(#110744,@neolit123) -
kubeadm:将 etcd 静态 Pod 中的
liveness和readinessprobe 更改为使用/health?serializable=true,这是新的 etcd v3.5.3++ 健康检查端点。这允许您跟踪单个 etcd 成员的状态,以便在 etcd 集群的某些成员不健康时所有 etcd 成员都不会失败。(#110072,@neolit123) -
kubeadm:
kubeadm upgrade plan现在可以使用--output标志实验性地输出JSON/YAML。(#108447,@pacoxu)
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: k8s-app
operator: In
values:
- kube-dns
topologyKey: kubernetes.io/hostname
weight: 100
错误或回归
-
kubeadm:修复了在
kubeadm join时未应用可配置的KubernetesVersion。(#110791,@SataQiu) -
kubeadm:etcd 中的
--experimental-watch-progress-notify-interval标志已启用并设置为 5 秒。此标志指定 etcd 将 watch 数据发送到 kube=apiserver 的时间间隔。(#111383,@p0lyn0mial) -
kubeadm:在镜像拉取期间运行
crictl时设置操作系统环境变量。这修复了*PROXY环境变量无法影响crictl的互联网连接的问题。(#110134,@mk46) -
kubeadm:如果遗留“主”污点存在,则仅污点控制平面节点。这避免了执行
kubeadm upgrade将保留具有新“控制平面”污点的控制平面节点的问题,即使用户明确地清除了节点。(#109840,@neolit123)-
在资源较少的家庭集群中,去除污点以有效利用控制平面节点是很常见的。
-
-
kubeadm:现在在使用 Kubernetes 的 CI 版本时尊重用户指定的图像存储库。(#111017,@SataQiu)
-
kubeadm:在重置阶段移除容器时重试。(#110837,@SataQiu)
-
有时候reset没有删除容器,如果碰巧是使用了kubernetes所需端口的容器,比如apiserver,看来kubeadm又失败了
kubeadm init。。
-
其他(清理或薄片)
-
kubeadm:执行额外的 dockershim 清理。考虑到 dockershim 在 1.24 中被移除并且 kubeadm 1.25 支持 kubelet 1.24 和 1.25 版本,所有容器运行时都被视为远程通过指定
--container-runtime=remote。--network-plugin标志在新集群中不再可用。kubeadm reset/var/lib/dockershim,/var/run/kubernetes,/var/lib/cnidockershim相关目录将不再清理。(#110022,@neolit123)-
绝对没有清理干净。
-
root@node-cp01:/etc/kubernetes/manifests# kubeadm reset
[reset] Reading configuration from the cluster...
[reset] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
W0921 04:21:43.809172 21624 reset.go:103] [reset] Unable to fetch the kubeadm-config ConfigMap from cluster: failed to get config map: Get "https://10.244.5.135:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config?timeout=10s": dial tcp 10.244.5.135:6443: connect: connection refuse
d
W0921 04:21:43.810777 21624 preflight.go:55] [reset] WARNING: Changes made to this host by 'kubeadm init' or 'kubeadm join' will be reverted.
[reset] Are you sure you want to proceed? [y/N]: y
W0921 04:21:46.176911 21624 removeetcdmember.go:85] [reset] No kubeadm config, using etcd pod spec to get data directory
[reset] Stopping the kubelet service
[reset] Unmounting mounted directories in "/var/lib/kubelet"
[reset] Deleting contents of directories: [/etc/kubernetes/manifests /etc/kubernetes/pki]
[reset] Deleting files: [/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf]
[reset] Deleting contents of stateful directories: [/var/lib/etcd /var/lib/kubelet]
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308626756.html