首页 > 系统相关 >开源免费:分享powershell读写k8s的etcd的脚本库

开源免费:分享powershell读写k8s的etcd的脚本库

时间:2023-03-14 15:22:37浏览次数:41  
标签:脚本 URL CLIENT etcd k8s powershell

 

 

powershell etcd read write put get del kubernetes k8s 读写 博客园


---【前言】---

 

篡改记忆=写入你脑仁,这是一项可怕的技术!
它可以很容易把猫的爸爸,篡改成狗狗的儿子。让你的情人轻易地变成你的仇人!
还不明白?很明显k8s的脑仁是etcd


---【正文】---

系统需求:
win+powershell v5.x
win+powershell v7.x
linux+powershell v7.x
支持osx
支持树莓派
支持arm cpu


支持etcd版本:
3.4.x
3.5.x

 

版本低的话,按照下述需要修改脚本:
gRPC gateway endpoint has changed since etcd v3.3:

etcd v3.2 or before uses only [CLIENT-URL]/v3alpha/*.
etcd v3.3 uses [CLIENT-URL]/v3beta/* while keeping [CLIENT-URL]/v3alpha/*.
etcd v3.4 uses [CLIENT-URL]/v3/* while keeping [CLIENT-URL]/v3beta/*.
[CLIENT-URL]/v3alpha/* is deprecated.
etcd v3.5 or later uses only [CLIENT-URL]/v3/*.
[CLIENT-URL]/v3beta/* is deprecated.

 

脚本特色:
支持http,支持无账号密码。支持账号密码。

 

脚本列表:
del-etcdkey.ps1
get-etcdhealth.ps1
get-etcdkey.ps1
get-etcdversion.ps1
list-etcdkey.ps1
put-etcdkey.ps1


下载:

https://gitee.com/chuanjiao10/powershell/tree/master/nosql/etcd


反馈,或新需求:
QQ群号=183173532

后续会增加若干metrics监控,备份,运维脚本,或参数。
而watch-key,get key的历史记录,这些脚本有必要吗?我不知道。

轮询key的话。线程空闲后,还可以干别的活。
因为watch-key是阻塞的。watch几个key,需要用到一个线程,并且这个线程一直在空等,我看不如轮询。
欢迎入群讨论。


---【k8s版etcd】---

系统需求:
win+powershell v7.x
linux+powershell v7.x
支持osx
支持树莓派
支持arm cpu

 

支持etcd版本:
3.4.x
3.5.x

 

支持k8s版本:
1.17及以上


脚本特色:
不支持账号密码登录etcd。支持k8s的https私钥认证,因为这些rsa的key本身就是公私钥认证,比密码更安全。

 

脚本列表:
del-k8skey.ps1
get-k8shealth.ps1
get-k8skey.ps1
list-k8skey.ps1
put-k8skey.ps1

 

下载:

https://gitee.com/chuanjiao10/powershell/tree/master/nosql/k8setcd

 

用法:
1 在win上安装powershell v7.3.x

在linux上一键安装powershell v7.3.x
https://gitee.com/chuanjiao10/kasini3000_agent_linux
因为powershell v7新增了个跳过ca认证的参数。假如写脚本去兼容psv5,写起来比较麻烦,索性暂时不支持ps v5了。

2 首先需要合并cert和私钥。在k8s的master上:

openssl pkcs12 -export \
-inkey /etc/kubernetes/pki/etcd/server.key \
-in /etc/kubernetes/pki/etcd/server.crt \
-out ./k8s.pfx

 


然后把【k8s.pfx】复制到任意win,linux机子上。

3 用win,linux版powershell运行:

$global:endpoints = 'https://192.168.1.2,https://192.168.1.3'
./put-k8skey.ps1 -k '窃脑宅男' -v '食/脑-丧\B' -pfx './k8s.pfx'

./get-k8skey.ps1 -k '窃脑宅男' -pfx './k8s.pfx'

$这是一台真实的k8s = ./get-k8sKey.ps1 './k8s.pfx' -k '/registry/apiregistration.k8s.io/apiservices/v1.batch'
$b = $这是一台真实的k8s | ConvertFrom-Json
$b.metadata.managedFields

 

返回:

manager : kube-apiserver
operation : Update
apiVersion : apiregistration.k8s.io/v1
time : 2022/7/23 7:51:06
fieldsType : FieldsV1
fieldsV1 : @{f:metadata=; f:spec=}

 

 

---【后记】---

 

问:为什么不用etcdctl,而要编写读写etcd的库脚本?
绕过k8s的api和授权,去读写值,无疑是最方便的。
以前我用etcdctl,但还是离不开脚本调用它。
比如shell,就需要总是调用curl和jg这两个进程。
而powershell内置的相关命令,是线程级别的,不需要总是fork进程,相当于费内存省cpu。这对于批量读写etcd,还是能省不少cpu的。
总之,etcdctl没有这个功能:把json解析成powershell哈希表对象。


etcd作为键值对数据库,值本身并不支持存储powershell对象。
而要实现“存储ps对象的值”,需要再套一个序列化脚本,这也需要写脚本。


请问,绕过k8s的api,用脚本去读写etcd的人多起来后,k8s会不会额外加密?来故意设置障碍?

最后:
有了这些库脚本,再加上【kasini3000库】,很容易实现【etcd扩容,缩容】,【etcd备份,恢复】,【从外部数据库,ssh远程给脚本传值,直接读写k8s,实现某个功能】。

 

标签:脚本,URL,CLIENT,etcd,k8s,powershell
From: https://www.cnblogs.com/piapia/p/17215047.html

相关文章

  • K8S部署应用详解
    #前言首先以SpringBoot应用为例介绍一下k8s的发布步骤。1.从代码仓库下载代码,比如GitLab;2.接着是进行打包,比如使用Maven;3.编写Dockerfile文件,把步骤2产生的包制作成镜像......
  • K8s
    k8s安装想用K8s,还得先会Docker吗?其实完全没必要Docker安装和加入K8S安装k8s、docker ......
  • 聊聊如何在K8S中实现会话保持
    前言故事的起因是朋友所在的部门最近基于auth2实现单点登录,他们在测试环境单点登录,运行得好好的,但他们把单点登录上到预发布环境,发现单点登录不好使了。他们有部分系统是......
  • K8S-Helm
    一.helm概述1.1什么是helm在没使用helm之前,向kubernetes部署应用,我们要依次部署deployment、svc等,步骤较繁琐。随着很多项目微服务化,复杂的应用在容器中部署以......
  • 基于Kubernetes(k8s)部署Dubbo+Nacos服务
    一、说明本文介绍基于Kubernetes(k8s)环境集成阿里云私有镜像仓库来部署一套Dubbo+Nacos的微服务系统,并使用KubernetesDNS以及port-forward的方式来打通网络......
  • K8S中HPA详解
    一、HPA解决的问题HPA全称是HorizontalPodAutoscaler,也就是对k8s的workload的副本数进行自动水平扩缩容(scale)机制,也是k8s里使用需求最广泛的一种Autoscaler机制,在开始......
  • Rancher管理K8S
    一、Rancher简介Rancher是一个开源的企业级多集群Kubernetes管理平台,实现了Kubernetes集群在混合云+本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数......
  • 【云原生】k8s 环境快速部署(一小时以内部署完)
    目录1)基于ansible一键部署k8s流程图2)安装ansible3)下载4)修改配置1、修改节点信息,配置文件:/etc/ansible/hosts2、修改install-k8s/init/templates/hosts5)导镜像5)执行部署6)......
  • K8S 性能优化 - OS sysctl 调优
    前言K8S性能优化系列文章,本文为第一篇:OSsysctl性能优化参数最佳实践。参数一览sysctl调优参数一览#KubernetesSettingsvm.max_map_count=262144kernel.softl......
  • Etcd备份脚本
    点击查看代码[root@master0share]#catetcdbak.sh#!/bin/bash-v#EtcdtimescriptsbackupautherDATE=`date+%Y-%m-%d_%H-%M-%S`NODE_IPS="192.168.201.60"C......