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创建猜谜游戏程序   JavaWebSocketContainer。connectToServer似乎挂起了   如何在java中中断函数   java c#socket client multiple BeginSend()未到达服务器   不可见的组件然后在Java中的窗格之间切换   java在应用程序类中使用静态接口安全吗?   java等待函数完成,直到回调到来   使用DataOutputStream时的java新行,Android   java服务对象的定义是什么?   基于视图的javahibernate复合密钥   java将varchar连接到char在JPA(oracle)中不起作用   如何在java中通过point类读取多个点?