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

如何利用curl命令访问Kubernetes API server

首先查看kubectl的配置文件是否完整:
cat ~/.kube/config

然后,从中提取需要的证书和key, 所有步骤已经封装到这个shell脚本中:
最后的curl命令改为需要的url和参数即可。

把证书设为环境变量。在设置时候请检查每一个参数

export clientcert=$(grep client-cert ~/.kube/config |cut -d" " -f 6)
#echo $clientcert

将 client-key-data 保存为环境变量

export clientkey=$(grep client-key-data ~/.kube/config |cut -d" " -f 6)
#echo $clientkey

然后是 certificate-authority-data

export certauth=$(grep certificate-authority-data ~/.kube/config |cut -d" " -f 6)
#echo $certauth

加密这些变量,供 curl 使用:

echo $clientcert | base64 -d > ./client.pem
echo $clientkey | base64 -d > ./client-key.pem
echo $certauth | base64 -d > ./ca.pem

获取API URL:

export apiurl=$(kubectl config view | grep server | awk '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 2}̲') #echo "apiur…{apiurl}"

使用 curl 和刚刚加密的密钥文件来访问 API server:

curl --cert ./client.pem --key ./client-key.pem --cacert ./ca.pem ${apiurl}/version

完整脚本:

#!/bin/bash### 如何利用curl命令访问Kubernetes API server#把证书设为环境变量。在设置时候请检查每一个参数
export clientcert=$(grep client-cert ~/.kube/config |cut -d" " -f 6)
#echo $clientcert#将 client-key-data 保存为环境变量
export clientkey=$(grep client-key-data ~/.kube/config |cut -d" " -f 6)
#echo $clientkey#然后是 certificate-authority-data
export certauth=$(grep certificate-authority-data ~/.kube/config |cut -d" " -f 6)
#echo $certauth# 加密这些变量,供 curl 使用:
echo $clientcert | base64 -d > ./client.pem
echo $clientkey  | base64 -d > ./client-key.pem
echo $certauth   | base64 -d > ./ca.pem#获取API URL:
export apiurl=$(kubectl config view | grep server  | awk '{print $2}')
#echo "apiurl=${apiurl}"#使用 curl 和刚刚加密的密钥文件来访问 API server:
curl --cert ./client.pem --key ./client-key.pem --cacert ./ca.pem ${apiurl}/version

相关文章:

  • 2024电工杯A题详细思路代码分析数学建模:园区微电网风光储协调优化配置
  • SpringBoot多数据源启动出现循环依赖问题
  • AI网络爬虫:批量爬取电视猫上面的《庆余年》分集剧情
  • uniapp 快手小程序隐藏scrollbar
  • 59. UE5 RPG AI行为树的任务
  • 【AD21】BOM表文件的输出
  • 2024年ai知识库:特点、应用与搭建
  • 12、电科院FTU检测标准学习笔记-双路电源自动切换
  • SQLite数据库免改造透明加密解决方案:给数据加把锁
  • Flutter容器
  • SpheroGPT: 声控自然语言编程 AI 玩具 Demo 具身智能 图文解说 完全开源机器人
  • 【学习笔记】Windows GDI绘图(一)图形概述、直线、曲线和图形
  • Mysql与Navicat可视化命令大全 ----项目实战
  • java String的Split方法, 分割字符时,保留最后的空字符串
  • VLAN---虚拟局域网
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【面试系列】之二:关于js原型
  • 11111111
  • Codepen 每日精选(2018-3-25)
  • Consul Config 使用Git做版本控制的实现
  • Java超时控制的实现
  • Laravel 菜鸟晋级之路
  • Linux下的乱码问题
  • magento 货币换算
  • PAT A1050
  • Spark学习笔记之相关记录
  • Yeoman_Bower_Grunt
  • 软件开发学习的5大技巧,你知道吗?
  • 深入浏览器事件循环的本质
  • 树莓派 - 使用须知
  • 听说你叫Java(二)–Servlet请求
  • 关于Android全面屏虚拟导航栏的适配总结
  • #07【面试问题整理】嵌入式软件工程师
  • #if 1...#endif
  • #stm32整理(一)flash读写
  • (11)iptables-仅开放指定ip访问指定端口
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (附源码)spring boot网络空间安全实验教学示范中心网站 毕业设计 111454
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (简单) HDU 2612 Find a way,BFS。
  • (七)c52学习之旅-中断
  • (一)Dubbo快速入门、介绍、使用
  • (译) 函数式 JS #1:简介
  • (原)本想说脏话,奈何已放下
  • (转)详解PHP处理密码的几种方式
  • *p++,*(p++),*++p,(*p)++区别?
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET C# 配置 Options
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .net 获取url的方法
  • .NET 漏洞分析 | 某ERP系统存在SQL注入
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .NET分布式缓存Memcached从入门到实战
  • .NET上SQLite的连接
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?