准备集群访问凭证
本指南展示了如何创建集群访问凭证,以帮助您运行 Tekton Tasks 和 Pipelines。
目录
前提条件
- 已安装并配置 kubectl 以访问集群。
- 具有读取和写入 Secrets 的权限。
步骤
选项 1:创建 Kubeconfig Secret
提供一个包含正确集群/权限上下文的 kubeconfig。
保持此 kubeconfig 精简(仅包含您需要的上下文)。定期轮换并严格限定 RBAC 范围。
您可以使用以下命令生成包含 kubeconfig 文件的 Secret。将 /path/to/kubeconfig
替换为您实际的 kubeconfig 文件路径。
kubectl -n <target-namespace> create secret generic <kubeconfig-secret-name> --from-file=kubeconfig=/path/to/kubeconfig
apiVersion: v1
kind: Secret
metadata:
name: <kubeconfig-secret-name>
namespace: <target-namespace>
type: Opaque
stringData:
kubeconfig: |
# 在此粘贴一个精简的 kubeconfig(带正确的上下文)
选项 2:创建带 RBAC 的 ServiceAccount
使用专用的 ServiceAccount。仅绑定您的 charts 所需的权限。
何时使用哪种范围?
- 命名空间范围(Role + RoleBinding)——当您的 charts 仅管理单个命名空间中的资源时使用(典型的应用部署)。
- 集群范围(ClusterRole + ClusterRoleBinding)——如果您的 charts 创建集群范围资源(例如 CRDs、webhooks、ClusterRoles、StorageClasses)或跨多个命名空间操作,则需要使用。
提示:从命名空间 Role 开始;仅在严格需要时授予集群范围权限。
apiVersion: v1
kind: ServiceAccount
metadata:
name: <service-account-name>
namespace: <target-namespace>
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: <role-name>
namespace: <target-namespace>
rules:
# 替换为您的资源
- apiGroups: ["apps"]
resources: ["deployments", "statefulsets", "daemonsets", "replicasets"]
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: <role-binding-name>
namespace: <target-namespace>
subjects:
- kind: ServiceAccount
name: <service-account-name>
namespace: <target-namespace>
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: <role-name>