当前位置: 首页 > news >正文

K8S - 用service account 登陆kubectl

刚安装好k8s时
我就可以用kubectl 在master server里管理k8s的资源。

这时我们是感觉不到 k8s的用户和权限管理存在的, 但是其实用户的配置都在kubeclt 的配置文件中
/etc/kubernetes/admin.conf 中

我们可以用下命令来查看当前正在用的帐号

root@k8s-master:~/.docker$ kubectl config view --minify --output 'jsonpath={.users[*].name}'
kubernetes-admin

当我们把这个配置复制到另1台机器上, 那么那台机器也可以用kubernetes-admin 来登陆kubectl

参考:
K8S - 用kubectl远程访问内网的k8s集群

但是其实kubernetes-admin 是k8s的一个特殊帐号, 并不是1个service account

本文会介绍如何切换1个service account 去登陆kubectl



创建1个namespace

apiVersion: v1
kind: Namespace
metadata:name: my-namespace



创建1个service account

apiVersion: v1
kind: ServiceAccount
metadata:name: sa-adminnamespace: my-namespace




查看被创建的service account

gateman@MoreFine-S500: service-account$ kubectl get sa -n my-namespace
NAME       SECRETS   AGE
default    1         80m
sa-admin   1         23s



获得token

其实当1个service account 被创建时, 1个关于这个service account token 的secret 也会被创建

gateman@MoreFine-S500: clusterolebinding$ kubectl get secret -n my-namespace
NAME                   TYPE                                  DATA   AGE
default-token-gshz4    kubernetes.io/service-account-token   3      94m
sa-admin-token-vrvcv   kubernetes.io/service-account-token   3      14m

这个名字可以用下面命令获取:

gateman@MoreFine-S500: service-account$ kubectl get serviceaccount sa-admin -n my-namespace -o jsonpath='{.secrets[0].name}'
sa-admin-token-vrvcv

用下面命令可以获得token的值

kubectl get secret sa-admin-token-vrvcv -n my-namespace -o jsonpath='{.data.token}' | base64 --decode



查看当前 所使用的kubectl 配置文件位置

gateman@MoreFine-S500: clusterolebinding$ echo $KUBECONFIG
/home/gateman/conf/admin.conf

顺手备份

gateman@MoreFine-S500: clusterolebinding$ cp /home/gateman/conf/admin.conf /home/gateman/conf/k8s-admin.conf



准备配置文件

k8s-sa-admin.conf

apiVersion: v1
kind: Config
clusters:
- cluster:certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUxxxserver: https://34.142.35.168:6443name: kubernetes
contexts:
- context:cluster: kubernetesnamespace: my-namespaceuser: sa-adminname: sa-admin@kubernetes
current-context: sa-admin@kubernetes
users:
- name: sa-adminuser:token: eyJhbGciOiJSUzI1NiIsImtpZCI6InRNZFxxxx

其中 cluster 的certificate-authority-data 抄 k8s默认配置那个就行

关键是 contexts 和 user 的配置要改成 我们新service account的, token 在上面介绍过怎么拿到了



使用这个配置文件

很简单 , 修改KUBECONFIG 环境变量就好

export KUBECONFIG=/home/gateman/conf/k8s-sa-admin.conf



测试

gateman@MoreFine-S500: clusterolebinding$ kubectl get pods
No resources found in my-namespace namespace.gateman@MoreFine-S500: clusterolebinding$ kubectl get pods --all-namespaces
NAMESPACE       NAME                                         READY   STATUS      RESTARTS         AGE
default         deployment-bq-api-service-6f6ffc7866-58drw   1/1     Running     5 (5d23h ago)    11d
default         deployment-bq-api-service-6f6ffc7866-8djx9   1/1     Running     6 (5d23h ago)    31d
default         deployment-bq-api-service-6f6ffc7866-mxwcq   1/1     Running     16 (5d23h ago)   75d
default         deployment-bq-api-service-6f6ffc7866-x8pl6   1/1     Running     3 (5d23h ago)    11d
default         deployment-cloud-order-5f46d97659-2d7nk      1/1     Running     0                22h
default         deployment-cloud-order-5f46d97659-j7dj8      1/1     Running     0                22h
default         deployment-cloud-order-5f46d97659-w7xlf      1/1     Running     0                22h
default         deployment-fluentd-test-56bd589c6-dptxl      1/1     Running     1 (5d23h ago)    6d
default         dns-test                                     0/1     Completed   0                28d
ingress-nginx   ingress-nginx-controller-72dmb               1/1     Running     17 (5d23h ago)   82d
kube-flannel    kube-flannel-ds-5xtgt                        1/1     Running     24 (5d23h ago)   190d
kube-flannel    kube-flannel-ds-7swr2                        1/1     Running     36 (5d23h ago)   190d
kube-flannel    kube-flannel-ds-jwb9x                        1/1     Running     32 (5d23h ago)   190d
kube-flannel    kube-flannel-ds-tqt98                        1/1     Running     27 (5d23h ago)   183d
kube-system     coredns-64897985d-7bgqz                      1/1     Running     16 (5d23h ago)   79d
kube-system     coredns-64897985d-pzkzx                      1/1     Running     3 (5d23h ago)    11d
kube-system     etcd-k8s-master                              1/1     Running     32 (5d23h ago)   203d
kube-system     kube-apiserver-k8s-master                    1/1     Running     34 (5d23h ago)   203d
kube-system     kube-controller-manager-k8s-master           1/1     Running     32 (5d23h ago)   203d
kube-system     kube-proxy-68qst                             1/1     Running     34 (5d23h ago)   203d
kube-system     kube-proxy-fb5zf                             1/1     Running     26 (5d23h ago)   183d
kube-system     kube-proxy-r5f7w                             1/1     Running     25 (5d23h ago)   203d
kube-system     kube-proxy-rvj7c                             1/1     Running     32 (5d23h ago)   203d
kube-system     kube-scheduler-k8s-master                    1/1     Running     32 (5d23h ago)   203dgateman@MoreFine-S500: clusterolebinding$ kubectl get nodes
NAME         STATUS   ROLES                  AGE    VERSION
k8s-master   Ready    control-plane,master   203d   v1.23.6
k8s-node0    Ready    <none>                 203d   v1.23.6
k8s-node1    Ready    <none>                 203d   v1.23.6
k8s-node3    Ready    <none>                 183d   v1.23.6

掂!

相关文章:

K8S - 用service account 登陆kubectl

刚安装好k8s时 我就可以用kubectl 在master server里管理k8s的资源。 这时我们是感觉不到 k8s的用户和权限管理存在的&#xff0c; 但是其实用户的配置都在kubeclt 的配置文件中 /etc/kubernetes/admin.conf 中 我们可以用下命令来查看当前正在用的帐号 rootk8s-master:~/.d…...

Redis 持久化机制详解

引言 Redis 是一款基于内存的高性能键值存储系统&#xff0c;为了在数据丢失时能快速恢复&#xff0c;Redis 提供了多种持久化机制。这些持久化机制可以将内存中的数据存储到磁盘上&#xff0c;确保即使系统重启或宕机后也能恢复数据。Redis 支持两种主要的持久化方式&#xf…...

小阿轩yx-案例:Zabbix监控kubernetes云原生环境

小阿轩yx-案例&#xff1a;Zabbix监控kubernetes云原生环境 前言 传统监控的本质 就是收集、分析和使用信息来观察一段时间内监控对象的运行进度&#xff0c;并且进行相应的决策管理的过程&#xff0c;监控侧重于观察特定指标。 随着云原生时代的到来 我们对监控的功能提出…...

量化交易的个人见解

程序化交易在国内兴起有些年数了&#xff0c;个人以为&#xff0c;程序化交易与量化投资的关系&#xff0c;在于两者侧重点有差别。程序化交易侧重于下单的动作是机器自动执行的&#xff0c;量化投资则侧重于投资分析的过程是通过一个量化模型来实现的&#xff0c;所以量化投资…...

Java集合(一)

目录 Java集合&#xff08;一&#xff09; 集合介绍 单列集合分类 Collection接口 创建Collection实现类对象 常用方法 迭代器 基本使用 迭代器的执行过程 迭代器底层原理 集合中的并发修改异常及原因分析 List接口 ArrayList类 介绍 常用方法 遍历集合 Array…...

车载软件架构 --- SOA设计与应用(下)

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…...

网络原理 IP协议与以太网协议

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 JavaEE专栏:JavaEE 关注博主带你了解更多数据结构知识 目录 1.网络层 IP协议 1.IP协议格式 2.地址管理 2.1 IP地址 2.2 解决IP地址不够用的问题 2.3NAT网络地址转换 2.4网段划分 3.路由选择…...

k8s的安装

k8s的安装 1.创建主机&#xff0c;设置ip,hostname&#xff0c;关闭firewalld,selinux,NetworkManager 编号主机名称ip1k8s-master192.168.118.662k8s-node01192.168.118.773k8s-node02192.168.118.88 2.设置主机之间的ssh免密 [rootk8s-master ~]# ssh-keygen [rootk8s-ma…...

Qt中样式表常用的属性名称定义

Qt中&#xff0c;用好样式表&#xff0c;不但可以做出意想不到的酷炫效果&#xff0c;有时候也能减轻开发量&#xff0c;可能由于你不了解某些样式使用&#xff0c;想破脑袋通过代码实现的效果&#xff0c;反倒不如别人用样式&#xff0c;一两句样式脚本就搞定。 Qt中&#xff…...

React源码学习(一):如何学习React源码

本系列源码学习&#xff0c;是基于 v16.13.1&#xff0c;v17.x与v16.x区别并不太大&#xff01; 一、如何正确的学习React源码&#xff1f; 找到Github&#xff0c;转到React仓库&#xff0c;fork / clone源码&#xff1a;React 查看Readme&#xff0c;在Documentation中有Cont…...

云计算服务的底层,虚拟化技术的实现原理

虚拟化技术&#xff1a; 一、 从cpu说起&#xff0c; intel和amd等cpu制造商 为了提高其cpu对 虚拟化程序的运算速度&#xff0c; 给cpu硬件里面 增加了指令集 VMLAUNCH, VMRESUME, VMEXIT, VMXOFF 这些指令集称为硬件辅助虚拟化技术的指令集。 ---------------------…...

大数据Flink(一百一十六):Flink SQL的时间属性

文章目录 Flink SQL的时间属性 一、Flink 三种时间属性简介 二、Flink 三种时间属性的应用场景 三、​​​​​​​SQL 指定时间属性的两种方式 四、​​​​​​​​​​​​​​SQL 处理时间DDL定义 五、​​​​​​​​​​​​​​SQL 事件时间DDL定义 Flink SQL的时…...

Ansible自动化部署kubernetes集群

机器环境介绍 1.1. 机器信息介绍 IP hostname application CPU Memory 192.168.204.129 k8s-master01 etcd&#xff0c;kube-apiserver&#xff0c;kube-controller-manager&#xff0c;kube-scheduler,kubelet,kube-proxy,containerd 2C 4G 192.168.204.130 k8s-w…...

网络通信流程

目录 ♫IP地址 ♫子网掩码 ♫MAC地址 ♫相关设备 ♫ARP寻址 ♫网络通信流程 ♫IP地址 我们已经知道 IP 地址由网络号主机号组成&#xff0c;根据 IP 地址的不同可以有5钟划分网络号和主机号的方案&#xff1a; 其中&#xff0c;各类地址的表示范围是&#xff1a; 分类范围适用…...

数据结构一:绪论

&#xff08;一&#xff09;数据结构的基本概念 1.相关名词 【1】数据 1.信息的载体&#xff0c;描述客观事物 2.能被输入到计算机中 3.能被计算机程序识别和处理的符号的集合。 【2】数据元素 1.数据的一个“个体” 2.数据的基本单位 3.有时候也被称为元素、结点、顶点…...

使用OpenFeign在不同微服务之间传递用户信息时失败

文章目录 起因原因解决方法&#xff1a; 起因 从pay-service中实现下单时&#xff0c;会调用到user-service中的扣减余额。 因此这里需要在不同微服务之间传递用户信息。 但是user-service中始终从始至终拿不到user的信息。 原因 在pay-service中&#xff0c;不仅要Enable O…...

js中【Worker】相关知识点详细解读

什么是 JavaScript 中的 Worker&#xff1f; JavaScript 中的 Worker 是一个可以在后台线程中运行代码的 API&#xff0c;这样可以避免主线程&#xff08;通常是 UI 线程&#xff09;被阻塞。使用 Worker 时&#xff0c;JavaScript 可以在多线程环境中工作&#xff0c;解决了单…...

使用Apify加载Twitter消息以进行微调的完整指南

# 使用Apify加载Twitter消息以进行微调的完整指南## 引言在自然语言处理领域&#xff0c;微调模型以适应特定任务是提升模型性能的常见方法。本文将介绍如何使用Apify从Twitter导出聊天信息&#xff0c;以便进一步进行微调。## 主要内容### 使用Apify导出推文首先&#xff0c;我…...

【C++算法】滑动窗口

长度最小的子数组 题目链接&#xff1a; 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09;https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 算法原理 代码步骤&#xff1a; 设置left0&#xff0c;right0设置sum0&#xff0c;len0遍历l…...

(c++)猜数字(含根据当前时间生成伪随机数代码)

#include<iostream> #include<ctime>/*用srand((unsigned int)time(NULL));要包含这个头文件&#xff0c;如果没有这两个&#xff0c;rand()函数会一直生成42这个伪随机数。*/using namespace std;int main() {srand((unsigned int)time(NULL));//种子&#xff0c;…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖

在前面的练习中&#xff0c;每个页面需要使用ref&#xff0c;onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入&#xff0c;需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...