h y p e r k u b e-一个安全的无服务器api和kubectl插件,用于存储和检索kubernetes集群凭据。hyperkube利用aws secrets manager存储凭证信息。

hyper-kube-config的Python项目详细描述


hyper kube配置

Build Status

PyPI version

hyper kube config-提供一个安全的Serverlessapi来存储和检索Kubernetes cluster config credentials。hyper kube config利用AWS Secrets Manager存储凭据信息。包括一个kubectl plugin来与hyperkube api接口。

它需要一个配置文件布局见hyperkube-config.yaml.example

hyper-kube-config

安装hyperkube kubectl插件

pip3 install hyper-kube-config 

设置~/.hyperkube-config.yaml文件

配置文件的默认位置是~/.hyperkube-config.yaml您还可以将配置文件放在不同的位置,并将该位置作为命令行选项传递-c <hyper-kube-config-location>--config <hyper-kube-config-location>

将群集和凭据发布到hyperkube存储

# with config file in default location ~/.hyperkube-config.yaml
kubectl hyperkube add --k8s-config ~/.kube/config
# with config file in default location ~/location2/.hyperkube-config.yaml# kubectl hyperkube -c ~/location2/.hyperkube-config.yaml add --k8s-config ~/.kube/config# kubectl hyperkube --config ~/location2/.hyperkube-config.yaml add --k8s-config ~/.kube/config

删除群集和凭据

kubectl hyperkube remove --cluster-to-remove 'k8s-cluster-example.cloud'

获取用户凭据

# for single cluster
kubectl hyperkube get --cluster cloud-infra.cloud > ~/.kube/config

在一个kube配置中获取多个群集的用户凭据

kubectl hyperkube get \
  --cluster cloud-infra.cloud \
  --cluster bar-cluster.cloud \
  --cluster baz-cluster.com  > ~/.kube/config

将所有集群的cred放入一个kube配置中

kubectl hyperkube get-all > ~/.kube/config

列出群集

kubectl hyperkube list

存储SSH-PEM和CA私钥并将其与集群关联

存储ssh pem
kubectl hyperkube add-pem --pem ~/.ssh/my-cluster.pem 

存储SSH Pem
kubectl hyperkube get-pem --cluster my-cluster.net

存储添加CA私钥

kubectl hyperkube add-ca-key --ca-key ca-key-file.key --cluser my-cluster.net

设置群集状态和/或环境引用

# Set arbitrary status string and environment reference for given cluster
kubectl hyperkube set-cluster-status --cluster my-cluster.net --status active --environment stage

获取环境的群集状态

# Returns list of clusters that are active for prod environment
kubectl hyperkube get-cluster-status --status active --environment prod

要求

  • Serverless-无服务器框架
  • Docker-用于无服务器部署
  • HTTPie-推荐用于API客户端
  • serverless-python-requirements插件。使用docker和pip为aws lambda函数打包更新的boto3版本。默认情况下,aws lambda boto3版本不支持aws secrets manager标记。
  • click-用于hyperkube kubectl插件
  • kubectl-1.12版或更高版本推荐用于稳定的插件支持。

部署无服务器API

sls deploy \
  --stage dev \
  --product k8s \
  --owner myteam@foo.cloud \
  --team myteam \
  --environment dev

这将启动hyperkube api。为hyperkube.yaml配置捕获api url、api密钥和stage。kubectl hyperkube命令将利用配置与存储的k8s配置交互。

serverless将启动一个AWS API Gateway来处理转发到AWS Lambda functions的api请求。dynamodb表被配置为存储非敏感的集群配置详细信息,而上传配置(密码和证书)中的敏感信息存储在AWS Secrets Manager

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用不安全的方法复制整个C结构?   java JavaFx表格视图滚动错误   java应该向应用服务器或数据库添加逻辑吗   java小程序参数标记的用途是什么?   扩展AbstractTestNGSpringContextTests时,java Autowired spring依赖项在抽象基类中始终为空   java1。4关于java版本1.3到1.4   java MVC循环依赖   Java中的oauth电子邮件同步   java Facebook/Parse登录行为异常:代理应用程序尚未安装   java JPA不持久化对象J2EE   如何使用java读取和修改存储在FTP服务器上的图像文件   java测试时为什么要创建/删除testdatabase?   CriteriaBuilder查询中不区分java重音   使用Java从http url获取文件扩展名   Java多维数组/打印空值   java Javax持久性无法在maven上编译   使用mac地址的java制造商名称   java将图像旋转到“指向”鼠标位置   tiff如何打开一个非常大的幻灯片图像,如下所示。使用Java的tif图像文件?   内存Java:是否将Xms设置为XX:PermSize或XX:MaxPermSize?