惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
Y
Y Combinator Blog
T
Tailwind CSS Blog
博客园 - 三生石上(FineUI控件)
J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
aimingoo的专栏
aimingoo的专栏
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Docker
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Check Point Blog
M
MIT News - Artificial intelligence
Last Week in AI
Last Week in AI
V
V2EX
腾讯CDC
F
Fortinet All Blogs
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss

k8s入门系列 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 metallb + ingress-nginx + argocd 本地部署 Kubernetes — k8s 手动安装 1.17.9 Argo cd 安装和部署 Kubernetes — kubecost 分析 Kubernetes 成本 Ansible部署ceph集群 Kubernetes — 更新证书 Kubernetes — Rook云存储介绍和部署 Kubernetes — 基于K8S搭建Ceph分布式存储 Kubernetes — 探针和生命周期 Kubernetes — 开放标准(OCI、CRI、CNI、CSI、SMI、CPI)概述 kubernetes 部署插件 (Flannel、Web UI、CoreDNS、Ingress Controller) kubernetes 存储 编写 kubernetes 资源描述文件 kubernetes manual expansion kubernetes 调度过程 k8s本地联调神器kt-connect OpenELB:让k8s私有环境对外暴露端口 kubernetes ansible自动化部署 kubernetes 脚本快速安装 kubernetes面试题汇总 Kubernetes 安装 Harbor 搭建 Kubernetes 实验手册(1)
kubernetes 从1.23.x 升级到 1.24.x
2022-06-29 · via k8s入门系列 on 打工人日志

kubernetes 从1.23.x 升级到 1.24.x

k8s 在1.24.x之后的版本放弃了和 docker 的兼容,使用 containerd 作为底层的容器,直接参照官方文档的资料进行更新就会报错。因为你没有安装 containerd,所以要安装 containerd 并配置才能正确的升级 k8s
我用的是CentOS7.9的版本,因此以下操作都是在CentOS下操作。

Master 节点操作

1.升级 kubeadm

1yum install -y kubeadm-1.24.2-0 --disableexcludes=kubernetes
2kubeadm version
3kubeadm upgrade plan
4sudo kubeadm upgrade apply v1.24.2

2.安装 containerd

1yum install containerd.io -y
2containerd config default > /etc/containerd/config.toml
3vim /var/lib/kubelet/kubeadm-flags.env

修改 kubeadm-flags.env 变量:

1KUBELET_KUBEADM_ARGS="--pod-infra-container-image=k8s.gcr.io/pause:3.6 --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock"

3.升级 kubelet

1yum install -y kubelet-1.24.2-0 kubectl-1.24.2-0 --disableexcludes=kubernetes
2systemctl daemon-reload && systemctl restart containerd  && systemctl restart kubelet

查看状态:

kubectl get nodes
systemctl status kubelet

Worker 节点操作

1.升级 kubeadm

1yum install -y kubeadm-1.24.2-0 --disableexcludes=kubernetes
2kubeadm version
3kubeadm upgrade plan
4sudo kubeadm upgrade node

2.安装 containerd

1yum install containerd.io -y
2containerd config default > /etc/containerd/config.toml
3vim /var/lib/kubelet/kubeadm-flags.env

修改 kubeadm-flags.env 变量:

1KUBELET_KUBEADM_ARGS="--pod-infra-container-image=k8s.gcr.io/pause:3.6 --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock"

3.升级 kubelet

1yum install -y kubelet-1.24.2-0 kubectl-1.24.2-0 --disableexcludes=kubernetes
2systemctl daemon-reload && systemctl restart containerd  && systemctl restart kubelet

查看状态:

systemctl status kubelet

4.优化的维护节点

1# 设置为不可调度
2kubectl cordon <nodename>
3# 优雅排出容器
4kubectl drain <nodename> --ignore-daemonsets --delete-emptydir-data
5# 确认维护完成之后,恢复正常
6kubectl uncordon <nodename>