运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • 操作系统

  • 域名解析

  • 公有云

  • CI&CD

  • 数据库

  • 负载均衡&反向代理

  • 存储系统

  • 容器&容器编排

    • kubeadm安装k8s单点(centos系统)
    • kubeadm安装k8s单点(debian系统)
    • k8s单master集群部署
    • k8s安全策略
    • Dockerfile参数说明
    • Docker环境磁盘清理
    • docker常用命令
    • docker卷挂载
    • docker网络模式
    • kubectl命令补全
    • k8s ingress代理外部IIS服务
    • k8s安装ingress-nginx
    • harbor (docker compose)安装
    • k8s进行pod级的抓包tcpdump
    • k8s使用secret拉取私有仓库镜像
    • k8s常用命令
    • k8s内存使用及监控
    • openshift 3_11单节点all-in-one安装
    • k8s 1_26版本创建serviceaccount不会自动创建secret
    • ctr和crictl显示镜像不一致
    • alpine镜像集成常用数据库客户端
  • 批量管理

  • 邮件系统

  • 监控系统

  • Web服务

  • 虚拟化

  • 防火墙

  • 压测

  • 文件同步

  • 私有云

  • 日志系统

  • 代码仓库&版本管理

  • 安全审计

  • 远程拨号

  • 大数据

  • 统一认证

  • 消息队列

  • Apollo

  • 运维杂记
  • 容器&容器编排
lyndon
2024-01-05

k8s 1_26版本创建serviceaccount不会自动创建secret

背景:

最近上线一个新的业务系统,要求使用单独的k8s集群。原先一直使用k8s 1.22版本,官方已经不再维护,正好这次新的k8s集群就使用1.26版本。

问题描述:

prometheus监控在另一个k8s集群内,对新建集群配置自动发现,使用kubernetes_sd_configs方式,发现在新集群创建serviceaccount之后不会自动常见并绑定secret token。

老规矩,先网上搜一下,找到这篇:https://www.soulchild.cn/post/2945,摘抄记录如下:

k8s官方 1.24 chanagelog. (opens new window)

阿里云 ack k8s 1.26 changelog (opens new window)

在Kubernetes 1.24版本后,基于安全方面的考虑(特性门控LegacyServiceAccountTokenNoAutoGeneration默认启用),Secret API将不会为ServiceAccount自动创建Secret对象存放Token信息,需要使用TokenRequest API来获取ServiceAccount的Token,该Token具备过期时间,更加安全。如果一定需要创建一个永不过期的Token,请参见service-account-token-secrets (opens new window)。

可以使用 TokenRequest API (opens new window) 获取服务帐户令牌,或者如果需要未过期的令牌,请按照本指南 (opens new window)为令牌控制器创建一个 Secret API 对象以填充服务帐户令牌。

pr: https://github.com/kubernetes/kubernetes/pull/108309

方式 1

使用 TokenRequest API 来生成 token,获取方式:

  • 使用 client-go 或者其他 api 调用工具来获取某个 serviceaccount 的 token
  • 创建 yaml,使用 kubectl apply -f
  • 使用 kubectl create token -n xxx <serviceaccount-name> 来获取一个临时的 token, 默认 1 小时

方式 2

创建 secret token,创建后从 secret 的 token 字段拿就可以了

apiVersion: v1
kind: Secret
metadata:
  name: secret-sa-sample
  annotations:
    kubernetes.io/service-account.name: "sa-name"   # 这里填写serviceAccountName
type: kubernetes.io/service-account-token
1
2
3
4
5
6
7
上次更新: 2024/01/05, 15:56:02
openshift 3_11单节点all-in-one安装
ctr和crictl显示镜像不一致

← openshift 3_11单节点all-in-one安装 ctr和crictl显示镜像不一致→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式