news 2026/7/5 1:05:33

k8s指定命名空间kubeconfig文件生成教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
k8s指定命名空间kubeconfig文件生成教程

文章目录

    • 前言
      • k8sv1.24及以上版本
        • 创建 ServiceAccount
        • 创建Role 和 RoleBinding
        • 长期 token Secret创建
        • 提取 token 和 CA
        • 生成 kubeconfig
        • 验证
      • k8sv1.24及以下版本
        • 创建 RBAC(SA + Role + RoleBinding)
        • 生产kubeconfig文件

前言

创建指定命名空间的kubeconfig文件是为了安全考虑,有时候开发会想要admin的kubeconfig的配置文件来实现自动化管理pod,但是给管理员权限风险较大(之前开发就搞崩了几次k8s)所以创建指定命名空间的kubeconfig较好,只能操作固定命名空间的资源,k8s也有完善的防提权机制,碰不到别的命名空间。

注:1.24版本前后的创建方式不一样

k8sv1.24及以上版本

创建 ServiceAccount
kubectl create serviceaccount monitoring-user-n monitoring
创建Role 和 RoleBinding
cat<<EOF|kubectlapply-f-apiVersion:rbac.authorization.k8s.io/v1 kind:Role metadata:name:monitoring-user-role namespace:monitoring#命名空间rules:-apiGroups:["*"]#给所有权限resources:["*"]#给所有权限verbs:["*"]#给所有权限---apiVersion:rbac.authorization.k8s.io/v1 kind:RoleBinding metadata:name:monitoring-user-binding namespace:monitoring subjects:-kind:ServiceAccount name:monitoring-user namespace:monitoring roleRef:kind:Role name:monitoring-user-role apiGroup:rbac.authorization.k8s.io EOF
长期 token Secret创建
cat<<EOF|kubectl apply-f-apiVersion: v1 kind: Secret metadata: name: monitoring-user-token namespace: monitoring annotations: kubernetes.io/service-account.name: monitoring-usertype: kubernetes.io/service-account-token EOF
提取 token 和 CA
TOKEN=$(kubectl get secret monitoring-user-token-n monitoring-o jsonpath='{.data.token}'|base64-d)kubectl get secret monitoring-user-token-n monitoring-o jsonpath='{.data.ca\.crt}'|base64-d > ca.crt APISERVER=https://192.168.10.11:6443
生成 kubeconfig
kubectl configset-clusterk8s-cluster \--certificate-authority=ca.crt \--embed-certs=true \--server=${APISERVER}\--kubeconfig=monitoring-user.kubeconfig kubectl configset-credentialsmonitoring-user \--token=${TOKEN}\--kubeconfig=monitoring-user.kubeconfig kubectl configset-contextmonitoring-user@k8s-cluster \--cluster=k8s-cluster \--user=monitoring-user \--namespace=monitoring \--kubeconfig=monitoring-user.kubeconfig kubectl configuse-contextmonitoring-user@k8s-cluster--kubeconfig=monitoring-user.kubeconfig
验证
kubectl--kubeconfig=monitoring-user.kubeconfig get pods

kubectl--kubeconfig=monitoring-user.kubeconfig get pods-A

k8sv1.24及以下版本

k8sv1.24以下对比以上版本的区别在于不需要手动创建secret,会自动生成

创建 RBAC(SA + Role + RoleBinding)
cat<<EOF|kubectl apply-f-apiVersion: v1 kind: ServiceAccount metadata: name: monitoring-admin namespace: monitoring---apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: monitoring-full namespace: monitoring rules:-apiGroups:["*"]resources:["*"]verbs:["*"]---apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: monitoring-admin-binding namespace: monitoring roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: monitoring-full subjects:-kind: ServiceAccount name: monitoring-admin namespace: monitoring EOF
生产kubeconfig文件
NAMESPACE="monitoring"SA="monitoring-admin"APISERVER="https://192.168.10.11:6443"OUTPUT="monitoring.kubeconfig"# 1.23 自动生成了 secret,直接取SECRET=$(kubectl get sa ${SA}-n ${NAMESPACE}-o jsonpath='{.secrets[0].name}')TOKEN=$(kubectl get secret ${SECRET}-n ${NAMESPACE}-o jsonpath='{.data.token}'|base64-d)kubectl get secret ${SECRET}-n ${NAMESPACE}-o jsonpath='{.data.ca\.crt}'|base64-d >/tmp/ca.crt kubectl configset-clustermonitoring-cluster \--server=${APISERVER}\--certificate-authority=/tmp/ca.crt \--embed-certs=true \--kubeconfig=${OUTPUT}kubectl configset-credentials${SA}\--token=${TOKEN}\--kubeconfig=${OUTPUT}kubectl configset-contextmonitoring-context \--cluster=monitoring-cluster \--namespace=${NAMESPACE}\--user=${SA}\--kubeconfig=${OUTPUT}kubectl configuse-contextmonitoring-context--kubeconfig=${OUTPUT}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 1:03:55

IS31FL3731 LED驱动芯片与PIC18LF25K40微控制器应用解析

1. IS31FL3731 LED驱动芯片深度解析IS31FL3731是一款由ISSI公司推出的PWM LED矩阵驱动芯片&#xff0c;专为控制多颗LED组成的点阵或阵列而设计。这款芯片在创客和嵌入式开发领域广受欢迎&#xff0c;主要得益于以下几个核心特性&#xff1a;1.1 硬件架构与电气特性该芯片采用紧…

作者头像 李华
网站建设 2026/7/5 1:03:09

汽美从业者必逛!APA 佛山展全品类耗材

“拿了个抛光赛冠军&#xff0c;客户根本不认&#xff0c;同行也不知道。”——这是很多汽美技师踩过的坑。花时间、花钱&#xff0c;最后只拿到一张“野鸡赛”的证书&#xff0c;对职业加成几乎为零。那问题来了&#xff1a;亚洲汽美抛光赛事&#xff0c;到底哪家才算靠谱&…

作者头像 李华
网站建设 2026/7/5 0:48:01

Rust 错误类型设计:库错误要能被上层恢复

Rust 错误类型设计&#xff1a;库错误要能被上层恢复 一、错误不是只为了打印 Rust 的 Result 很适合表达失败&#xff0c;但错误类型设计不好&#xff0c;上层仍然很难处理。很多库直接返回字符串错误&#xff0c;调用方只能打印&#xff0c;无法判断是重试、提示用户&#xf…

作者头像 李华
网站建设 2026/7/5 0:45:03

构建安全登录加密体系:从传输加密到加盐哈希存储的实战指南

1. 项目概述&#xff1a;从“裸奔”到“武装到牙齿”的登录与加密最近在重构一个老项目的用户系统&#xff0c;核心任务就是“实现登录和加密功能”。这听起来像是个基础需求&#xff0c;但真做起来&#xff0c;你会发现这里面的水&#xff0c;比想象中深得多。它绝不仅仅是把密…

作者头像 李华
网站建设 2026/7/5 0:40:09

Translumo终极指南:Windows平台实时屏幕翻译的革新体验

Translumo终极指南&#xff1a;Windows平台实时屏幕翻译的革新体验 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 想象一…

作者头像 李华