我有一个k8s集群与应用程序数据库和一个fastapi应用程序部署到数字海洋。我正在使用terraform创建和修改我的资源。我已经注意到,我总是运行terraform计划或应用除了更改配置,它有时会改变.kubeconfig terraform计划的输出显示类似的东西:
Terraform detected the following changes made outside of Terraform since the last "terraform apply" which may have affected this plan:
# module.kubernetes_cluster.digitalocean_kubernetes_cluster.kubernetes_cluster has changed
~ resource "digitalocean_kubernetes_cluster" "kubernetes_cluster" {
id = "<cluster_id>"
~ kube_config = (sensitive value)
name = "<cluster-name>"
tags = [
"<tag>",
]
# (14 unchanged attributes hidden)
# (2 unchanged blocks hidden)
}
然后再更改资源。
我比较了terraform apply
命令前后的.kubeconfig,它改变了一个管理用户令牌和一个集群服务器。
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: no-change
server: change!
name: no-change
contexts:
- context:
cluster: no-change
user: no-change
name: no-change
current-context: no-change
kind: Config
preferences: {}
users:
- name: no-change
user:
token: change!
两个值都在变化正常吗?什么时候会发生?每次发生这种情况时,本地和存储库管道上的所有上下文都需要更新吗?
1条答案
按热度按时间ruyhziif1#
这正常吗?是的,我想是的。
数字海洋可能使用短暂的令牌,因此这是正常的。
关键是每次要连接到集群时都要调用auth端点来获取新令牌。
参见https://kubernetes.io/docs/reference/access-authn-authz/authentication/了解各种验证方法。
数字海洋文档告诉你如何在这里获得令牌:https://docs.digitalocean.com/products/kubernetes/how-to/connect-to-cluster/
它归结为: