kubeadm升级k8s_remote version is much newer v1



可以看到我们的版本可以升级到v1.24.4


### 显示版本差异



kubeadm upgrade diff 1.24.4

[upgrade/diff] Reading configuration from the cluster…
[upgrade/diff] FYI: You can look at this config file with ‘kubectl -n kube-system get cm kubeadm-config -o yaml’
— /etc/kubernetes/manifests/kube-apiserver.yaml
+++ new manifest
@@ -40,7 +40,7 @@
- --service-cluster-ip-range=10.96.0.0/12
- --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
- --tls-private-key-file=/etc/kubernetes/pki/apiserver.key

  • image: registry.aliyuncs.com/google_containers/kube-apiserver:v1.24.1
  • image: registry.aliyuncs.com/google_containers/kube-apiserver:1.24.4
    imagePullPolicy: IfNotPresent
    livenessProbe:
    failureThreshold: 8
    — /etc/kubernetes/manifests/kube-controller-manager.yaml
    +++ new manifest
    @@ -28,7 +28,7 @@
    • –service-account-private-key-file=/etc/kubernetes/pki/sa.key
    • –service-cluster-ip-range=10.96.0.0/12
    • –use-service-account-credentials=true
  • image: registry.aliyuncs.com/google_containers/kube-controller-manager:v1.24.1
  • image: registry.aliyuncs.com/google_containers/kube-controller-manager:1.24.4
    imagePullPolicy: IfNotPresent
    livenessProbe:
    failureThreshold: 8
    — /etc/kubernetes/manifests/kube-scheduler.yaml
    +++ new manifest
    @@ -16,7 +16,7 @@
    • –bind-address=127.0.0.1
    • –kubeconfig=/etc/kubernetes/scheduler.conf
    • –leader-elect=true
  • image: registry.aliyuncs.com/google_containers/kube-scheduler:v1.24.1
  • image: registry.aliyuncs.com/google_containers/kube-scheduler:1.24.4
    imagePullPolicy: IfNotPresent
    livenessProbe:
    failureThreshold: 8

### 查看kubeadm版本



apt-cache madison kubeadm

kubeadm | 1.25.0-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages
kubeadm | 1.24.4-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packages


可以看到我们最新的版本时1.25.0以及1.24.4


### 升级


升级kubeadm



sudo apt-get install kubeadm=1.24.4-00


将 Kubernetes 集群升级到指定版本



sudo kubeadm upgrade apply 1.24.4


### 升级master节点


开启调度保护



kubectl cordon master1

node/master1 cordoned

kubectl get node

NAME STATUS ROLES AGE VERSION
master1 Ready,SchedulingDisabled control-plane 145m v1.24.1
node1 Ready 121m v1.24.1
node2 Ready 108m v1.24.1

排空节点

kubectl drain master1 --ignore-daemonsets

node/master1 already cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-flannel/kube-flannel-ds-8lfc4, kube-system/kube-proxy-km8gx
evicting pod kube-system/coredns-74586cf9b6-fq7gg
evicting pod kube-system/coredns-74586cf9b6-2pk2p
pod/coredns-74586cf9b6-fq7gg evicted
pod/coredns-74586cf9b6-2pk2p evicted
node/master1 drained


更新节点配置



sudo kubeadm upgrade node


升级kublet组件



sudo apt-get install -y kubelet=1.24.4-00 kubectl=1.24.4-00


取消调度保护



kubectl uncordon master1

kubectl get node

NAME STATUS ROLES AGE VERSION
master1 Ready control-plane 149m v1.24.4
node1 Ready 125m v1.24.1
node2 Ready 113m v1.24.1


### 升级node节点


开启调度保护(master节点执行)



kubectl cordon node1

node/node1 cordoned

kubectl get node

NAME STATUS ROLES AGE VERSION
master1 Ready control-plane 151m v1.24.4
node1 Ready,SchedulingDisabled 127m v1.24.1
node2 Ready 115m v1.24.1

排空节点

kubectl drain node1 --ignore-daemonsets

node/node1 already cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-flannel/kube-flannel-ds-q8dpb, kube-system/kube-proxy-g7mbw
evicting pod kube-system/coredns-74586cf9b6-782sb
evicting pod default/myhello-rc-bxlbg
evicting pod default/myhello-rc-792dl
evicting pod default/myhello-rc-vxz47
pod/myhello-rc-vxz47 evicted
pod/myhello-rc-792dl evicted
pod/myhello-rc-bxlbg evicted
pod/coredns-74586cf9b6-782sb evicted
node/node1 drained

可以看到所有容器均运行到node2节点了

kubectl get pod -o wide

NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
myhello-rc-2bmwh 1/1 Running 0 22s 10.244.4.7 node2
myhello-rc-bmln7 1/1 Running 0 22s 10.244.4.9 node2
myhello-rc-kjftb 1/1 Running 0 70m 10.244.4.3 node2
myhello-rc-pk6vc 1/1 Running 0 22s 10.244.4.8 node2
myhello-rc-wdvt6 1/1 Running 0 70m 10.244.4.2 node2


升级kublet组件(node节点执行)



sudo apt-get install -y kubelet=1.24.4-00 kubectl=1.24.4-00


更新节点配置(node节点执行)



sudo kubeadm upgrade node


取消调度保护(master节点执行)



kubectl uncordon node1

kubectl get node

NAME STATUS ROLES AGE VERSION
master1 Ready control-plane 149m v1.24.4
node1 Ready 125m v1.24.1
node2 Ready 113m v1.24.1


### 升级完成
  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误表示应用的"minSdkVersion"(最小支持的Android API级别)高于当前设备的API级别,导致应用无法在该设备上运行。 要解决这个问题,您需要将应用的"minSdkVersion"降低到低于或等于当前设备的API级别。您可以通过编辑应用的build.gradle文件来更改"minSdkVersion"。请注意,这样做可能会影响您的应用在较低版本的Android上的兼容性。 另外,您还可以尝试在应用代码中使用条件语句,根据当前设备的API级别来执行不同的代码路径,以确保应用可以在各种设备上运行。 ### 回答2: 该问题意味着应用程序的"minSdkVersion"最低支持的Android API级别高于设备的Android API级别。这可能会导致应用程序无法在该设备上运行,并显示错误消息。 具体来说,应用程序开发人员必须根据其应用程序的要求选择正确的最低支持级别。如果选择了较高的最低支持级别,则允许应用程序在较新的设备上运行,但会将一些旧设备排除在外。 对于设备API级别较低的设备,应用程序将不能正常运行,因为它需要较高版本的API才能正常工作。这意味着开发人员必须降低其应用程序的最低支持级别,以便在设备上运行。如果应用程序已发布,则必须进行更新,以便与更多的设备兼容。 在编写应用程序时,开发人员应该考虑到这些限制,并使用API检查来确定其代码是否兼容较旧的设备。他们还可以使用功能检查来加载适当的类和方法,并避免在设备上运行时产生错误。 总之,开发人员必须始终保持对应用程序的最低支持级别和设备API级别的清晰了解,以确保其应用程序在适当的设备上能够正常运行。 ### 回答3: 这个问题指的是应用程序的最低SDK版本高于设备的API级别。这通常会导致应用程序无法在该设备上运行,并提示错误消息。 在开发应用程序时,开发人员可以指定需要特定的最低SDK版本才能在手机或平板电脑上运行。这意味着应用程序需要至少具有该最低SDK版本的所有功能才能正常运行。然而,如果用户的设备API级别低于应用程序的最低SDK版本,那么应用程序将无法在该设备上运行。这就是所谓的“最低SDK版本高于设备API级别”的问题。 要解决这个问题,通常有两种方法: 1. 更新设备的API级别 此方法意味着用户需要升级他们的设备,以便它具有满足应用程序最低SDK版本的API级别。用户可以检查他们的设备文档或在互联网上搜索,以了解他们的设备可以升级到哪个更高版本的API级别。 2. 降低应用程序的最低SDK版本 另一种解决方法是使应用程序的最低SDK版本与用户设备的API级别匹配。然而,这可能需要修改应用程序代码以满足较低版本的SDK要求,这可能会限制应用程序的功能。 总的来说,要避免“最低SDK版本高于设备API级别”问题,开发人员应该考虑市场上最广泛使用的API级别,并尽可能支持多个版本。此外,应开发人员应该仔细阅读Android文档,以确保他们的应用程序最低SDK版本与设备上的API级别匹配。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值