djt*_*djt 10 kubernetes kubectl kops
我使用kops设置我的kubernetes集群,我是从本地机器上完成的.所以我的.kube目录存储在我的本地机器上,但我设置kops了状态存储s3.
我现在正在设置我的CI服务器,我想kubectl从该框中运行我的命令.如何将现有状态导入该服务器?
Par*_*ano 13
要运行kubectl命令,您将需要群集的apiServer URL和相关凭据进行身份验证.按惯例,这些数据存储在~/.kube/config文件中.您也可以通过kubectl config view命令查看它.
要kubectl在CI服务器上运行,您需要确保该~/.kube/config文件包含kubectl客户端所需的所有信息.
使用kops,一个简单的天真解决方案是:
1)在CI服务器上安装kops,kubectl
2)在CI服务器上配置AWS访问凭证(通过IAM角色或简单地使用env vars),确保它可以访问您的s3状态存储路径
3)为kops设置env var以访问您的集群:
export NAME=${YOUR_CLUSTER_NAME}
export KOPS_STATE_STORE=s3://${YOUR_CLUSTER_KOPS_STATE_STORE}
Run Code Online (Sandbox Code Playgroud)
4)使用kops export命令获取运行kubectl所需的kubecfg
kops export kubecfg ${YOUR_CLUSTER_NAME}
Run Code Online (Sandbox Code Playgroud)
请参阅https://github.com/kubernetes/kops/blob/master/docs/cli/kops_export.md
现在,~/.kube/configCI服务器上的文件应包含kubectl访问群集所需的所有信息.
请注意,这将使用CI服务器上的默认管理员帐户.要实现更安全的CI/CD环境,您应该创建服务帐户绑定到所需的权限范围(例如,名称空间或类型或资源),并将其凭据放在CI服务器计算机上.
| 归档时间: |
|
| 查看次数: |
4850 次 |
| 最近记录: |