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的用户和权限管理存在的, 但是其实用户的配置都在kubeclt 的配置文件中 /etc/kubernetes/admin.conf 中 我们可以用下命令来查看当前正在用的帐号 rootk8s-master:~/.d…...
Redis 持久化机制详解
引言 Redis 是一款基于内存的高性能键值存储系统,为了在数据丢失时能快速恢复,Redis 提供了多种持久化机制。这些持久化机制可以将内存中的数据存储到磁盘上,确保即使系统重启或宕机后也能恢复数据。Redis 支持两种主要的持久化方式…...
小阿轩yx-案例:Zabbix监控kubernetes云原生环境
小阿轩yx-案例:Zabbix监控kubernetes云原生环境 前言 传统监控的本质 就是收集、分析和使用信息来观察一段时间内监控对象的运行进度,并且进行相应的决策管理的过程,监控侧重于观察特定指标。 随着云原生时代的到来 我们对监控的功能提出…...
量化交易的个人见解
程序化交易在国内兴起有些年数了,个人以为,程序化交易与量化投资的关系,在于两者侧重点有差别。程序化交易侧重于下单的动作是机器自动执行的,量化投资则侧重于投资分析的过程是通过一个量化模型来实现的,所以量化投资…...
Java集合(一)
目录 Java集合(一) 集合介绍 单列集合分类 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.创建主机,设置ip,hostname,关闭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中,用好样式表,不但可以做出意想不到的酷炫效果,有时候也能减轻开发量,可能由于你不了解某些样式使用,想破脑袋通过代码实现的效果,反倒不如别人用样式,一两句样式脚本就搞定。 Qt中ÿ…...
React源码学习(一):如何学习React源码
本系列源码学习,是基于 v16.13.1,v17.x与v16.x区别并不太大! 一、如何正确的学习React源码? 找到Github,转到React仓库,fork / clone源码:React 查看Readme,在Documentation中有Cont…...
云计算服务的底层,虚拟化技术的实现原理
虚拟化技术: 一、 从cpu说起, intel和amd等cpu制造商 为了提高其cpu对 虚拟化程序的运算速度, 给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,kube-apiserver,kube-controller-manager,kube-scheduler,kubelet,kube-proxy,containerd 2C 4G 192.168.204.130 k8s-w…...
网络通信流程
目录 ♫IP地址 ♫子网掩码 ♫MAC地址 ♫相关设备 ♫ARP寻址 ♫网络通信流程 ♫IP地址 我们已经知道 IP 地址由网络号主机号组成,根据 IP 地址的不同可以有5钟划分网络号和主机号的方案: 其中,各类地址的表示范围是: 分类范围适用…...
数据结构一:绪论
(一)数据结构的基本概念 1.相关名词 【1】数据 1.信息的载体,描述客观事物 2.能被输入到计算机中 3.能被计算机程序识别和处理的符号的集合。 【2】数据元素 1.数据的一个“个体” 2.数据的基本单位 3.有时候也被称为元素、结点、顶点…...
使用OpenFeign在不同微服务之间传递用户信息时失败
文章目录 起因原因解决方法: 起因 从pay-service中实现下单时,会调用到user-service中的扣减余额。 因此这里需要在不同微服务之间传递用户信息。 但是user-service中始终从始至终拿不到user的信息。 原因 在pay-service中,不仅要Enable O…...
js中【Worker】相关知识点详细解读
什么是 JavaScript 中的 Worker? JavaScript 中的 Worker 是一个可以在后台线程中运行代码的 API,这样可以避免主线程(通常是 UI 线程)被阻塞。使用 Worker 时,JavaScript 可以在多线程环境中工作,解决了单…...
使用Apify加载Twitter消息以进行微调的完整指南
# 使用Apify加载Twitter消息以进行微调的完整指南## 引言在自然语言处理领域,微调模型以适应特定任务是提升模型性能的常见方法。本文将介绍如何使用Apify从Twitter导出聊天信息,以便进一步进行微调。## 主要内容### 使用Apify导出推文首先,我…...
【C++算法】滑动窗口
长度最小的子数组 题目链接: 209. 长度最小的子数组 - 力扣(LeetCode)https://leetcode.cn/problems/minimum-size-subarray-sum/description/ 算法原理 代码步骤: 设置left0,right0设置sum0,len0遍历l…...
(c++)猜数字(含根据当前时间生成伪随机数代码)
#include<iostream> #include<ctime>/*用srand((unsigned int)time(NULL));要包含这个头文件,如果没有这两个,rand()函数会一直生成42这个伪随机数。*/using namespace std;int main() {srand((unsigned int)time(NULL));//种子,…...
Pixel Epic智识终端实战教程:从安装到生成首份研报的完整操作流程
Pixel Epic智识终端实战教程:从安装到生成首份研报的完整操作流程 1. 认识你的像素冒险装备 Pixel Epic智识终端是一款将研究报告生成过程游戏化的AI工具。想象你是一位勇者,而AI是你的贤者顾问,你们将一起在知识的像素大陆上冒险。 核心特…...
3步掌握TIDAL无损音乐下载:打造个人高品质音乐库的智能助手
3步掌握TIDAL无损音乐下载:打造个人高品质音乐库的智能助手 【免费下载链接】tidal-dl-ng TIDAL Media Downloader Next Generation! Up to HiRes / TIDAL MAX 24-bit, 192 kHz. 项目地址: https://gitcode.com/gh_mirrors/ti/tidal-dl-ng 还在为无法离线保存…...
【Git 内部原理】`.git` 是怎么记住所有版本的
每次 git commit,Git 都说"已记录"。但你有没有想过:改了几十次、几百次,Git 是怎么全记住的?难道每次提交,它都复制一份完整项目? 这篇文章不讲命令,也不背概念。 我们直接打开…...
高效办公:浏览器扩展无需安装桌面软件的全功能解决方案
高效办公:浏览器扩展无需安装桌面软件的全功能解决方案 【免费下载链接】se-office se-office扩展,提供基于开放标准的全功能办公生产力套件,基于浏览器预览和编辑office。 项目地址: https://gitcode.com/gh_mirrors/se/se-office 在…...
基于STM32LXXX的数字电位器(AD5245BRJZ50-RL7)驱动应用程序设计
一、简介: D5245BRJZ50-RL7 是一款 256 抽头、50kΩ 的 IC 数字电位器,采用 SOT-23-8 封装,非常适合在 STM32Lxxx 平台上用于需要高精度、低功耗调节的应用,如传感器校准或电源调节。 二、主要技术特性: 基本特性:单通道、256 位、50kΩ 线性电阻,30% 的精度足以满足一…...
基于浏览器端异步检测的B站用户成分分析方案:社区互动效率提升92%的技术实现
基于浏览器端异步检测的B站用户成分分析方案:社区互动效率提升92%的技术实现 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分油猴脚本,主要为原神玩家识别 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-comment-checker …...
3个维度破解流放之路Build困境:让玩家告别数值迷雾与规划难题
3个维度破解流放之路Build困境:让玩家告别数值迷雾与规划难题 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding Path of Building(简称PoBÿ…...
如何快速上手openpilot:新手必看的5大实用技巧指南
如何快速上手openpilot:新手必看的5大实用技巧指南 【免费下载链接】openpilot openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300 supported cars. 项目地址: https://gitcode.com/GitHub_Trending/o…...
TranslucentTB安装故障排除指南:从问题诊断到系统修复
TranslucentTB安装故障排除指南:从问题诊断到系统修复 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 当你尝试安装Transluce…...
焦点国际冲刺港股:年营收5.3亿 利润8091万 周航夫妇控制99%股权
雷递网 雷建平 4月5日焦点国际有限公司(简称:“焦点国际”)日前更新招股书,准备在港交所上市。年营收5.3亿 利润8091万焦点国际成立于2014年,主要从事制造及销售吸收性卫生产品,以及销售卫生产品材料。最初…...
