-
Notifications
You must be signed in to change notification settings - Fork 823
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
join 1.24版本的k8s的集群会失败 #1961
Comments
如果 1.24 的版本,secret 为空,需要手动创建吗? |
参考这里,有几种方式,这里的场景个人感觉创建 secret 比较合适(需要永久有效的token) 所以想的方法是:如果k8s 没有自动为sa创建secret(sa.secrets为空),则手动创建一个secret |
我个人赞同这一点。使用
手动创建secret的过程可以说明下么?另外通过手动创建出的secret,如何通过sa找到该secret呢? |
提交pr了:#1972 |
Echo from Kubernetes v1.24 Release Note
|
让我们先来整理下整个事件的背景。 Kubernetes社区为了提高token使用的安全性和可扩展性,提出了一个KEP-1205,旨在引入一种新的机制来使用ServiceAccount token,而不是直接将ServiceAccount生成的Secret挂载到pod中,具体方式见ServiceAccount automation。这个特性名为 随着 对于第一个目的,社区提供了 那么,我们现有就有两种方式获取token,一种是手动为ServiceAccount创建Secret;另一种是访问TokenRequest API。使用第一种方式需要由我们承担安全风险,使用第二种方式我们需要解决token过期的问题。又或者,我们可以直接disable 以上分析为后续方案的决策做准备。 |
cc @lonelyCZ @prodanlabs who might be interested in it. |
https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets 如果要解决 token 过期的问题,使用第二种方式调用 token API 好像是行不通的。官方提供了一个这样的方式来创建不过期的 token:
既然官方也提供出了这样的一个方式,我感觉没啥安全风险?个人看法😄 |
这种方式后面会不会被弃用? 如果不会,我赞成这个方案。 |
这个 PR 可以作为参考,在 1.24 更新的了对 secret 生成的描述,可以推测不会被弃用。 |
What happened:
测试了下join 1.24版本的k8s的集群,发现会失败
日志
What you expected to happen:
join 成功
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?:
排查发现是因为新版本的k8s 不会自动为sa创建secret 导致的
参考这里 :
https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets
在https://github.com/karmada-io/karmada/blob/master/pkg/util/serviceaccount.go#L76 增加当sa.secrets为空时,创建secret
再次测试,发现join 成功
是否可以这样修复?
Environment: kind
kubectl-karmada version
orkarmadactl version
): v1.2.0The text was updated successfully, but these errors were encountered: