我使用kops设置我的kubernetes集群,我是从本地机器上完成的。因此,我的await page.addCookie({
name: 'Valid-Cookie-Name',
value: 'Valid-Cookie-Value',
domain: 'localhost',
path: '/foo',
httponly: true,
secure: false,
expires: new Date().getTime() + (1000 * 60 * 60),
});
目录存储在我的本地计算机上,但我在.kube
中设置kops
状态存储。
我正在设置我的CI服务器,我想从该框中运行s3
命令。如何将现有状态导入该服务器?
答案 0 :(得分:12)
要运行kubectl
命令,您需要群集的apiServer URL和相关凭据进行身份验证。按惯例,这些数据存储在~/.kube/config
文件中。您也可以通过kubectl config view
命令查看它。
要在CI服务器上运行kubectl
,您需要确保~/.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}
4)使用kops export命令获取运行kubectl所需的kubecfg
kops export kubecfg ${YOUR_CLUSTER_NAME}
请参阅https://github.com/kubernetes/kops/blob/master/docs/cli/kops_export.md
现在,CI服务器上的~/.kube/config
文件应包含kubectl
访问群集所需的所有信息。
请注意,这将使用CI服务器上的默认管理员帐户。要实现更安全的CI / CD环境,您应该创建服务帐户绑定到所需的权限范围(例如命名空间或类型或资源),并将其凭据放在CI服务器计算机上。
答案 1 :(得分:0)
ImageStream
几乎不是“状态”,它只是一个客户端配置,因此可以只获取它的内容(或者如果你有更多的上下文,它的部分)并在另一台机器上使用。这是除非你想为CI创建一个专用用户(密钥/证书),在这种情况下你需要创建一个单独的凭证,如果你使用密钥/证书,他们需要为不同的证书“主题”,所以用户可以被识别为不同的用户