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

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
J
Java Code Geeks
I
InfoQ
V
Visual Studio Blog
M
MIT News - Artificial intelligence
H
Help Net Security
博客园_首页
Blog — PlanetScale
Blog — PlanetScale
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
人人都是产品经理
人人都是产品经理
G
Google Developers Blog
A
About on SuperTechFans
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Last Week in AI
Last Week in AI
小众软件
小众软件
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
云风的 BLOG
云风的 BLOG
S
SegmentFault 最新的问题
WordPress大学
WordPress大学

博客 on 打工人日志

k8s RKE2 cilium L2 + envoy gateway 安装配置 k8s RKE2 vSphere 存储配置 OpenClaw 全能指南:从安装到进阶自动化实战 (2026 最终版) Kubernetes — skywalking + banyanDB APM监控部署 Kubernetes — promtail + loki + grafana 日志系统部署 Kubernetes — metalLB + Traefik 部署 Kubernetes — SSL 证书自动更新 Kubernetes — RKE2 + kube-vip + cilium 部署 使用TLSv1.3 升级nginx和openssl Proxmox VE(PVE) 更新到最新版本 kindle 邮件发送失败,错误代码E999 metallb + ingress-nginx + argocd 本地部署 iStoreOS(旁路由)使用openclash实现dns劫持 异常流量分析:图片库服务黑客入侵 openwrt 硬盘扩容 搭建ip地址检索服务 Kubernetes — k8s 手动安装 1.17.9 SELinux 问题:导致端口无法创建,无法访问 【福利】免费!本地部署!去除视频中移动的物体 通知:《打工人日报》迁移到独立板块 KyBook 3 | calibre-web - IOS系统最佳图书伴侣 Tmux 安装和使用教程 DockerHub 加速镜像部署 - 使用cloudflare 代理 docker的零停机部署 SD-webui 批量处理图片 ubuntu 安装 ComfyUI ubuntu 安装 stable-diffusion-webui 测试策略:微服务架构 单元测试:测试单元质量提升 端到端测试:模拟用户体验
k8s master 节点 Unauthorized
2025-12-03 · via 博客 on 打工人日志

故障

多master集群的k8s其中一台master 出现 You must be logged in to the server (Unauthorized),说明当前节点上的 kubectl 无法认证到 apiserver。
共有三台master:

  • master1 正常
  • master2 异常
  • master3 异常

排查问题

用 admin 证书直接用 curl 测试认证

1curl --cert /etc/kubernetes/pki/admin.crt --key /etc/kubernetes/pki/admin.key -k https://10.10.10.68:6443/healthz
  • 结果 HTTP/1.1 200 OK → TLS + 认证成功(client cert 被接受)。
  • 若返回 401/403 → TLS 成功但授权失败(RBAC 或 client cert 虽被接受但没有权限)。把完整返回贴来。
  • 若 curl 报 TLS 错误 → client cert/CA 有问题(贴错误信息)。

把 kubeconfig 中的 client cert/key 解码到临时文件并检查它们(确认 kubectl 用的是这个证书、并检查证书 Subject/CN/到期日)

1# 解码证书与私钥
2awk '/client-certificate-data/ {print $2}' ~/.kube/config | base64 -d > /tmp/kube_client.crt
3awk '/client-key-data/ {print $2}' ~/.kube/config | base64 -d > /tmp/kube_client.key
4chmod 600 /tmp/kube_client.key
5
6# 检查证书主体与到期日
7openssl x509 -in /tmp/kube_client.crt -noout -text | egrep "Subject:|Not Before|Not After"

如果看到 Not After 在过去 → 证书过期(那就说明证书过期了)。 Subject 的 CN 通常是 kubernetes-admin 或 admin / system:admin,我们要确认 CN 是否合理。

我这边发现证书过期了,所以导致认证失败了。

解决

使用 kubeadm 重新生成 admin kubeconfig.

在任意 master 上执行:

 1# 备份旧配置
 2mv ~/.kube/config ~/.kube/config.bak
 3
 4# 重新生成 admin kubeconfig
 5kubeadm init phase kubeconfig admin
 6
 7# 拷贝到用户目录
 8mkdir -p ~/.kube
 9cp /etc/kubernetes/admin.conf ~/.kube/config
10chmod 600 ~/.kube/config

测试