c# - AKS集群Pod Kube配置位置

标签 c# kubernetes kubectl azure-aks azure-kubernetes

我正在尝试使用正在使用kubernetes client library的C#辅助服务在AKS集群上执行一些操作。目前,我的服务正在集群中的单个Pod上运行。当我尝试执行CreateSecret操作时,出现 403异常
我尝试获取一个承载 token ,并用它来设置KubeConfig的AccessToken,但这也不起作用。
我想知道是否有一种方法可以从我的Pod中访问kubeconfig(我猜它只能在主节点上使用?),或者是否可以指向config的其他位置?

最佳答案

我建议使用服务帐户而不是kubeconfg,因为您正在集群中以pod的形式运行应用程序。

var config = KubernetesClientConfiguration.InClusterConfig()
上面的代码将在Pod部署所在的 namespace 中使用default服务帐户。您将收到Forbidden错误,并解决您需要定义RBAC来向服务帐户提供授权的问题。假设您使用Role命名空间部署Pod,以下是RoleBindingdefault
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: secret-creator
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["create"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: role-binding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: secret-creator
subjects:
- kind: ServiceAccount
  name: default
  namespace: default

关于c# - AKS集群Pod Kube配置位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63489823/

相关文章:

c# - 输出多个查询

kubernetes - 通过从k8s中的文件导入数据来填充ConfigMap

kubernetes - kubectl 补丁无法应用于 ConfigMap 数据

mongodb - 如何计算Docker容器中的WiredTiger缓存大小?

amazon-web-services - kubernetes + coreos 集群 - 替换证书

Kubernetes 服务仍处于 pending 状态。它是如何工作的以及如何解决这个问题?

c# - WebJob 控制台应用程序中的 ProcessQueueMessage 函数

c# - ASP.NET WebForms WebSite - 控件在代码隐藏中而不是在前端更改它们的值

c# - sa1200 是否所有 using 指令都必须放在命名空间 (StyleCop) 内纯粹是装饰性的?

docker - docker pull等效于kubectl