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 Kafka producer大量内存使用(泄漏?)   java NullPointerException。。。正在插入数据但无法检索数据[Mysql DB]   java spring+jpa+hibernate=没有可用于当前线程的实际事务的EntityManager无法可靠地处理“persist”调用   getelementbyid在没有ID的情况下如何在java中使用GetElementsById   java有没有一种使用WatchService强制轮询的方法?   java将值从jframe传递给另一个jframe并使用它   Java/Groovy中带重试的反应式事件处理   具有两个包装器元素的java Jackson XML ArrayList输出   java总是在范围内使用不同的随机元素   取消选择java下拉列表值   多线程如何在Java中为对象的不同成员拥有不同的同步块   java如何使用多线程从文本文件中读取输入   java Spring启动附加崩溃命令   java使用公共或单独的actionPerfomed方法有什么区别   java用Spring3.0中的SpEL替换JSP中的EL   java作为windows服务运行应用程序时无法访问共享文件夹   java xml 1.1规范中的“解析数据”是什么意思?   以编程方式设置JComboBox索引时java触发ItemListener   java Android WebView:只加载HTML,不加载JS或CSS(在某些设备中)   Java:计算do/while循环的数量