Skip to content

Kubernetes 环境、版本与学习实验 ​

Kubernetes 版本与环境准备 ​

版本基线与核对方法 ​

核对日期:2026-08-12(Asia/Shanghai)。

项目核对结果官方依据
最新稳定补丁版v1.36.3,发布于 2026-07-23(UTC)stable.txt、v1.36.3 Release
最新稳定次要版1.36,代号 Haru,1.36.0 发布于 2026-04-22v1.36 发布公告
上游维护分支1.36、1.35、1.34版本偏差策略
各分支最新补丁1.36.3、1.35.7、1.34.10stable-1.36.txt、stable-1.35.txt、stable-1.34.txt
下一次要版状态v1.37.0-rc.0 是预发布候选版,不能当作稳定生产版GitHub Releases

Kubernetes 发布页可能受页面生成或缓存影响而晚于 dl.k8s.io 和 GitHub Release 标签。核对“此刻最新补丁”时,使用以下实时端点并交叉检查 GitHub Release:

bash
curl -L --fail --silent https://dl.k8s.io/release/stable.txt
curl -L --fail --silent https://dl.k8s.io/release/stable-1.36.txt

补丁版本会持续变化。文档中的 v1.36.3 是核对日快照,安装或升级前必须重新执行上述命令并阅读对应 CHANGELOG-1.36。

版本号和支持周期 ​

版本格式为 v主版本.次要版本.补丁版本:

  • 次要版本约每年发布三次,可能包含功能、弃用和 API 变化。
  • 补丁版本通常每月发布,包含兼容的缺陷与安全修复。
  • Kubernetes 1.19 及之后的发布分支通常获得约一年补丁支持;以补丁发布页的实际 EOL 日期为准。
  • EOL 版本不再收到常规安全修复,不应继续用于生产。

版本偏差规则 ​

以 API Server 1.36 为例,上游策略允许:

组件支持范围关键限制
HA kube-apiserver1.36、1.35最新与最旧实例最多差一个次要版本
kubelet1.36~1.33不得新于 API Server,最多旧三个次要版本
kube-proxy1.36~1.33不得新于 API Server,并受同节点 kubelet 约束
controller-manager / scheduler / cloud-controller1.36、1.35不得新于所连接 API Server,期望与其同次要版
kubectl1.37、1.36、1.35与任一 API Server 最多相差一个次要版本

发行版和托管服务可能有更严格规则。升级不能跳过次要版本,顺序详见升级与维护。

安装 kubectl ​

下面展示 Linux amd64 的下载和校验形式,未执行。先取得目标集群版本,并按偏差表选受支持客户端;不要无条件取 stable.txt 的最新版连接旧集群。其他架构替换 amd64。

bash
KUBECTL_VERSION='v<已核对兼容的完整版本号>'  # 替换后再执行,例如与目标服务端同次要版
curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/release/${KUBECTL_VERSION}/bin/linux/amd64/kubectl.sha256"
echo "$(cat kubectl.sha256)  kubectl" | sha256sum --check
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client --output=yaml

也可以使用操作系统包管理器,但应按照官方安装指南配置 pkgs.k8s.io 仓库并锁定合适次要版。

Shell 补全和别名 ​

bash
# Bash
source <(kubectl completion bash)
alias k=kubectl
complete -o default -F __start_kubectl k

# Zsh
source <(kubectl completion zsh)
alias k=kubectl
compdef k=kubectl

不要在团队脚本中使用个人别名;脚本写完整的 kubectl。

kubeconfig 与上下文 ​

默认配置是 $KUBECONFIG 指定的文件列表,未设置时为 $HOME/.kube/config。kubeconfig 可能含客户端证书、令牌和可执行认证插件,按密钥文件保护:

bash
chmod 600 "$HOME/.kube/config"
kubectl config get-contexts
kubectl config current-context
kubectl config view --minify --raw=false
kubectl cluster-info

切换上下文和默认命名空间:

bash
kubectl config use-context staging-admin
kubectl config set-context --current --namespace=demo
kubectl config view --minify -o jsonpath='{..namespace}{"\n"}'

不可信 kubeconfig

kubeconfig 的 exec 认证插件可以执行本机程序。不要运行来源不明的 kubeconfig;先人工检查 users[].user.exec、auth-provider、证书路径和 API 地址。不要把含凭据的 --raw 输出粘贴到工单或聊天。

合并多个配置时,在仅本人可访问的目录生成扁平副本,再替换正式文件。先设置 umask,避免生成后才 chmod 留下权限窗口:

bash
umask 077
KUBECONFIG="$HOME/.kube/config:$HOME/Downloads/team-cluster.yaml" \
  kubectl config view --flatten > /tmp/kubeconfig-merged.yaml
chmod 600 /tmp/kubeconfig-merged.yaml
KUBECONFIG=/tmp/kubeconfig-merged.yaml kubectl config get-contexts

验证无误后由人工安全移动;不要把 /tmp 中的凭据长期保留。

连接前检查清单 ​

bash
kubectl version
kubectl cluster-info
kubectl get --raw='/readyz?verbose'
kubectl auth whoami
kubectl auth can-i list pods --all-namespaces
kubectl get namespaces
  • kubectl version 同时显示客户端和服务端;关注次要版本偏差。
  • /readyz 需要相应非资源 URL 权限,403 不等于集群故障。
  • kubectl auth whoami 展示服务器识别的用户名和组。
  • 先确认自己是否有权限,再执行写操作。

本地学习集群选择 ​

工具特点适用场景
kind使用容器创建多节点集群,适合 CIAPI、控制器、网络和升级实验
minikube驱动与插件丰富单机学习、Ingress/存储实验
k3d/k3s轻量、启动快,但发行版有差异边缘场景和快速验证
kubeadm接近自建生产流程集群生命周期和节点运维学习

本知识库不把任何本地工具当作生产安装方案。生产优先使用组织批准的托管服务或经过审计的集群生命周期工具,并核对其版本支持矩阵。

v1.36 重点概览 ​

v1.36 包含 70 项增强,其中 18 项进入 Stable。与生产运维关系较大的变化包括:

  • 可变 CSI 节点卷挂载上限、外部 ServiceAccount 令牌签名、用户命名空间、OCI Image Volume、MutatingAdmissionPolicy 等进入 Stable。
  • 设备资源健康状态、部分 DRA 能力、组件 /statusz 和 /flagz、混合版本代理等进入 Beta。
  • v1.36.3 修复了 kubelet 内存泄漏、Server-Side Apply 回归、DRA 调度和 kubeadm etcd learner 等问题;使用 1.36 时应优先采用最新补丁而非 1.36.0。

这些功能是否可用还受 Feature Gate、运行时、CSI/CNI 驱动和云平台约束。不要仅凭版本号在生产启用 Alpha/Beta 功能。

Kubernetes 桌面实验学习链接 ​

以下保留原资料的历史版本范围。

学习网址 ​

继续阅读