kubernetes v1.36.3升级到v 1.37.0
·
kubernetes v1.36.3升级到v 1.37.0
一、更新数据源
编辑数据源,将版本从1.36 改为1.37
root@ops-test-021:~# sed -i 's#core:/stable:/v1.36#core:/stable:/v1.37#g' /etc/apt/sources.list.d/kubernetes.list
root@ops-test-021:~# apt-get update
Get:1 http://security.ubuntu.com/ubuntu noble-security InRelease [126 kB]
Hit:4 https://deb.nodesource.com/node_22.x nodistro InRelease
Hit:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble InRelease
Get:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates InRelease [126 kB]
Get:6 http://security.ubuntu.com/ubuntu noble-security/main amd64 Packages [971 kB]
Get:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-backports InRelease [126 kB]
Get:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates/main amd64 Packages [1229 kB]
Get:2 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.37/deb InRelease [1227 B]
Get:9 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.37/deb Packages [2701 B]
Get:10 http://security.ubuntu.com/ubuntu noble-security/universe amd64 Packages [1203 kB]
Get:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates/main amd64 Components [181 kB]
Get:12 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates/universe amd64 Packages [1689 kB]
Get:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates/universe Translation-en [338 kB]
Get:14 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates/universe amd64 Components [388 kB]
Get:15 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates/multiverse amd64 Components [940 B]
Get:16 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-backports/main amd64 Components [5748 B]
Get:17 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-backports/universe amd64 Components [12.6 kB]
Fetched 6400 kB in 11s (574 kB/s)
Reading package lists... Done
root@ops-test-021:~# apt-cache madison kubeadm
kubeadm | 1.37.0-1.1 | https://pkgs.k8s.io/core:/stable:/v1.37/deb Packages
root@ops-test-021:~#
二、升级控制面kubeadm
root@ops-test-021:~# apt-mark unhold kubeadm
Canceled hold on kubeadm.
root@ops-test-021:~# apt-get install -y kubeadm=1.37.0-1.1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
cri-tools
Use 'apt autoremove' to remove it.
The following packages will be upgraded:
kubeadm
1 upgraded, 0 newly installed, 0 to remove and 45 not upgraded.
Need to get 12.6 MB of archives.
After this operation, 1552 kB of additional disk space will be used.
Get:1 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.37/deb kubeadm 1.37.0-1.1 [12.6 MB]
Fetched 12.6 MB in 8s (1586 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 142192 files and directories currently installed.)
Preparing to unpack .../kubeadm_1.37.0-1.1_amd64.deb ...
Unpacking kubeadm (1.37.0-1.1) over (1.36.3-1.1) ...
Setting up kubeadm (1.37.0-1.1) ...
Scanning processes...
Scanning candidates...
Scanning linux images...
Pending kernel upgrade!
Running kernel version:
7.0.0-28-generic
Diagnostics:
The currently running kernel version is not the expected kernel version 7.0.0-30-generic.
Restarting the system to load the new kernel will not be handled automatically, so you should consider rebooting.
Restarting services...
Service restarts being deferred:
systemctl restart systemd-logind.service
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
root@ops-test-021:~# apt-mark hold kubeadm
kubeadm set on hold.
root@ops-test-021:~# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"37", EmulationMajor:"", EmulationMinor:"", MinCompatibilityMajor:"", MinCompatibilityMinor:"", GitVersion:"v1.37.0", GitCommit:"f54c212e3a2f75d674b717a9b29052b20b60aefc", GitTreeState:"clean", BuildDate:"2026-08-26T10:47:17Z", GoVersion:"go1.26.6", Compiler:"gc", Platform:"linux/amd64"}
root@ops-test-021:~#
查看升级plan
root@ops-test-021:~# kubeadm upgrade plan
[preflight] Running pre-flight checks.
[upgrade/config] Reading configuration from the "kubeadm-config" ConfigMap in namespace "kube-system"...
[upgrade/config] Use 'kubeadm init phase upload-config kubeadm --config your-config-file' to re-upload it.
W0827 08:45:55.816103 185218 configset.go:77] Warning: No kubeproxy.config.k8s.io/v1alpha1 config is loaded. Continuing without it: configmaps "kube-proxy" not found
[upgrade] Running cluster health checks
[upgrade] Fetching available versions to upgrade to
[upgrade/versions] Cluster version: 1.36.0
[upgrade/versions] kubeadm version: v1.37.0
[upgrade/versions] Target version: v1.37.0
[upgrade/versions] Latest version in the v1.36 series: v1.36.4
W0827 08:46:02.854783 185218 configset.go:77] Warning: No kubeproxy.config.k8s.io/v1alpha1 config is loaded. Continuing without it: configmaps "kube-proxy" not found
Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT NODE CURRENT TARGET
kubelet ops-test-021 v1.36.3 v1.36.4
kubelet ops-test-022 v1.36.3 v1.36.4
kubelet ops-test-023 v1.36.3 v1.36.4
kubelet ops-test-024 v1.36.3 v1.36.4
kubelet ops-test-025 v1.36.3 v1.36.4
kubelet ops-test-026 v1.36.3 v1.36.4
kubelet ops-test-027 v1.36.3 v1.36.4
Upgrade to the latest version in the v1.36 series:
COMPONENT NODE CURRENT TARGET
kube-apiserver ops-test-021 v1.36.0 v1.36.4
kube-controller-manager ops-test-021 v1.36.0 v1.36.4
kube-scheduler ops-test-021 v1.36.0 v1.36.4
kube-proxy 1.36.0 v1.36.4
CoreDNS v1.14.2 v1.14.6
etcd ops-test-021 3.6.8-0 3.7.0-0
You can now apply the upgrade by executing the following command:
kubeadm upgrade apply v1.36.4
_____________________________________________________________________
Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT NODE CURRENT TARGET
kubelet ops-test-021 v1.36.3 v1.37.0
kubelet ops-test-022 v1.36.3 v1.37.0
kubelet ops-test-023 v1.36.3 v1.37.0
kubelet ops-test-024 v1.36.3 v1.37.0
kubelet ops-test-025 v1.36.3 v1.37.0
kubelet ops-test-026 v1.36.3 v1.37.0
kubelet ops-test-027 v1.36.3 v1.37.0
Upgrade to the latest stable version:
COMPONENT NODE CURRENT TARGET
kube-apiserver ops-test-021 v1.36.0 v1.37.0
kube-controller-manager ops-test-021 v1.36.0 v1.37.0
kube-scheduler ops-test-021 v1.36.0 v1.37.0
kube-proxy 1.36.0 v1.37.0
CoreDNS v1.14.2 v1.14.6
etcd ops-test-021 3.6.8-0 3.7.0-0
You can now apply the upgrade by executing the following command:
kubeadm upgrade apply v1.37.0
_____________________________________________________________________
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 no
kubelet.config.k8s.io v1beta1 v1beta1 no
_____________________________________________________________________
root@ops-test-021:~#
检查cilium的状态
root@ops-test-021:~# cilium config view
agent-not-ready-taint-key node.cilium.io/agent-not-ready
auto-direct-node-routes true
bpf-distributed-lru false
bpf-events-drop-enabled true
bpf-events-policy-verdict-enabled true
bpf-events-trace-enabled true
bpf-lb-acceleration disabled
bpf-lb-algorithm-annotation false
bpf-lb-external-clusterip false
bpf-lb-map-max 65536
bpf-lb-mode snat
bpf-lb-mode-annotation false
bpf-lb-sock false
bpf-lb-source-range-all-types false
bpf-map-dynamic-size-ratio 0.0025
bpf-policy-map-max 16384
bpf-policy-stats-map-max 65536
bpf-root /sys/fs/bpf
cgroup-root /run/cilium/cgroupv2
cilium-endpoint-gc-interval 5m0s
cluster-id 0
cluster-name kubernetes
clustermesh-cache-ttl 0s
clustermesh-enable-endpoint-sync false
clustermesh-enable-mcs-api false
clustermesh-mcs-api-install-crds true
cni-exclusive true
cni-log-file /var/run/cilium/cilium-cni.log
controller-group-metrics write-cni-file sync-host-ips sync-lb-maps-with-k8s-services
custom-cni-conf false
datapath-mode veth
debug false
debug-verbose
default-lb-service-ipam lbipam
direct-routing-skip-unreachable false
dnsproxy-enable-transparent-mode true
dnsproxy-socket-linger-timeout 10
egress-gateway-reconciliation-trigger-interval 1s
enable-auto-protect-node-port-range true
enable-bpf-clock-probe false
enable-endpoint-health-checking true
enable-endpoint-lockdown-on-policy-overflow false
enable-envoy-config true
enable-gateway-api true
enable-gateway-api-alpn false
enable-gateway-api-app-protocol false
enable-gateway-api-proxy-protocol false
enable-gateway-api-secrets-sync true
enable-health-check-loadbalancer-ip false
enable-health-check-nodeport true
enable-health-checking true
enable-hubble true
enable-ipv4 true
enable-ipv4-big-tcp false
enable-ipv4-masquerade true
enable-ipv6 false
enable-ipv6-big-tcp false
enable-ipv6-masquerade true
enable-k8s-networkpolicy true
enable-l2-announcements true
enable-l2-neigh-discovery false
enable-l7-proxy true
enable-lb-ipam true
enable-masquerade-to-route-source false
enable-metrics true
enable-no-service-endpoints-routable true
enable-node-selector-labels false
enable-non-default-deny-policies true
enable-policy default
enable-policy-secrets-sync true
enable-sctp false
enable-source-ip-verification true
enable-tcx true
enable-tunnel-big-tcp false
enable-vtep false
enable-well-known-identities false
enable-xt-socket-fallback true
envoy-access-log-buffer-size 4096
envoy-base-id 0
envoy-config-retry-interval 15s
envoy-keep-cap-netbindservice false
external-envoy-proxy true
gateway-api-hostnetwork-enabled false
gateway-api-hostnetwork-nodelabelselector
gateway-api-secrets-namespace cilium-secrets
gateway-api-service-externaltrafficpolicy Cluster
gateway-api-xff-num-trusted-hops 0
health-check-icmp-failure-threshold 3
http-retry-count 3
http-stream-idle-timeout 300
hubble-disable-tls false
hubble-listen-address :4244
hubble-network-policy-correlation-enabled true
hubble-socket-path /var/run/cilium/hubble.sock
hubble-tls-cert-file /var/lib/cilium/tls/hubble/server.crt
hubble-tls-client-ca-files /var/lib/cilium/tls/hubble/client-ca.crt
hubble-tls-key-file /var/lib/cilium/tls/hubble/server.key
identity-allocation-mode crd
identity-gc-interval 15m0s
identity-heartbeat-timeout 30m0s
identity-management-mode agent
install-no-conntrack-iptables-rules false
ipam kubernetes
ipam-cilium-node-update-rate 15s
iptables-random-fully false
ipv4-native-routing-cidr 10.244.0.0/16
k8s-require-ipv4-pod-cidr false
k8s-require-ipv6-pod-cidr false
kube-proxy-replacement true
kube-proxy-replacement-healthz-bind-address
max-connected-clusters 255
mesh-auth-enabled false
mesh-auth-gc-interval 5m0s
mesh-auth-queue-size 1024
mesh-auth-rotated-identities-queue-size 1024
metrics-sampling-interval 5m
monitor-aggregation medium
monitor-aggregation-flags all
monitor-aggregation-interval 5s
nat-map-stats-entries 32
nat-map-stats-interval 30s
node-port-bind-protection true
nodeport-addresses
nodes-gc-interval 5m0s
operator-api-serve-addr 127.0.0.1:9234
operator-prometheus-serve-addr :9963
packetization-layer-pmtud-mode blackhole
policy-cidr-match-mode
policy-default-local-cluster true
policy-deny-response none
policy-secrets-namespace cilium-secrets
policy-secrets-only-from-secrets-namespace true
preallocate-bpf-maps false
procfs /host/proc
prometheus-serve-addr :9962
proxy-cluster-max-connections 1024
proxy-cluster-max-requests 1024
proxy-connect-timeout 2
proxy-idle-timeout-seconds 60
proxy-initial-fetch-timeout 30
proxy-max-active-downstream-connections 50000
proxy-max-concurrent-retries 128
proxy-max-connection-duration-seconds 0
proxy-max-requests-per-connection 0
proxy-use-original-source-address true
proxy-xff-num-trusted-hops-egress 0
proxy-xff-num-trusted-hops-ingress 0
remove-cilium-node-taints true
routing-mode native
service-no-backend-response reject
set-cilium-is-up-condition true
set-cilium-node-taints true
synchronize-k8s-nodes true
tofqdns-dns-reject-response-code refused
tofqdns-enable-dns-compression true
tofqdns-endpoint-max-ip-per-hostname 1000
tofqdns-idle-connection-grace-period 0s
tofqdns-max-deferred-connection-deletes 10000
tofqdns-preallocate-identities true
tofqdns-proxy-response-max-delay 100ms
tunnel-protocol vxlan
tunnel-source-port-range 0-0
unmanaged-pod-watcher-interval 15s
vtep-cidr
vtep-endpoint
vtep-mac
vtep-mask
write-cni-conf-when-ready /host/etc/cni/net.d/05-cilium.conflist
root@ops-test-021:~#
三、先升级控制面
root@ops-test-021:~# kubeadm upgrade apply v1.37.0
[upgrade] Reading configuration from the "kubeadm-config" ConfigMap in namespace "kube-system"...
[upgrade] Use 'kubeadm init phase upload-config kubeadm --config your-config-file' to re-upload it.
W0827 09:02:31.344932 185650 configset.go:77] Warning: No kubeproxy.config.k8s.io/v1alpha1 config is loaded. Continuing without it: configmaps "kube-proxy" not found
[upgrade/preflight] Running preflight checks
[upgrade] Running cluster health checks
[upgrade/preflight] You have chosen to upgrade the cluster version to "v1.37.0"
[upgrade/versions] Cluster version: v1.36.0
[upgrade/versions] kubeadm version: v1.37.0
[upgrade] Are you sure you want to proceed? [y/N]: y
[upgrade/preflight] Pulling images required for setting up a Kubernetes cluster
[upgrade/preflight] This might take a minute or two, depending on the speed of your internet connection
[upgrade/preflight] You can also perform this action beforehand using 'kubeadm config images pull'
[upgrade/control-plane] Upgrading your static Pod-hosted control plane to version "v1.37.0" (timeout: 5m0s)...
[upgrade/staticpods] Writing new Static Pod manifests to "/etc/kubernetes/tmp/kubeadm-upgraded-manifests361672500"
[upgrade/staticpods] Preparing for "etcd" upgrade
[upgrade/staticpods] Renewing etcd-server certificate
[upgrade/staticpods] Renewing etcd-peer certificate
[upgrade/staticpods] Renewing etcd-healthcheck-client certificate
[upgrade/staticpods] Moving new manifest to "/etc/kubernetes/manifests/etcd.yaml" and backing up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2026-08-27-09-04-12/etcd.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This can take up to 5m0s
[apiclient] Found 1 Pods for label selector component=etcd
[upgrade/staticpods] Component "etcd" upgraded successfully!
[upgrade/etcd] Waiting for etcd to become available
[upgrade/staticpods] Preparing for "kube-apiserver" upgrade
[upgrade/staticpods] Renewing apiserver certificate
[upgrade/staticpods] Renewing apiserver-kubelet-client certificate
[upgrade/staticpods] Renewing front-proxy-client certificate
[upgrade/staticpods] Renewing apiserver-etcd-client certificate
[upgrade/staticpods] Moving new manifest to "/etc/kubernetes/manifests/kube-apiserver.yaml" and backing up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2026-08-27-09-04-12/kube-apiserver.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This can take up to 5m0s
[apiclient] Found 1 Pods for label selector component=kube-apiserver
[upgrade/staticpods] Component "kube-apiserver" upgraded successfully!
[upgrade/staticpods] Preparing for "kube-controller-manager" upgrade
[upgrade/staticpods] Renewing controller-manager.conf certificate
[upgrade/staticpods] Moving new manifest to "/etc/kubernetes/manifests/kube-controller-manager.yaml" and backing up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2026-08-27-09-04-12/kube-controller-manager.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This can take up to 5m0s
[apiclient] Found 1 Pods for label selector component=kube-controller-manager
[upgrade/staticpods] Component "kube-controller-manager" upgraded successfully!
[upgrade/staticpods] Preparing for "kube-scheduler" upgrade
[upgrade/staticpods] Renewing scheduler.conf certificate
[upgrade/staticpods] Moving new manifest to "/etc/kubernetes/manifests/kube-scheduler.yaml" and backing up old manifest to "/etc/kubernetes/tmp/kubeadm-backup-manifests-2026-08-27-09-04-12/kube-scheduler.yaml"
[upgrade/staticpods] Waiting for the kubelet to restart the component
[upgrade/staticpods] This can take up to 5m0s
[apiclient] Found 1 Pods for label selector component=kube-scheduler
[upgrade/staticpods] Component "kube-scheduler" upgraded successfully!
[upgrade/control-plane] The control plane instance for this node was successfully upgraded!
[upload-config] Storing the configuration used in ConfigMap "kubeadm-config" in the "kube-system" Namespace
[kubelet] Creating a ConfigMap "kubelet-config" in namespace kube-system with the configuration for the kubelets in the cluster
[upgrade/kubeconfig] The kubeconfig files for this node were successfully upgraded!
W0827 09:07:00.323635 185650 postupgrade.go:105] Using temporary directory /etc/kubernetes/tmp/kubeadm-kubelet-config-2026-08-27-09-07-00 for kubelet config. To override it set the environment variable KUBEADM_UPGRADE_DRYRUN_DIR
[upgrade] Backing up kubelet config file to /etc/kubernetes/tmp/kubeadm-kubelet-config-2026-08-27-09-07-00/config.yaml
[patches] Applied patch of type "application/strategic-merge-patch+json" to target "kubeletconfiguration"
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[upgrade/kubelet-config] The kubelet configuration for this node was successfully upgraded!
[upgrade/bootstrap-token] Configuring bootstrap token and cluster-info RBAC rules
[bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to get nodes
[bootstrap-token] Configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials
[bootstrap-token] Configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token
[bootstrap-token] Configured RBAC rules to allow certificate rotation for all node client certificates in the cluster
[bootstrap-token] Configured RBAC rules to allow the API server kubelet client certificate to access the kubelet API
[addons] Applied essential addon: CoreDNS
[upgrade/addon] Skipping the addon/kube-proxy phase. The addon is disabled.
[upgrade] SUCCESS! A control plane node of your cluster was upgraded to "v1.37.0".
[upgrade] Now please proceed with upgrading the rest of the nodes by following the right order.
root@ops-test-021:~#
检查集群当前的状态
kubectl get nodes -o wide
kubectl get pods -A
kubectl get pods -n kube-system -o wide
cilium status
kubectl version
四、升级master 升级 021 的 kubelet + kubectl
root@ops-test-021:~# apt-mark unhold kubelet kubectl
Canceled hold on kubelet.
Canceled hold on kubectl.
root@ops-test-021:~# apt-get install -y kubelet=1.37.0-1.1 kubectl=1.37.0-1.1
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following package was automatically installed and is no longer required:
cri-tools
Use 'apt autoremove' to remove it.
The following packages will be upgraded:
kubectl kubelet
2 upgraded, 0 newly installed, 0 to remove and 43 not upgraded.
Need to get 25.5 MB of archives.
After this operation, 3428 kB of additional disk space will be used.
Get:1 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.37/deb kubectl 1.37.0-1.1 [12.1 MB]
Get:2 https://prod-cdn.packages.k8s.io/repositories/isv:/kubernetes:/core:/stable:/v1.37/deb kubelet 1.37.0-1.1 [13.5 MB]
Fetched 25.5 MB in 14s (1791 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
(Reading database ... 142192 files and directories currently installed.)
Preparing to unpack .../kubectl_1.37.0-1.1_amd64.deb ...
Unpacking kubectl (1.37.0-1.1) over (1.36.3-1.1) ...
Preparing to unpack .../kubelet_1.37.0-1.1_amd64.deb ...
Unpacking kubelet (1.37.0-1.1) over (1.36.3-1.1) ...
Setting up kubectl (1.37.0-1.1) ...
Setting up kubelet (1.37.0-1.1) ...
Scanning processes...
Scanning candidates...
Scanning linux images...
Pending kernel upgrade!
Running kernel version:
7.0.0-28-generic
Diagnostics:
The currently running kernel version is not the expected kernel version 7.0.0-30-generic.
Restarting the system to load the new kernel will not be handled automatically, so you should consider rebooting.
Restarting services...
systemctl restart kubelet.service
Service restarts being deferred:
systemctl restart systemd-logind.service
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
root@ops-test-021:~# apt-mark hold kubelet kubectl
kubelet set on hold.
kubectl set on hold.
root@ops-test-021:~# systemctl daemon-reload
root@ops-test-021:~# systemctl restart kubelet
root@ops-test-021:~#
查看master状态
root@ops-test-021:~# kubectl get node ops-test-021 -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
ops-test-021 Ready control-plane 112d v1.37.0 192.168.2.21 <none> Ubuntu 24.04.4 LTS 7.0.0-28-generic (amd64) containerd://2.2.3
root@ops-test-021:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ops-test-021 Ready control-plane 112d v1.37.0
ops-test-022 Ready <none> 112d v1.36.3
ops-test-023 Ready <none> 112d v1.36.3
ops-test-024 Ready <none> 11d v1.36.3
ops-test-025 Ready <none> 26d v1.36.3
ops-test-026 Ready <none> 15d v1.36.3
ops-test-027 Ready <none> 12d v1.36.3
root@ops-test-021:~#
查看cllium状态
然后再逐台升级 Worker
检查源:
cat /etc/apt/sources.list.d/kubernetes.list
如果是 v1.36
sed -i 's#core:/stable:/v1.36#core:/stable:/v1.37#g' /etc/apt/sources.list.d/kubernetes.list
apt-get update
升级:
apt-mark unhold kubelet
apt-get install -y kubelet=1.37.0-1.1
apt-mark hold kubelet
systemctl daemon-reload
systemctl restart kubelet
查看集群状态:
root@ops-test-021:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ops-test-021 Ready control-plane 112d v1.37.0
ops-test-022 Ready <none> 112d v1.37.0
ops-test-023 Ready <none> 112d v1.37.0
ops-test-024 Ready <none> 11d v1.37.0
ops-test-025 Ready <none> 26d v1.37.0
ops-test-026 Ready <none> 15d v1.37.0
ops-test-027 Ready <none> 12d v1.37.0
root@ops-test-021:~# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
ops-test-021 Ready control-plane 112d v1.37.0 192.168.2.21 <none> Ubuntu 24.04.4 LTS 7.0.0-28-generic (amd64) containerd://2.2.3
ops-test-022 Ready <none> 112d v1.37.0 192.168.2.22 <none> Ubuntu 24.04.4 LTS 6.17.0-29-generic (amd64) containerd://2.2.3
ops-test-023 Ready <none> 112d v1.37.0 192.168.2.23 <none> Ubuntu 24.04.4 LTS 6.17.0-29-generic (amd64) containerd://2.2.3
ops-test-024 Ready <none> 12d v1.37.0 192.168.2.24 <none> Ubuntu 24.04.2 LTS 6.11.0-24-generic (amd64) containerd://2.2.3
ops-test-025 Ready <none> 26d v1.37.0 192.168.2.25 <none> Ubuntu 24.04.4 LTS 7.0.0-28-generic (amd64) containerd://2.2.3
ops-test-026 Ready <none> 15d v1.37.0 192.168.2.26 <none> Ubuntu 24.04.3 LTS 7.0.0-28-generic (amd64) containerd://2.0.2
ops-test-027 Ready <none> 12d v1.37.0 192.168.2.27 <none> Ubuntu 24.04.4 LTS 7.0.0-28-generic (amd64) containerd://2.2.3
root@ops-test-021:~#
root@ops-test-021:~# cilium status
/¯¯\
/¯¯\__/¯¯\ Cilium: OK
\__/¯¯\__/ Operator: OK
/¯¯\__/¯¯\ Envoy DaemonSet: OK
\__/¯¯\__/ Hubble Relay: OK
\__/ ClusterMesh: disabled
DaemonSet cilium Desired: 7, Ready: 7/7, Available: 7/7
DaemonSet cilium-envoy Desired: 7, Ready: 7/7, Available: 7/7
Deployment cilium-operator Desired: 1, Ready: 1/1, Available: 1/1
Deployment hubble-relay Desired: 1, Ready: 1/1, Available: 1/1
Deployment hubble-ui Desired: 1, Ready: 1/1, Available: 1/1
Containers: cilium Running: 7
cilium-envoy Running: 7
cilium-operator Running: 1
clustermesh-apiserver
hubble-relay Running: 1
hubble-ui Running: 1
Cluster Pods: 4/4 managed by Cilium
Helm chart version: 1.19.1
Image versions cilium quay.io/cilium/cilium:v1.19.1@sha256:41f1f74a0000de8656f1de4088ea00c8f2d49d6edea579034c73c5fd5fe01792: 7
cilium-envoy quay.io/cilium/cilium-envoy:v1.35.9-1770979049-232ed4a26881e4ab4f766f251f258ed424fff663@sha256:8188114a2768b5f49d6ce58e168b20d765e0fbc64eee0d83241aa2b150ccd788: 7
cilium-operator quay.io/cilium/operator-generic:v1.19.1@sha256:e7278d763e448bf6c184b0682cf98cdca078d58a27e1b2f3c906792670aa211a: 1
hubble-relay quay.io/cilium/hubble-relay:v1.19.1@sha256:d8c4e13bc36a56179292bb52bc6255379cb94cb873700d316ea3139b1bdb8165: 1
hubble-ui quay.io/cilium/hubble-ui-backend:v0.13.3@sha256:db1454e45dc39ca41fbf7cad31eec95d99e5b9949c39daaad0fa81ef29d56953: 1
hubble-ui quay.io/cilium/hubble-ui:v0.13.3@sha256:661d5de7050182d495c6497ff0b007a7a1e379648e60830dd68c4d78ae21761d: 1
root@ops-test-021:~# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system cilium-42jkw 1/1 Running 1 (84d ago) 111d
kube-system cilium-8zjd6 1/1 Running 1 (90d ago) 111d
kube-system cilium-envoy-4s6bn 1/1 Running 5 (11d ago) 111d
kube-system cilium-envoy-7vcdl 1/1 Running 0 12d
kube-system cilium-envoy-9tr8g 1/1 Running 1 (90d ago) 111d
kube-system cilium-envoy-jw8vw 1/1 Running 1 (12d ago) 15d
kube-system cilium-envoy-mb5sc 1/1 Running 0 26d
kube-system cilium-envoy-nczxb 1/1 Running 1 (84d ago) 111d
kube-system cilium-envoy-xcpn7 1/1 Running 0 12d
kube-system cilium-ght94 1/1 Running 0 12d
kube-system cilium-hbv5q 1/1 Running 1 (12d ago) 15d
kube-system cilium-hc66j 1/1 Running 1 (11d ago) 12d
kube-system cilium-operator-845ffffd57-2hlnl 1/1 Running 6 (19m ago) 90d
kube-system cilium-rxdqg 1/1 Running 0 26d
kube-system cilium-s7b6n 1/1 Running 5 (11d ago) 111d
kube-system coredns-6cf5fbd489-cbdcz 1/1 Running 0 18m
kube-system coredns-6cf5fbd489-qmlrn 1/1 Running 0 18m
kube-system etcd-ops-test-021 1/1 Running 1 (11m ago) 11m
kube-system hubble-relay-5d96b56dc8-xtz9s 1/1 Running 0 90d
kube-system hubble-ui-6b4f8fcff9-jrxxm 2/2 Running 0 90d
kube-system kube-apiserver-ops-test-021 1/1 Running 1 (11m ago) 11m
kube-system kube-controller-manager-ops-test-021 1/1 Running 1 (11m ago) 11m
kube-system kube-scheduler-ops-test-021 1/1 Running 1 (11m ago) 11m
root@ops-test-021:~#
升级完成!
更多推荐
所有评论(0)