Ale*_*int 1 kubernetes google-kubernetes-engine kubectl
我正在尝试从我的CI系统中调用kubectl。我希望使用Google云服务帐户进行身份验证。我有一个秘密管理系统,可以将秘密注入到我的CI系统中。
但是,我的CI系统没有安装gcloud,所以我不想安装它。它仅包含kubectl。有什么方法可以直接在kubectl中使用包含gcloud服务帐户(而非kubernetes服务帐户)的certificate.json文件?
跳过gcloud CLI的最简单方法是使用该--token选项。您可以通过创建服务帐户并将其绑定到a ClusterRole或Role使用ClusterRoleBinding或RoleBinding来使用RBAC获得令牌。
然后从命令行:
$ kubectl --token <token-from-your-service-account> get pods
Run Code Online (Sandbox Code Playgroud)
您仍然需要context在其中~/.kube/config:
- context:
cluster: kubernetes
name: kubernetes-token
Run Code Online (Sandbox Code Playgroud)
否则,您将必须使用:
$ kubectl --insecure-skip-tls-verify --token <token-from-your-service-account> -s https://<address-of-your-kube-api-server>:6443 get pods
Run Code Online (Sandbox Code Playgroud)
请注意,如果您不希望令牌显示在日志中,则可以执行以下操作:
$ kubectl --token $(cat /path/to/a/file/where/the/token/is/stored) get pods
Run Code Online (Sandbox Code Playgroud)
另外,请注意,ps -Af在整个kubectl过程的生命周期中,这并不能阻止您在盒子上奔跑并从那里抓取令牌(旋转令牌是一个好主意)
编辑:
您可以使用--token-auth-file=/path/to/a/file/where/the/token/is/storedwith kubectl来避免通过$(cat /path/to/a/file/where/the/token/is/stored)
| 归档时间: |
|
| 查看次数: |
541 次 |
| 最近记录: |