kubeadm升级

验证是否可以升级

# kubeadm upgrade plan
[upgrade/config] Making sure the configuration is correct:
[upgrade/config] Reading configuration from the cluster...
[upgrade/config] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[preflight] Running pre-flight checks.
[upgrade] Running cluster health checks
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: v1.24.1
[upgrade/versions] kubeadm version: v1.24.1
I0904 22:38:57.778942   76888 version.go:255] remote version is much newer: v1.25.0; falling back to: stable-1.24
[upgrade/versions] Target version: v1.24.4
[upgrade/versions] Latest version in the v1.24 series: v1.24.4Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT   CURRENT       TARGET
kubelet     3 x v1.24.1   v1.24.4Upgrade to the latest version in the v1.24 series:COMPONENT                 CURRENT   TARGET
kube-apiserver            v1.24.1   v1.24.4
kube-controller-manager   v1.24.1   v1.24.4
kube-scheduler            v1.24.1   v1.24.4
kube-proxy                v1.24.1   v1.24.4
CoreDNS                   v1.8.6    v1.8.6
etcd                      3.5.3-0   3.5.3-0You can now apply the upgrade by executing the following command:kubeadm upgrade apply v1.24.4Note: Before you can perform this upgrade, you have to update kubeadm to v1.24.4._____________________________________________________________________The table below shows the current state of component configs as understood by this version of kubeadm.
Configs that have a "yes" mark in the "MANUAL UPGRADE REQUIRED" column require manual config upgrade or
resetting to kubeadm defaults before a successful upgrade can be performed. The version to manually
upgrade to is denoted in the "PREFERRED VERSION" column.API GROUP                 CURRENT VERSION   PREFERRED VERSION   MANUAL UPGRADE REQUIRED
kubeproxy.config.k8s.io   v1alpha1          v1alpha1            no
kubelet.config.k8s.io     v1beta1           v1beta1             no
_____________________________________________________________________

可以看到我们的版本可以升级到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.4imagePullPolicy: IfNotPresentlivenessProbe: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.4imagePullPolicy: IfNotPresentlivenessProbe: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.4imagePullPolicy: IfNotPresentlivenessProbe:failureThreshold: 8

查看kubeadm版本

# apt-cache madison kubeadmkubeadm |  1.25.0-00 | https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial/main amd64 Packageskubeadm |  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                      <none>          121m   v1.24.1
node2     Ready                      <none>          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    <none>          125m   v1.24.1
node2     Ready    <none>          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   <none>          127m   v1.24.1
node2     Ready                      <none>          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   <none>           <none>
myhello-rc-bmln7   1/1     Running   0          22s   10.244.4.9   node2   <none>           <none>
myhello-rc-kjftb   1/1     Running   0          70m   10.244.4.3   node2   <none>           <none>
myhello-rc-pk6vc   1/1     Running   0          22s   10.244.4.8   node2   <none>           <none>
myhello-rc-wdvt6   1/1     Running   0          70m   10.244.4.2   node2   <none>           <none>

升级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    <none>          125m   v1.24.1
node2     Ready    <none>          113m   v1.24.1

升级完成

# kubectl get node
NAME      STATUS   ROLES           AGE    VERSION
master1   Ready    control-plane   157m   v1.24.4
node1     Ready    <none>          133m   v1.24.4
node2     Ready    <none>          121m   v1.24.4
# kubectl get pod -o wide
NAME               READY   STATUS    RESTARTS   AGE    IP            NODE    NOMINATED NODE   READINESS GATES
myhello-rc-4thbx   1/1     Running   0          100s   10.244.3.9    node1   <none>           <none>
myhello-rc-b4f49   1/1     Running   0          100s   10.244.3.11   node1   <none>           <none>
myhello-rc-frws4   1/1     Running   0          100s   10.244.3.8    node1   <none>           <none>
myhello-rc-wgddb   1/1     Running   0          100s   10.244.3.7    node1   <none>           <none>
myhello-rc-xtpbr   1/1     Running   0          100s   10.244.3.10   node1   <none>           <none>

推荐一个零声学院免费教程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习

kubeadm升级k8s相关推荐

  1. 使用kubeadm升级K8S

    使用kubeadm升级K8S 时间:2019年3月6日16:50:10 注意: 如下示例为1.11.2升级到1.11.7 同样适用于1.11.x升级到1.12.x这种次级版本升级 不支持1.11到1. ...

  2. kubeadm部署k8s集群最全最详细

    一.安装要求 kubeadm安装kubernetes1.15 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 1.一台或多台机器(≥3奇数个),操作系统 CentOS7.x(最好是 ...

  3. kubeadm创建k8s集群(1.14.2版本)

    kubeadm创建k8s集群 1,环境准备 1.1,网络规划 节点名称 IP地址 角色 安装工具 k8s-master-01 172.16.2.101 master kubeadm.kubelet.k ...

  4. 升级K8S证书有效期为100年操作说明

    K8S集群有证书的概念,之前一直是使用默认的,默认都是1年和10年的,1年有效期这显然对于生产环境是不合适的,于是调整K8S证书,升级K8S证书有效期为100年. kubernetes提供了多种安全认 ...

  5. 【CKA考试笔记】二十、升级k8s

    文章目录 实验环境 一.概述 二.实验 一:更新master (1)更新kubeadm工具 (2)更新kubelet.kubectl (3)重启kubelet (4)恢复此节点 (5)若有多个mast ...

  6. 使用Kubeadm创建k8s集群之节点部署(三十二)

    前言 由于上次忘开申明原创,特再发一次. 本篇部署教程将讲述k8s集群的节点(master和工作节点)部署,请先按照上一篇教程完成节点的准备.本篇教程中的操作全部使用脚本完成,并且对于某些情况(比如镜 ...

  7. 使用Kubeadm创建k8s集群之部署规划(三十一)

    前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...

  8. kubeadm部署K8S集群并使用containerd做容器运行时

    kubeadm部署K8S集群并使用containerd做容器运行时(内容全部实战验证有任何问题欢迎留言咨询讨论) 前言 去年12月份,当Kubernetes社区宣布1.20版本之后会逐步弃用docke ...

  9. 用Kubeadm安装K8s后,kube-flannel-ds一直CrashLoopBackOff

    2019独角兽企业重金招聘Python工程师标准>>> 如果使用Kubeadm安装K8s集群,在安装flannel网络插件后,发现pod: kube-flannel-ds 一直是Cr ...

最新文章

  1. java boolean 按位或_布尔运算符与按位运算符
  2. LTE MAC PDU
  3. export default 和 export 区别(ES6)
  4. MFC六大核心机制之一:MFC程序的初始化
  5. php代码清除空格注解,PHP文件去掉PHP注释空格的函数分析(PHP代码压缩)
  6. java单例模式的七种写法_Java设计模式之单例模式的七种写法
  7. Django编写RESTful API(二):请求和响应
  8. MySQL8 Zip的下载和安装
  9. dns提供商主机名_在 Kubernetes 中使用 DNS 和 Headless Service 发现运行中的 Pod
  10. VB禁用CTRL +ALT + DEL (2)
  11. 抛出异常,打印错误信息,追踪错误
  12. hduoj 1518square
  13. CSDN用户数据库泄露事件给我们的启示
  14. Flutter格式化电话号码
  15. PCB layout的基本原则
  16. 带妹入坑,她该怎样提高自己的编程能力?
  17. WIN10 任务栏转圈 白屏问题
  18. PR标题动画模板 创意动态多行标题注释字幕条pr模板
  19. 安卓开发仿有道词典和谷歌翻译词典软件在线输入翻译源码下载
  20. 中职计算机专业可以考什么大学,中职生可以考哪些大学?

热门文章

  1. 大数据在各领域应用之精准营销
  2. mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖
  3. lzma打包exe_【原创】手写PE文件,打造史上最小LZMA解压DLL
  4. Eclipse执行junit测试时出现Errors occurred during the build. Errors running builder 'Integrated External Too
  5. integrate函数python_python – Sympy:integrate()奇怪的输出
  6. 【堡塔企业级防篡改-重构版】使用手册
  7. 国外十大在线支付服务网站
  8. android dialog隐藏虚拟按键,dialog全屏且不会弹出虚拟按键
  9. Windows下利用Chrome调试IOS设备页面
  10. 阿里云物联网和移动OneNet初步使用感受